Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1909, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

Book review: Microsoft .NET Framework 3.5 – Windows Presentation Foundation Self Paced Training Kit

In questo post vi voglio presentare un manuale edito da Microsoft Press, scritto da Matthew A. Stocker, della collana MCTS Self Paced Training Kit per conseguire la certificazione Microsoft Certified Technology Specialist. Si tratta di un libro in lingua inglese per prepararsi all’esame 70-502 su Windows Presentation Foundation il cui titolo completo è: “Microsoft .NET Framework 3.5 – Windows Presentation Foundation”.

È davvero un ottimo testo e ne riassumiamo i tratti salienti e vi anticipo ciò che sarà la conclusione del post: lo consiglio anche a coloro che vogliono imparare WPF senza dover necessariamente sostenere l’esame.

 

Link alla pagina sul sito Microsoft Press.

 

Il primo capitolo è dedicato all’introduzione delle varie tipologie di applicazioni WPF (Windows, XBAP, Navigation), alla configurazione dei loro oggetti principali in particolare nelle due tipologie basate su oggetti Page e a un’importante aspetto della programmazione in WPF, ossia il Dispatcher per la gestione dei thread e il BackgroundWorker. Di quest’ultimo aspetto ho trovato molto buona la spiegazione: personalmente non avrei trattato questo aspetto alla 41esima pagina di un libro “tosto” su WPF, soprattutto per chi non ha confidenza con questa tecnologia; in realtà la chiarezza espositiva rende di facile comprensione un argomento piuttosto avanzato come questo.

 

Il secondo capitolo discute argomenti essenziali nello sviluppo con WPF: i routed events, le modalità di direct, tunneling e bubbling nonchè i vari aspetti della gestione di eventi. Si passa poi agli Application Commands, comandi per operazioni di default riutilizzabili nelle proprie applicazioni, per poi passare all’utilizzo dei Settings secondo il consueto stile .NET, sia tramite l’IDE di Visual Studio che tramite codice.

 

Il capitolo 3 è decisamente accattivante, poichè si inizia il discorso sui controlli utente e quindi il libro assume un taglio più pratico. Nella prima parte del capitolo si parte coi controlli standard e si inizia a vedere sia l’utilizzo del linguaggio XAML  che del codice managed, in entrambe le versioni VB e C# come da tradizione di questi volumi. Nella seconda parte si approfondisce una tematica fondamentale in WPF, che è quella dei panels e l’adjustment del layout dell’interfaccia.

 

Il naturale prosieguo del discorso trova sbocco nel quarto capitolo, dove si parla dell’utilizzo dei Brush, delle immagini e dei contenuti multimediali in applicazioni WPF, sempre vedendo l’utilizzo di XAML e VB/C#. Vengono quindi illustrate tecniche per abbellire esteticamente le proprie applicazioni con pochi passaggi, senza trascurare approfondimenti sugli oggetti utilizzati.

 

I capitoli 5 e 6 sono il cuore di questo volume e riguardano un aspetto fondamentale di qualunque contesto di sviluppo: il data-binding. Si parte davvero dalla base, ossia collegare l’interfaccia a collezioni di oggetti, per poi arrivare ai provider dati in WPF come ObjectDataProvider e XmlDataProvider;  viene introdotto il discorso dei DataTemplate, che caratterizzano controlli come la ListView e la ListBox, vengono illustrate tecniche per il filtro e l’ordinamento dei dati attraverso la libreria di classi base di .NET Framework. Devo dire che in questo ambito mi sarei aspettato almeno qualche esempio d’uso di LINQ, visto che si parla di WPF in ambito .NET 3.5. Ad ogni buon conto, coloro i quali hanno una minima esperienza di LINQ non avranno difficoltà ad applicarlo in questo contesto nel quale, d’altra parte, è anche importante non uscire dallo “scope”. Il discorso sulla gestione dei dati è completato dall’illustrazione di concetti quali la validazione dei dati stessi, l’implementazione di notifiche attraverso oggetti .NET come la ObservableCollection e la INotifyPropertyChanged.

 

