Technology Experience

Contenuti gestiti da Igor Damiani
posts - 949, comments - 2741, trackbacks - 15120

My Links

News

  • Questo blog si propone di raccogliere riflessioni, teoriche e pratiche, su tutto quello che riguarda il world-computing che mi sta attorno: programmazione in .NET, software attuale e futuro, notizie provenienti dal web, tecnologia in generale, open-source.

    L'idea è quella di lasciare una sorta di patrimonio personale, una raccolta di idee che un giorno potrebbe farmi sorridere, al pensiero di dov'ero e cosa stavo facendo.

    10/05/2005,
    Milano

Archives

Post Categories

Generale

Esame 70-536

Serie di post sull'esame 70-536 per conseguire la certificazione MCPD
[70-536, #33] Passato!

Innanzitutto chiedo scusa a tutti per essere stato così poco produttivo nella mia serie di post relativi all'esame 70-536. Purtroppo ho avuto francamente poca voglia di scrivere (e studiare), e quando l'ho fatto è stato nei rari momenti in cui mi sentivo ispirato. Ho studiato molto meno per questo esame, ma sono rimasto contento perchè se l'ho superato devo ringraziare soprattutto la mia esperienza. L'unico rammarico è che avrei potuto prendere un punteggio nettamente superiore al 718/1000 che ho miseramente conquistato. Ho sfiorato i punteggi massimi in quasi tutte le categorie (Developing applications that use types and applications, Implementing service processes, threading and application...

posted @ mercoledì 26 luglio 2006 13:26 | Feedback (28) | Filed Under [ Esame 70-536 ]

[70-536, #32] L'attributo DllImport nei dettagli

I parametri dell'attributo DllImportNell'ultimo post riguardante l'esame 70-536, abbiamo visto come utilizzare l'attributo DllImport per poter utilizzare una funzione esportata da una libreria unmanaged. Nella sua forma base, DllImport richiede un solo parametro: una stringa che contiene il nome del file DLL che esporta la funzione che ci interessa utilizzare nella nostra applicazione managed. L'ultima volta avevamo fatto un piccolo esempio, considerando la funzione GetTempPath, esportata da kernel32.dll. la dichiarazione nella nostra classe managedera: [DllImport("kernel32.dll")]    private static extern uint GetTempPath(uint nBufferLength,       [Out] StringBuilder lpBuffer); L'attributo DllImport può avere qualche parametro aggiuntivo. Ad esempio, nel codice qui sopra il nome della funzione GetTempPath corrisponde al nome della funzione contenuta in kernel32.dll. Se...

posted @ lunedì 12 giugno 2006 16:08 | Feedback (0) | Filed Under [ Esame 70-536 ]

[70-536, #31] P/Invoke e l'attributo DllImport

IntroduzioneP/Invoke è l'abbreviazione di Platform Invoke  e consiste nella capacità da parte del nostro managed code di utilizzare DLL di sistema ed eseguire le funzioni contenute. Ho trovato di grande comodità il sito www.pinvoke.net, che ci aiuta con una grande raccolta di tutte le librerie di sistema e come poterle importare in una classe managed per rendere accessibile da C#, VB.NET e da tutti gli altri linguaggi della famiglia .NET. Anche in questo caso, come nel mio ultimo post, abbiamo a che fare con una classe wrapper: sarà questa che il codice managed eseguirà. Tale classe deve essere decorata...

posted @ mercoledì 7 giugno 2006 12:42 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #30] Primi passi con il mondo Interop

IntroduzioneFino ad oggi abbiamo sempre discusso con un mondo completamente managed, ovvero il cui codice è scritto al 100% in linguaggi previsti dal FX (VB.NET e C# in primo luogo), e che quindi gira all'interno del CLR. Possiamo però andare oltre, e permettere al nostro codice di oltrepassare le normali barriere ed avere a che fare con il managed unmanaged, ovvero tutto quello che riguarda codice Win32, mondo COM e via dicendo. Ovviamente, il fatto che sia possibile non vuol dire che sia una cosa semplice, nè tantomeno che siamo esenti da rischi. La difficoltà principale è saper mappare in memoria gli oggetti...

posted @ lunedì 5 giugno 2006 14:32 | Feedback (1) | Filed Under [ Esame 70-536 ]

Manca un mese al mio esame 70-536

In molti, giustamente, mi hanno detto che i miei post per l'esame 70-536 sono più discontinui rispetto alla mia prima serie per l'esame 70-316. Effettivamente, i miei impegni di lavoro mi hanno portato via più tempo del previsto e anche se trovo il tempo per studiare un po' (ho giusto giusto del materiale su P/Invoke che mi aspetta sul letto), ho sicuramente meno tempo per dedicarmi alla scrittura di post. Spero davvero di poter riprendere a parlare come una volta, perlomeno sugli argomenti più importanti come P/Invoke che citavo prima. Rimane da vedere qualcosa sulla sicurezza ed altro ancora: avevo fissato l'esame il...

posted @ domenica 4 giugno 2006 23:42 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #29] Qualche dettaglio in più sulla gestione dei thread

IntroduzioneNel post precedente abbiamo visto come utilizzare la classe Thread in modo basilare. In breve: come creare un nuovo thread, utilizzando le classi ThreadStart e ParameterizedThreadStart, a seconda del fatto che il metodo da eseguire in modo asincrono abbiamo parametri oppure no. Quello che vediamo oggi va un po' più in là. Sarà un po' tutto teorico, perchè francamente non ho mai avuto bisogno di scendere così nel dettaglio. Innanzitutto il Framework ci mette a disposizione la classe ThreadPool. Questa classe è definita come static, di conseguenza non abbiamo bisogno di istanziarla per poterla utilizzare. Come dice la pagina su MSDN,...

posted @ giovedì 4 maggio 2006 11:19 | Feedback (1) | Filed Under [ Esame 70-536 ]

Ho fissato la data dell'esame

Il 1° Giugno, alle ore 10:00, andrò a sostenere l'esame 70-536. In tempo per riprendere a lavorare, per ripassare un po' di roba, per vedere le cose che mancano, per farmi venire un po' d'ansia. E, credetemi, se lo passo, io salto dalla gioia, e ve lo dico anche, alla faccia delle polemiche che ogni tanto imperversano sul blog.  Su questo discorso, mi allineo con Lorenzo, sinceramente: quando posto sul mio blog, so di rivolgermi ad un mio gruppo di amici e quindi mi viene naturale raccontare le cose che mi succedono, sia belle che brutte. Tra queste cose, ci sono anche i miei esami, per...

posted @ giovedì 27 aprile 2006 19:27 | Feedback (27) | Filed Under [ Esame 70-536 ]

[70-536, #28] Esecuzione asincrona? Thread!

Ve l'avevo promesso che avrei ricominciato. Dopo questa lunga pausa, dovuta un po' a motivi di lavoro e salute, vediamo oggi di riprendere la mia serie di post per l'esame 70-536. Questa ripresa dei lavori vede come protagonista la class Thread ed affini, ovvero tutte quelle classi definite nel namespace System.Threading che ci permettono di eseguire operazioni in modo asincrono. Ne avevamo già parlato in passato quando avevamo trattato il nuovo componente BackgroundWorker: con nuovo, intendo con il FX2.0. Il BackgroundWorker internamente fa ovviamente uso di thread secondari, e risolve la maggior parte delle problematiche riguardanti la gestione della UI. Come...

posted @ giovedì 27 aprile 2006 19:01 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #27] Le classi Installer, InstallContext ed altre classi

Della classe Installer abbiamo già parlato molto tempo fa. Era il 27 settembre, e mi stavo preparando per l'esame 70-316. Quel giorno abbiamo visto come aggiungere alla nostra soluzione un nuovo progetto Class Library, come implementare una classe custom che eredita da Installer. Tale classe viene consumata da Windows Installer durante il setup della nostra applicazione. Possiamo in pratica fare l'overloading degli eventi che accadono durante il processo di installazione, quindi gestire manualmente la Commit, provocare il Rollback, e via dicendo. Ma non solo: ci eravamo spinti un po' più in là. Avevamo aggiunto Custom Dialog, richiedendo alcune informazioni all'utente, come...

posted @ martedì 28 marzo 2006 17:46 | Feedback (16) | Filed Under [ Esame 70-536 ]

[70-536, #26] Punto della situazione e rallentamenti

Ultimamente ho un po' rallentato la pubblicazione dei miei post sull'esame 70-536. In questo periodo sono un po' stra-carico, in tutti i casi per motivi di lavoro. Ho impegni che riguardano il mio software di fatturazione, ho impegni con la società con la quale lavoro, ho impegni personali, etc. etc. Insomma, il tempo è davvero poco. Gli argomenti da affrontare per coprire tutta la Preparation Guide dell'esame per ottenere la MCPD : Windows Developer invece sono ancora tanti. Bisogna parlare di Thread ed affini, bisogna parlare di ServiceBase e dintorni, qualche concetto teorico su Application Domain, la classe Configuration e le sue relative...

posted @ venerdì 24 marzo 2006 18:33 | Feedback (4) | Filed Under [ Esame 70-536 ]

[70-536, #25] Teoria sulle classi Stream di .NET e un caso pratico di TripleDES

Ho visto con infinito piacere l'ultimo post di Alessio Marziali dove ci fa vedere un utilizzo pratico della classe Rijndael per: leggere un file di input e memorizzarlo in un byte[] criptare il file in un'area di memoria mantenuta da un MemoryStream decriptare il contenuto del MemoryStream su un file di output, ottenendo a tutti gli effetti una copia del file di input iniziale Nel codice, Alessio fa uso di tutta una serie di classi, alcune delle quali derivano direttamente dalla classe astratta Stream. In questo post desidero fare luce - per quanto mi è possibile...

posted @ venerdì 17 marzo 2006 13:10 | Feedback (1) | Filed Under [ Esame 70-536 ]

Get a FREE Second Chance to Pass Your Microsoft Certification Exam

L'altra volta, in occasione del mio esame 70-316, mi era sfuggito. Errare è umano, perseverare è diabolico. Questa volta quindi sono stato più tempestivo. Fino al 30 giugno 2006 è possibile registrarsi per ottenere una seconda chance (il termine second shot a me piaceva di più) nel caso in cui non dovessimo passare un qualsiasi esame di certificazione. L'offerta è applicata sugli esami per IT Professional, Developer e Business Solutions. Dai, aprofittatene, vabbè che siamo bravi e ci prepariamo bene, però non si sa mai!  A tutti quelli che stanno studiando, in bocca al lupo! powered by IMHO 1.2

posted @ mercoledì 15 marzo 2006 15:26 | Feedback (4) | Filed Under [ Esame 70-536 ]

[70-536, #24] Un esempio pratico sulla generazione di hash sulle stringhe

La mia reputazione sta colando a picco, dopo il mio breve racconto sul byte innamorato.  Mi devo riprendere subito, ed alla svelta, anche! Riprendo quindi la mia serie di post sull'esame 70-536 continuando il discorso sulle classi di crittografia messe a disposizione da .NET. Nell'ultimo post avevo fatto vedere qualche riga di codice per utilizzare la classe HashAlgorithm allo scopo di generare l'hash value di una stringa, secondo diversi provider (SHA256, SHA384, SHA512, etc.). Giusto per fare qualche test, ho scritto una piccola applicazione che prende in input una stringa da una TextBox, ne calcola l'hash con i vari provider .NET,...

posted @ lunedì 13 marzo 2006 13:59 | Feedback (19) | Filed Under [ Esame 70-536 ]

New Generation of Microsoft Certification Exams RELEASED!

Avevo promesso che non avrei scritto nulla sulle certificazioni in questi giorni, ma mi posso subito smentire da solo.  Dov'è finita la mia affidabilità, mannaggia? Ho appena ricevuto la tradizionale MCP Flash di Marzo 2006, dove si annuncia l'uscita dei nuovi esami di certificazione. Non so se ne manca qualcuno, io vi riporto al lista come la leggo nella mia e-mail: Exam 70-528TS: Microsoft .NET Framework 2.0 - Web-Based Client Development Exam 70-431TS: Microsoft SQL Server 2005 - Implementation and Maintenance Exam 70-536TS: Microsoft .NET Framework 2.0 - Application Development Foundation ...

posted @ giovedì 9 marzo 2006 17:45 | Feedback (4) | Filed Under [ Esame 70-536 ]

[70-536, #23] Le classi per generare l'hash di un messaggio

Il namespace System.Security.Cryptography di .NET mette a disposizione un gran numero di classi per fare encrypting e decrypting di informazioni. In questo post vedremo innanzitutto le classi che servono a generare l'hash di un messaggio. Con il termine messaggio intendo qualsiasi flusso di informazioni, sia esso una banale stringa o uno stream proveniente da un file. Come dice lo stesso Alessio Marziali ...

posted @ martedì 7 marzo 2006 14:17 | Feedback (8) | Filed Under [ Esame 70-536 ]

[70-536, #22] La classe GZipStream per comprimere stream di dati

Per motivi di studio, e non perchè vorrò usarla praticamente (ma mai dire mai), ho provato e riprovato la classe GZipStream del FX2.0 per comprimere flussi di dati. Ho avuto diverse difficoltà, perchè ritengo che l'Intellisense un po' impreciso: l'unico vero aiuto l'ho avuto dalla pagina con un po' di codice sorgente che dimostra veramente come utilizzare i metodi di GZipStream. Questa classe, in combinata con DeflateStream, permette di comprimere e decomprimere qualsiasi array di bytes, indipendentemente dalla loro provenienza: altri files, contenuti di TextBox, interi DataSet, e così via. Ho scritto un'utility che mostra la bontà dell'algoritmo di compressione, che...

posted @ venerdì 3 marzo 2006 18:00 | Feedback (12) | Filed Under [ Esame 70-536 ]

[70-536, #21] Studiare il namespace System.Security.Cryptography

Alcuni mi chiedono chi diavolo me lo fa fare, di scrivere quasi ogni giorno i miei post sulle certificazioni. Come ho detto in altri occasioni, mi piace scrivere, mi piace studiare ed infine, mi piace condividere con voi e con chiunque capiti per caso sul mio blog. Spesso mi trovo a studiare argomenti che poi magari non mi serviranno mai sul campo (vedi WMI, uno fra tanti), però mi piace comunque guardarmeli, anche alla leggera, non fosse altro che magari potrebbe capitarmi la domanda durante l'esame.  Però, ripeto, anche se in giro per il Web trovate molti samples e tanta, tanta documentazione,...

posted @ mercoledì 1 marzo 2006 18:05 | Feedback (4) | Filed Under [ Esame 70-536 ]

[70-536, #20] Qualche dettaglio in più sul BackgroundWorker

Il BackgroundWorker (d'ora in poi BW) è un componente nuovo disponibile nel FX2.0 di .NET, per cui vale la pena approfondire il suo funzionamento con qualche dettaglio in più. Mi piacerebbe dimostrare veramente che il task gestito dal BW gira davvero in un thread separato rispetto a quello della UI. Ed ancora, vedremo come implementare l'annullamento di un'operazione lunga, tramite il semplice click di un pulsante. Per far questo, ho creato un progetto Windows Forms completamente nuovo: a questo progetto ho aggiunto una semplice WF Form1, con una ListBox ancorata su tutti e quattro i lati, in modo tale da...

posted @ martedì 28 febbraio 2006 14:16 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #19] Query WMI, ManagementObjectSearcher e BackgroundWorker

In questo post parleremo in modo particolare di come fare delle query verso il mondo Windows Management Instrumentation (WMI). Tramite WMI, possiamo infatti accedere dal mondo managed di .NET a tutta una serie di informazioni gestite da Win32, alcune delle quali particolarmente interessanti, specialmente se si lavora un po' più a basso livello rispetto a quanto facciamo di solito. Tanto per citarne qualcosa, è possibile eseguire delle query tipo: SELECT * FROM Win32_NTLogEvent        -- Log degli eventiSELECT * FROM Win32_BIOS            -- Info sul BIOSSELECT * FROM Win32_NetworkAdapter    -- Info sulle schede di reteSELECT * FROM Win32_LogicalDisk        -- Info sui dischiSELECT * FROM Win32_Product            -- Info sui software installati                                    -- con Windows Installer Il linguaggio utilizzato è un SQL-style, utilizza la clausola SELECT * FROM identifer, ed eventualmente possiamo aggiungere una clausola WHERE per filtrare determinati contenuti. MSDN riporta la struttura delle classi esposte da Win32,...

posted @ lunedì 27 febbraio 2006 13:50 | Feedback (1) | Filed Under [ Esame 70-536 ]

[70-536, #18] Le classi Process e ProcessModule, con un bel contorno di Reflection

Nel post di oggi scendiamo un po' più a basso livello nella combinata software + hardware gestito autonomamente dal sistema operativo. Vedremo infatti come ottenere l'elenco dei processi attivi (classe Process del FX) in questo momento e come leggerne le proprietà. Ogni processo inoltre è composto da uno o più moduli (class ProcessModule del FX), anch'essi dotati di proprietà specifiche. Annuncio che per preparare questo post ho fatto anche un banale progetto con VS2005 che è disponibile per il download da questo indirizzo. E' molto semplice: contiene una sola Windows Forms (FormProcess) le cui caratteristiche essenziali sono le seguenti: un oggetto TreeView e un...

posted @ venerdì 24 febbraio 2006 12:52 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #17] Un custom visualizer per una classe (XmlWriterSettings e dintorni)

In questo post, come al solito davvero troppo lungo per lasciarlo sul main feed del blog di UGI, descrivo come creare un custom visualizer per la classe XMLSerialization del mio progetto. Cliccate sul titolo per leggere!

posted @ martedì 21 febbraio 2006 14:24 | Feedback (13) | Filed Under [ Esame 70-536 ]

[70-536, #16] Le classi attributo per fare debugging avanzato con VS2005

In questo post illustro alcune delle classi attributo specifiche per fare debugging avanzato, e per predisporre le nostre classi ad essere debuggate in modo più funzionale rispetto a quanto proposto di default dall'IDE di VS2005. Clicca sul titolo per leggere nel dettaglio il contenuto del post.

posted @ lunedì 20 febbraio 2006 22:38 | Feedback (6) | Filed Under [ Esame 70-536 ]

[70-536, #15] Manipolare l'eventlog di Windows

Uno degli aspetti presi in considerazione dall'esame 70-536 riguarda la creazione e la lettura degli eventi di Windows, e la creazione ex-novo di un nuovo log dove poter andare a gestire tutto quello che ci serve. Quindi, abbandoniamo un attimo il nostro set di classi che abbiamo visto fino a questo momento, e dedichiamo questo post alle classi del FX create appositamente a questo scopo. Ricordo innanzitutto, per dovere di cronaca, che è possibile consultare l'EventLog di Windows, aprendo il Control Panel, andando nel gruppo Administrative Tools e cliccando su Event Viewer. Di default, i log disponibili sono 3: Application, Security e System....

posted @ mercoledì 15 febbraio 2006 12:51 | Feedback (1) | Filed Under [ Esame 70-536 ]

[70-536, #14] La classe SortedList<K, T> e l'interfaccia IComparable

Nel codice C# che ho messo a disposizione c'è un file CustomCollection.cs che contiene la definizione delle 3 classi ChapterCollection, BookCollection e ShelfCollection: using System;using System.Collections.Generic;using System.Collections.ObjectModel;[Serializable]public class ChapterCollection : Collection<Chapter> { }[Serializable]public class BookCollection : Collection<Book> { }[Serializable]public class ShelfCollection : Collection<Shelf> { } Grazie alle API create per questo tipo di applicazione, possiamo velocemente definire un nuovo Book, con i relativi Chapters nel modo seguente: // Creo il BookBook promessiSposi = new Book("I Promessi Sposi", "A. Manzoni", 348);// Aggiungio tutti i Chapter di questo libropromessiSposi.Chapters.Add(new Chapter("Prologo"));promessiSposi.Chapters.Add(new Chapter("Inizio della storia"));promessiSposi.Chapters.Add(new Chapter("Storia"));promessiSposi.Chapters.Add(new Chapter("Fine della storia"));promessiSposi.Chapters.Add(new Chapter("Epilogo")); Fatto questo, possiamo ciclare tutti i capitoli con un banale for...each: foreach (Chapter cycle in promessiSposi.Chapters)    Console.WriteLine(cycle.ToString()); Quello su cui voglio porre l'attenzione oggi è che noi potremmo aggiungere i Chapter in un ordine casuale, per qualsiasi motivo. Quindi, per esempio: promessiSposi.Chapters.Add(new Chapter("Storia"));promessiSposi.Chapters.Add(new Chapter("Inizio della storia"));promessiSposi.Chapters.Add(new Chapter("Prologo"));promessiSposi.Chapters.Add(new Chapter("Fine della storia"));promessiSposi.Chapters.Add(new Chapter("Epilogo")); Il nostro promessiSposi contiene sempre 5 capitoli, ma sono alla rinfusa....

posted @ venerdì 10 febbraio 2006 13:35 | Feedback (14) | Filed Under [ Esame 70-536 ]

[70-536, #13] Deserializzazione di una classe da uno stream XML o binario (con contorno di Generics)

Nel post di ieri abbiamo visto come serializzare una classe, sia in formato XML sia in formato binario. Abbiamo anche detto che uno degli scopi della serializzazione è quello di rendere trasmissibile un oggetto da un componente all'altro, dove con componente intendo un qualsiasi altro assembly .NET, un altro PC della nostra LAN o un server Web dall'altra parte del pianeta. Si arriva quindi al proposito di voler ricostruire in memoria un oggetto che era stato serializzato, così da poterlo maneggiare anche dopo la trasmissione stessa. Deserializzazione da stream XMLQuesta operazione è nota con il nome di deserializzazione ed...

posted @ giovedì 9 febbraio 2006 16:20 | Feedback (7) | Filed Under [ Esame 70-536 ]

[70-536, #12] Serializzazione di una classe con XmlSerializer e BinaryFormatter

Il post di oggi per l'esame 70-536 è davvero troppo lungo. :-) Cliccate sul titolo per leggere il testo completo.

posted @ mercoledì 8 febbraio 2006 13:07 | Feedback (4) | Filed Under [ Esame 70-536 ]

[70-536, #11] L'intera struttura di classi: Storage, Shelf, Book e Chapter

Alla classe Shelf descritta nei post precedenti, oggi aggiungiamo un po' di carne sul fuoco. Lo scopo è quello di presentare la classe Book e di fare qualche precisazione riguardante la classe Shelf, dato che studiando la serializzazione ho cambiato un po' le carte in tavola e sono state fatte diverse modifiche al codice in modo da renderlo più pulito e più "standard" rispetto alle design guidelines di Microsoft. Un grazie a Michele, a Marco e ad Andrea per avermi risposto ...

posted @ lunedì 6 febbraio 2006 12:34 | Feedback (1) | Filed Under [ Esame 70-536 ]

Mi sa che....cambierò lavoro! Apro una redazione?

Non spaventatevi, rimarrò sempre qui a tempestare il mio blog, cosa credete? A parte scherzi, è solo una battuta quella in oggetto. Mi riferisco però al fatto che ogni giorno, la mattina, il pomeriggio, la sera, il sabato o la domenica, ricevo diverse e-mail di persone che stanno studiando attraverso i miei post su MCAD. Mi fanno i complimenti, mi chiedono consigli ed aiuti, mi spronano a continuare la mia attività totally-freeware di stesura dei post per certificarsi. Beh, io non posso fare altro che ringraziare tutti quanti attraverso il mio blog (così sono sicuro di raggiungere tutti), senza fare nomi...

posted @ lunedì 6 febbraio 2006 11:25 | Feedback (9) | Filed Under [ Esame 70-536 ]

[70-536, #10] Implementare le interfacce ICollection, IList e ICloneable

Le interfacce ICollection, IList e ICloneablePartendo dal codice che abbiamo visto nel post precedente, cominciamo a fare un po' di refactoring e vedere di rendere la nostra classe Shelf aderente ad alcune delle interfacce standard di .NET. Le classi con cui cominceremo sono ICollection, ICloneable e IList. Come abbiamo detto in un post precedente, aderire ad una certa interfaccia (o contract, contratto) significa fornire l'implementazione per ciascuno dei membri previsti dall'interfaccia stessa. La prima cosa da sapere quando dobbiamo fare un lavoro di questo tipo quindi è sapere cosa prevede effettivamente ciascuna interfaccia e scrivere il codice necessario. Cominciamo con...

posted @ mercoledì 1 febbraio 2006 16:16 | Feedback (3) | Filed Under [ Esame 70-536 ]

Refusi, errori ed imprecisioni nella Preparation Guide del 70-536

Sebbene questo post compaia sotto la categoria Esame 70-536, ho preferito non numerarlo. Qualche settimana fa avevo notato che c'erano stati alcuni cambiamenti nel documento sul sito Microsoft che elenca le skills richieste per l'esame 70-536. Su questa pagina si parlava di una famigerata classe StoredList, inesistente ed introvabile sul Web: ho postato questa cosa anche sul forum di UGIdotNET, e anche secondo Andrea Boschin si tratta di un errore. Oggi pomeriggio sono ritornato a vedere con più attenzione il documento e mi sono accorto che effettivamente il riferimento a StoredList è stato corretto in SortedList, che è una classe effettivamente implementata nel...

posted @ martedì 31 gennaio 2006 18:17 | Feedback (2) | Filed Under [ Sviluppo .NET Esame 70-536 ]

[70-536, #09] Una premessa prima di ICollection, IList ed altre interfacce standard

IntroduzioneIn questo post vedremo volutamente codice che considero sporco , ovvero che sconsiglierei di usare in un'applicazione reale. Non che non funzioni, ma non rappresenta sicuramente lo stato dell'arte e, come vedremo nel prossimo post, può essere sicuramente migliorato sotto molti aspetti. Lo scopo di questo post, riprendendo un po' il discorso cominciato l'altra volta, è quello innanzitutto di vedere un po' di codice C# che implementa la classe Shelf (scaffale, mensola) che utilizzeremo d'ora in poi in congiunzione con altre classi per approfondire tutte le tematiche dell'esame 70-536.Senza perdere altro tempo, vediamo un po' di cosa si tratta! La classe ShelfQuesta...

posted @ lunedì 30 gennaio 2006 14:21 | Feedback (3) | Filed Under [ Esame 70-536 ]

[70-536, #08] Le interfacce in C#: cosa sono e come usarle

IntroduzioneUn'interfaccia definisce un set di proprietà, metodi ed eventi che una classe deve implementare per poter aderire correttamente all'interfaccia stessa. Quando una classe implementa una certa interfaccia, deve quindi disporre di tutto quello che l'interfaccia prevede: non deve escludere nulla, altrimenti il nostro codice .NET non viene compilato. In altri termini, possiamo quindi dire che l'interfaccia definisce un contratto, ovvero quei membri di una classe che ci permettono di interagire con essa. L'interfaccia, per definizione, non contiene codice: sarà compito della classe che la implementa quello di dare una reale implementazione a proprietà, metodi ed eventi forzati dall'interfaccia. .NET stesso fa...

posted @ lunedì 23 gennaio 2006 14:23 | Feedback (782) | Filed Under [ Esame 70-536 ]

[70-536, #07] Intro ai Generics: riflessioni e considerazioni sul tema

Siccome questo post della serie [70-536] mi sembra un po' troppo lungo per essere reso visibile direttamente sul main feed, ho deciso di "comprimerlo", ma è sufficiente cliccare sul titolo per leggere!

posted @ giovedì 19 gennaio 2006 13:08 | Feedback (6) | Filed Under [ Esame 70-536 ]

[70-536, #06] Le classi Attribute

Le classi attributo del FrameworkLe classi attributo incluse nella tecnologia .NET sono classi che derivano dalla classe base Attribute. Lo scopo di queste classi è quello di aggiungere informazioni ad una classe (che chiameremo target element ) allo scopo di decorarla, di modificarne il comportamento a run-time e di integrarla tramite meta-dati. Un attributo può essere applicato ad uno qualsiasi degli elementi di cui è composto la nostra classe: la classe stessa, un costruttore, un metodo, una proprietà, e così via. Lo stesso .NET Framework fa un grande uso degli attributi:...

posted @ martedì 17 gennaio 2006 18:20 | Feedback (1) | Filed Under [ Esame 70-536 ]

[70-536, #05] Value, nullable e references types

Uno dei primi concetti teorici riguardanti l'esame 70-536 prende in considerazione i tipi di dati messi a disposizione dal framework. Vediamo quindi di far luce - brevemente - su cosa significano e che differenze ci sono tra l'uno e l'altro. Lascerò la parola a tutti voi nei miei commenti per tutte le precisazioni del caso. Value typesCosa sono i value types? E' un nome col quale vengono chiamati tutti i tipi di dati semplici, ovvero variabili nella cui cella di memoria viene memorizzato il valore stesso della variabile. Cadono in questa categoria i tipi di dato come int, float, double, etc. I...

posted @ lunedì 16 gennaio 2006 15:39 | Feedback (5) | Filed Under [ Esame 70-536 ]

[70-536, #04] Una prima idea delle classi su cui lavoreremo

IntroduzioneNegli ultimi giorni ho pensato un po' a cosa poter realizzare nelle prossime settimane per scrivere dei post che abbiano un qualche senso pratico, in modo da essere più intuitivi e comprensibili a chi mi seguirà. Esattamente lunedì sera, dopo cena, era in camera mia con mio fratello e mi guardavo attorno, girovagando a caso alla ricerca di un po' di ispirazione. Voi non potete saperlo, ma in camera mia sono letteralmente circondato da libri di ogni sorta, alcuni dei quali (solo quelli che ho letto) sono elencati qua. Mi sono ricordato di quando, negli anni '80, usavo il mio fedele Texas Instruments...

posted @ giovedì 12 gennaio 2006 17:06 | Feedback (8) | Filed Under [ Esame 70-536 ]

Il Wiki di UGIdotNET e le certificazioni

Accolgo con piacere la proposta di Luca, ma di questo parlerò, forse, in un altro post. Quello che voglio dire è che questa mattina, tra un ritaglio di tempo ed un altro, ho portato avanti il lavoro sul wiki di UGIdotNET. Qualche tempo fa, infatti, Lorenzo aveva iniziato a creare una nuova pagina dedicata alle nuove certificazioni Microsoft. La pagina comprendeva tutte le possibili certificazioni, sia come MCTS (Technology Specialist), sia come MCPD (Professional Developer). Questa mattina, desideroso di farlo, ho aggiunto e dettagliato una pagina per ciascuna, che vi invito a leggere e, se volete, in pieno spirito wiki, a migliorare voi stessi. Le...

posted @ giovedì 12 gennaio 2006 12:40 | Feedback (4) | Filed Under [ Tecnologia Esame 70-536 ]

Avrei tante idee in testa, ma...voglio pensarci bene prima!

Chi segue il mio blog, o genericamente il blog di UGIdotNET, sa che mi sto preparando a scrivere una serie di post relativi all'esame 70-536. E ho anche parecchie persone che non vedono l'ora di leggermi.  Mi stanno venendo alcuni dubbi sulla questione, perchè non ho ancora identificato per bene quali strumenti messi a disposizione da UGIdotNET siano la cosa migliore per quello che mi propongo. La cosa sicura è che ancora una volta sfrutterò il mio blog. Lo ritengo il più comodo e - come hanno detto altri in questo post di Lorenzo, posso usare un linguaggio più informale, più amichevole, e così...

posted @ mercoledì 11 gennaio 2006 13:37 | Feedback (3) | Filed Under [ Tecnologia Esame 70-536 ]

[70-536, #03] Va bene un po' di teoria, però rendiamola divertente!

I temi che voglio toccare in questa mia serie di articoli prendono in considerazione l'esame 70-536 . Se date un'occhiata alle skills misured, vi accorgerete che si tratta di un esame piuttosto teorico, di certo molto diverso dal 70-316 che ho già trattato in passato. Parla di alcune delle novità del Framework 2.0, come i generics, piuttosto che Thread, algoritmi DES e MD5, interoperability e così via. Mi annoio velocemente quando leggo codice troppo teorico - leggesi "La classe A eredita dalla classe B ", "La classe B implementa...

posted @ lunedì 9 gennaio 2006 12:49 | Feedback (1) | Filed Under [ Esame 70-536 ]

[70-536, #02] Struttura dell'esame

La Preparation Guide che ho intenzione di seguire per la preparazione di questo esame è presa pari-pari da quella pubblicata da Microsoft sulla pagina dedicata all'esame stesso. Potete consultarla qui. Devo dire che è davvero molto ricca di argomenti più o meno spinosi e più o meno (almeno per me) noti. Credo che comincerò la serie di articoli soltanto la settimana prossima, o magari quella successiva ancora: un po' per motivi di lavoro, un po' per avere la massima partecipazione possibile, dal momento che parecchi di noi sono ancora in ferie.  L'esame è diviso in 7 paragrafi, che elenco qui sotto per dare una struttura ai miei post...

posted @ martedì 3 gennaio 2006 13:06 | Feedback (2) | Filed Under [ Esame 70-536 ]

[70-536, #01] Organizzazione dello studio e dei contenuti

Oggi sarei dovuto andare in ufficio a lavorare, ma una forte influenza mi ha costretto a casa. Ho avuto quindi un po' di tempo libero, in relax, e mi sono guardato le skills riguardanti l'esame 70-536 per acquisire la nuova certificazione "MCTS: .NET Framework 2.0 Windows Applications". Per prepararmi a questo esame - che è ancora in beta - ho intenzione di utilizzare ancora una volta il mio blog (così diventerò ancora una volta il vostro peggiore incubo) e - novità novità - mantenere anche un wiki. Il mio ominimo Igor mi ha proposto questa cosa su un wiki tutto suo...

posted @ martedì 27 dicembre 2005 19:59 | Feedback (8) | Filed Under [ Esame 70-536 ]

[70-536, #00] Certificazione MCPD

Sono tornato, con un nuovo incubo ed un nuovo sogno da inseguire. Ho creato apposta una nuova categoria all'interno del mio blog denominata MCPD . Finalmente comincio ad avere le idee più chiare di quello che voglio fare. Ieri sera mi sono letto le pagine sulle nuove certificazioni di Microsoft disponibili a partire da questa pagina. Finalmente si parla chiaro! Mi piacerebbe raggiungere la certificazione MCPD: Microsoft Certified Professional Developer, specializzazione Windows Developer. Qualche chiarimento: prima di poter acquisire la MCPD, bisogna prima aver superato i due esami per la...

posted @ martedì 20 dicembre 2005 12:15 | Feedback (5) | Filed Under [ Esame 70-536 ]

Powered by:
Powered By Subtext Powered By ASP.NET