Gruppo DevLeap

Sessione plenaria
DevCon 2009

Paolo e Luca

Dublin (App-Fabric)
Silverlight 3
DevCon 2009

Luca

Sessione Windows
Presentation Foundation 3.5
DevCon 2008

Luca e Marco

Sessione WPF
Sessione LINQ
DevCon 2009

Roberto e Paolo

ADO.NET Data Services
Inside WCF
DevCon 2009

Asynchronous Development in .NET 4.0 e 4.5 Day

two col ruler

3 aprile 2012

I servizi del Common Language Runtime in .NET sono usati in qualsiasi layer di un’applicazione: interfaccia utente, componenti per il business tier, accesso ai dati, servizi, algoritmi di calcolo, e così via. Alcuni di tali servizi sono a supporto delle tecniche di programmazione asincrona e di multithreading, usate in molte parti di un’applicazione per migliorarne la scalabilità e i tempi di risposta. Proprio questi servizi hanno fornito, con l’evoluzione delle versioni di .NET, strumenti sempre più sofisticati che consentono di semplificare il codice che scriviamo, migliorandone la leggibilità e la manutenzione. La versione 4.0 di .NET ha poi introdotto la Task Parallel Library e la prossima versione 4.5 fornirà ulteriori strumenti per semplificare la scrittura di chiamate asincrone, grazie anche a una nuova versione di C# con costrutti sintattici che velocizzano ulteriormente la scrittura del codice.
Questa giornata sarà completamente dedicata alle tecniche di programmazione asincrona e multithreading con .NET, ripercorrendo tutti gli strumenti a disposizione anche nelle versioni precedenti e chiarendone gli scenari corretti di utilizzo. Dopo un breve ripasso sui concetti fondamentali (thread, scheduler, contesti di esecuzione), saranno esaminati tutti i possibili costrutti di chiamate asincrone, con particolare attenzione alle funzionalità offerte dalla Task Parallel Library (TPL) in .NET 4.0 e a come usare al meglio il paradigma offerto da TPL anche nella migrazione di applicazioni esistenti. Una parte della giornata sarà poi dedicata a comprendere quale sarà l’evoluzione di queste tecniche con l’introduzione di .NET 4.5, evoluzione che sarà molto importante nella programmazione per Windows 8 (visto che le nuove API di WinRT imporranno l’uso di chiamate asincrone) ma fornirà un utile strumento anche a tutte le piattaforme esistenti, in particolare per quanto riguarda l’interfaccia utente (da Windows Forms a WPF e Silverlight) e i servizi di back-end.
L’obiettivo è di allineare le conoscenze dei partecipanti ai migliori pattern di programmazione asincrona esistenti con .NET 4.0 e di preparare all’uso di .NET 4.5, usando già nelle applicazioni attuali un approccio simile a quello che sarà possibile con la nuova versione di C# attraverso una sintassi semplificata. Grazie a queste conoscenze si può scrivere codice più efficiente e in meno tempo, mantenendo il controllo sulla realizzazione finale e ottenendo un risultato ottimale sia come scalabilità che come manutenibilità.
La giornata è rivolta a sviluppatori e architetti software che hanno già esperienza di scrittura di applicazioni .NET e conoscono almeno alcune delle tecniche base (chiamate asincrone, callback). La conoscenza della sintassi C# per metodi anonimi e delle lambda expression è preferibile, anche se non costituisce un prerequisito vincolante. Durante la giornata saranno introdotti alcuni concetti di base e la definizione della sintassi, dedicando poi gran parte del tempo a disposizione per scrivere il codice C# degli esempi, illustrandone in dettaglio il funzionamento e chiarendone gli scenari d’uso corretti.

Inizio registrazione ore 08.45 – inizio lavori ore 09.00 – fine lavori ore 18.00

Indice degli argomenti

two col ruler

Concetti di programmazione asincrona

Sintassi per chiamate asincrone in .NET

Thread e Thread Pool

Sincronizzazione su eventi

Sincronizzazione su contesti

Task Parallel Library

PLINQ

Keyword async e await in C#

TAP – Task-based Asynchronous Pattern