Dopo un discorso così “tosto” come il data-binding, il tiro viene spostato su un argomento forse più piacevole ma non per questo meno importante, come l’utilizzo di stili e animazioni, nel capitolo 7. Si tratta di fattispecie che pervadono la maggior parte delle applicazioni WPF e quindi di fondamentale importanza, soprattutto per quanto riguarda i concetti alla base degli Styles, come i Triggers. Nel corso di questo capitolo viene anche spiegato il concetto di Dependency Property, un concetto spesso ostico ma che viene illustrato con una semplicità disarmante. Circa le animazioni, vengono illustrate sia quelle realizzate attraverso i triggers che quelle attraverso timeline/key frames, entrambe sempre sia come XAML che come VB/C#. È un bel capitolo, che dà, per forza di cose, priorità all’uso di XAML rispetto al codice managed ma non trascura l’illustrazione di importanti proprietà esposte dagli oggetti utilizzati per le animazioni e fornisce utili consigli per ottenere risultati incoraggianti anche a livello di performance grafiche.

 

L’ottavo capitolo riguarda totalmente la personalizzazione dell’interfaccia grafica e vengono affrontati concetti molto interessanti, che tendenzialmente non dovrebbero rientrare nella mentalità dello sviluppatore WPF “puro” ma che, giocoforza, sono di supporto quando si progetta di migrare da Windows Forms a WPF: l’interoperabilità tra le due tecnologie, sia attraverso l’uso di controlli Win Forms in applicazioni WPF che viceversa. Fondamentale, poi, l’argomento dei control templates, ossia la possibilità di ridefinire completamente il layout di un controllo, facendo ricorso agli stili, pur mantenendo inalterato il comportamento tipico di quello specifico controllo. I control template sono una parte essenziale in WPF, quindi a questa tematica è dato il giusto spazio. Il discorso termina con la trattazione della creazione di controlli utente riutilizzabili e la creazione e l’utilizzo di temi e skin per le proprie applicazioni che, grazie all’utilizzo delle Resources, diventano veramente semplici. Questo particolare argomento viene riferito sia ai temi predefiniti di Microsoft Windows che a temi personalizzati.

 

Il nono capitolo è altrettanto importante. In prima battuta si approfondisce il discorso delle risorse e viene spiegato come creare e utilizzare Resource Dictionaries, insiemi riutilizzabili di risorse. Successivamente si passa a un argomento estremamente attuale, come la gestione dei documenti che, in WPF, grazie a particolarità esposte da .NET Framework già con la versione 3.0, offre tecniche estremamente interessanti: innanzitutto i flow documents, particolare tipologia di documento che offre elevate caratteristiche grafiche e di personalizzazione, nonchè di adattabilità dinamica dell’interfaccia. In secondo luogo, la gestione dei documenti XPS, un formato introdotto con Windows Vista che ha la caratteristica della portabilità e che, in questo volume, viene affrontata dal punto di vista developer, quindi creazione e manipolazione da codice. Argomenti molto cari alla maggior parte dei developer, come la stampa in WPF e la localizzazione delle applicazioni per l’utilizzo di più lingue, completano questo interessantissimo capitolo.

 

Il capitolo 10, l’ultimo, non poteva che essere riferito alla distribuzione delle applicazioni WPF, sia Windows che XBAP. Essenzialmente (sempre grazie all’infrastruttura offerta da .NET Framework) le applicazioni WPF possono essere distribuite come tutte le altre applicazioni .NET quindi, utilizzando tool già integrati in Visual Studio, tramite ClickOnce e i progetti per Windows Installer. Il capitolo, quindi, mostra entrambi gli scenari e fornisce ulteriori dettagli sulla Code Access Security con particolare riferimento alle applicazioni XBAP che, girando in rete, hanno alcune limitazioni sui permessi, tutte spiegate.

 

In conclusione, posso dirvi che ho sempre apprezzato la collana dei training kit di Microsoft Press per le certificazioni developer per la incredibile semplicità espositiva, in grado di far capire le cose in lingua inglese molto meglio di tanti altri libri in lingua italiana e questo volume conferma senza dubbio la tradizione. Due nei, peraltro comprensibili e, a mio avviso, trascurabili: come accennato prima, LINQ non viene utilizzato negli esempi sul data-binding. Il secondo neo è che non c’è neanche un accenno alla grafica 3D. Ma come già detto, tenuto conto del target di lettori, ossia persone che devono prepararsi per una certificazione tecnica da developer e non da designer, è normale che sia così.

 

Lo consiglio senz’altro non solo a coloro che vogliono prepararsi per l’esame di certificazione Microsoft, ma a coloro che vogliono imparare WPF in modo serio.

 

Info sulle certificazioni Microsoft.

 

Alessandro

Print | posted on giovedì 18 dicembre 2008 00:39 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET