Per ottenere applicazioni scalabili con un consumo minimo di risorse e una UI sempre reattiva,
dobbiamo scrivere software che opera in maniera asincrona.
In questa sessione vedremo perchè è importante sfruttare questo tipo di programmazione e
quali strumenti mette a disposizione il .NET Framework.
http://www.communitydays.it/events/communitydays-2013/misc04/
3. Agenda
• Falsi miti e definizioni
• Supporto del .NET Framework
• Tipologie di operazioni
• Design applicazioni
4. Falsi miti
• Serve a velocizzare l’esecuzione
• Eseguire in un nuovo Thread
• Asincrono e parallelo sono sinonimi
5. Asincrono
• Non bloccare il Thread chiamante
– Client-side: mantenere la User Interface
(re)attiva (desktop, tablet, phone)
– Server-side: evitare la creazione di nuovi
Thread, risparmiando risorse
7. Task-based Asynchronous Pattern
• Insieme di tipi e librerie .NET
– Nuovo modello unificato
– Evoluzione di quelli passati
• C# nuove keywords async/await
8. Tipologie
• CPU-bound: intensive da un punto di vista
computazionale (Thready Tasks)
– Task.Factory.StartNew(()=>{ /* code */ });
• I/O-bound: interazione con un dispositivo
di input/output (Threadless Tasks)
– WebRequest.Create("...").GetResponseAsync();
9. Design Applicazioni
• La progettazione del software è attività
molto impegnativa, che richiede molti
skills, ma progettare software che lavora in
asincrono e parallelo è ancora più difficile