DotNetMarche

.NET Framework User Group delle Marche
Registrazione eventi DotNetMarche

Per effettuare la registrazione all'evento, è necessario effettuare l'accesso al sito.
Se hai già un account per il sito di DotNetMarche, effettua qui il login altrimenti puoi crearne uno qui.
Dopo aver effettuato l'accesso potrai procedere con la registrazione.

14° Workshop "Tecniche per lo sviluppo di applicazioni: DI, IoC e AOP"
Venerdì 16 Aprile 2010



Download(Slide, Demo, Registrazioni)

Sede Sala Convegni
Via Mazzini, 6 - 60022 Castelfidardo (AN)

               

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 - Stefano Leli

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)
15:30 Librerie per IoC / DI e AOP - Andrea Balducci

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.

16:30 Coffee break
16:40 [Hands-On] Esempi di IoC e DI - Alessandro Giorgetti

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.

17:30 [Hands-On] Esempi di AOP - Gian Maria Ricci

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à.

18:15 Question & Answers e conclusione
19:30 Cena

Al solito, termineremo la serata con una cena in un ristorante della zona. Chi vuole partecipare può segnalarcelo rispondendo a questo post!

La partecipazione al workshop è gratuita! Per iscriverti, segui i link che trovi in altro, sopra il titolo dell'evento.



Se volete aiutarci a pubblicizzare l'evento, potete scaricare un volantino già pronto qui!
Per effettuare la registrazione all'evento, è necessario effettuare l'accesso al sito.
Se hai già un account per il sito di DotNetMarche, effettua qui il login altrimenti puoi crearne uno qui.
Dopo aver effettuato l'accesso potrai procedere con la registrazione.
 Modulo di registrazione originale gentilmente concesso da DotNetSide
Powered by Community Server (Commercial Edition), by Telligent Systems