Esame 70-536
Serie di post sull'esame 70-536 per conseguire la certificazione MCPD
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...
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...
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...
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...
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...
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,...
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...
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...
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...
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...
Full Esame 70-536 Archive