do more with less
news, esperienze, esempi da condividere e qualcosa su di me

venerdì 9 aprile 2010

DotNetMarche: Tecniche per lo sviluppo di applicazioni

Uno dei problemi principali che impediscono la realizzazione di applicazioni modulari è la dipendenza tra i componenti che le costituiscono. Eliminare queste dipendenze può dare innumerevoli vantaggi quali la possibilità di effettuare test automatici ed avere un codice incline al cambiamento. Tecniche come Inversion of Control (IoC) e Dependecy Injection (DI) ci possono aiutare giocando un ruolo fondamentale nella ricerca del "Low Coupling".
Vedremo inoltre come attraverso Aspect Oriented Programming (AOP) sia possibile isolare la presenza dei "Crosscutting Concern", ovvero i "comportamenti" trasversali all'applicazione (come il logging, l'autenticazione, il caching, il Transaction Management, ...), mitigandone la loro natura pervasiva.

14:00
Registrazione partecipanti

14:20
Introduzione all'evento

14:30
L'origine dei mali: le dipendenze tra componenti
Vediamo perchè le dipendenze tra i componenti sono un ostacolo alla scrittura di software modulare (e perchè dovremmo scrivere codice modulare!) e quali tecniche ci possono aiutare:

  • Dependency Injection (DI)
  • Inversion of Control (IoC)
  • Aspect Oriented Programming (AOP)

Speaker: Stefano Leli

15:30
Librerie per IoC / DI e AOP
Le tecniche appena introdotte possono essere realizzate tramite i soli strumenti messi a disposizione dal .Net Framework, ma questo richiede la scrittura di codice piuttosto complesso: nella quotidianità ci si appoggia generalmente a delle librerie di terze parti a disposizione.
Faremo una breve panoramica sulle principali librerie, in particolare Castle e Microsoft Unity (entrambe open source e gratuite).
Queste librerie fanno parte di veri e propri "application framework" ed offrono tante funzionalità per lo sviluppo dei programmi: vedremo sia come poter sfruttare di essi "solo" le parti che ci interessano per IoC / DI e AOP, sia come far interagire le varie componenti per ottenere interessanti funzionalità come, ad esempio, l'integrazione della parte di IoC con WCF ed NHibernate.
Speaker: Andrea Balducci

16:30
Coffee break

16:40
[Hands-On] Esempi di IoC e DI
Tramite esempi di codice vedremo come poter applicare i principi della DI e dell'IoC appena introdotti, e come poter refattorizzare delle applicazioni già esistenti per andare in questa direzione, in modo da usufruire dei vantaggi indicati.
Parleremo inoltre di alcune best practice o situazioni da evitare per non andare incontro a nuovi problemi creati dall'adozione di queste tecniche.
Speaker: Alessandro Giorgetti

17:30
[Hands-On] Esempi di AOP
Dopo aver refattorizzato l'applicazione nella sessione precedente secondo le tecniche dell'Inversion of Control, vedremo come sfruttare l'AOP per risolvere in maniera molto semplice alcuni tipici problemi, come la gestione del logging, della validazione, del caching, etc..., riducendo il codice duplicato ed aumentando la modularità.
Speaker: Gian Maria Ricci

18:15
Question & Answers e conclusione

19:30
Cena

Data: Venerdì 16 Aprile 2010
Ore: 14.00
Luogo: Sala Convegni – Via Mazzini 6 – Castelfidardo (AN)

Informazioni e iscrizioni