SlideShare a Scribd company logo
1 of 16
Introduzione ai framework per IoC / DI e AOP 14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010
andreabalducci Riferimenti Andrea Balducci http://www.ienumerable.it mtb.snowboard @ gmail.com
Framework
Unity “The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.” http://unity.codeplex.com/
Definiamo un contratto public interface IOperazioneMatematica { int Esegui(int a, int b); }
Implementazione public classOperazioneSomma : IOperazioneMatematica {     public int Esegui(int a, int b)     { return a + b;     } }
Configurazione del container // Creazione container IUnityContainer container = newUnityContainer(); // Registrazione componenti container.RegisterType< IOperazioneMatematica,	// contratto OperazioneSomma		// implementazione >();
Utilizzo del container // Richiesta del servizio di calcolo var operazione =  container.Resolve<IOperazioneMatematica>(); // Utilizzo del servizio int risultato = operazione.Esegui(1, 2);
Injection [InjectionConstructor] Per marcare un costruttore da utilizzare esplicitamente. In assenza viene usato il costruttore con il maggior numero di parametri.  [Dependency] Marca il setter della property [InjectionMethod] Marca un metodo di inizializzazione
{demo}
Castle Windsor “The Castle MicroKernel is an inversion of control container that was designed towards extensibility. It combines facilities to grow orthogonally.” Castle Windsor aggregates the MicroKernel and exposes a powerful configuration support. It is suitable for common enterprise application needs. It is able to register facilities and components based on the configuration and adds support for interceptors http://www.castleproject.org/container/index.html
Windsor - ComponentLifecycle http://www.castleproject.org/container/documentation/v21/usersguide/lifestyles.html
{demo}
Castle - Facilities http://www.castleproject.org/container/facilities/trunk/index.html
{demo}
andreabalducci {grazie}

More Related Content

Viewers also liked

Mongo db halloween party
Mongo db halloween partyMongo db halloween party
Mongo db halloween partyAndrea Balducci
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...Andrea Balducci
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAndrea Balducci
 
Body in jungs work
Body in jungs workBody in jungs work
Body in jungs workveropabon
 
Becoming and being a bioenergetic analyst
Becoming and being a bioenergetic analystBecoming and being a bioenergetic analyst
Becoming and being a bioenergetic analystveropabon
 
Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStoreAndrea Balducci
 
Narcissism and vulnerability
Narcissism and vulnerabilityNarcissism and vulnerability
Narcissism and vulnerabilityveropabon
 
Trattamento acque reflue | Bevtek
Trattamento acque reflue | BevtekTrattamento acque reflue | Bevtek
Trattamento acque reflue | BevtekWeb2Lab Studio
 

Viewers also liked (10)

Alam aeki 2015
Alam aeki 2015Alam aeki 2015
Alam aeki 2015
 
Mongo db halloween party
Mongo db halloween partyMongo db halloween party
Mongo db halloween party
 
Typescript intro
Typescript introTypescript intro
Typescript intro
 
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
[Alam aeki] Guida illustrata alla modellazione di un dominio con Event Sourci...
 
Asp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community TourAsp.Net MVC 2 :: VS 2010 Community Tour
Asp.Net MVC 2 :: VS 2010 Community Tour
 
Body in jungs work
Body in jungs workBody in jungs work
Body in jungs work
 
Becoming and being a bioenergetic analyst
Becoming and being a bioenergetic analystBecoming and being a bioenergetic analyst
Becoming and being a bioenergetic analyst
 
Event Sourcing con NEventStore
Event Sourcing con NEventStoreEvent Sourcing con NEventStore
Event Sourcing con NEventStore
 
Narcissism and vulnerability
Narcissism and vulnerabilityNarcissism and vulnerability
Narcissism and vulnerability
 
Trattamento acque reflue | Bevtek
Trattamento acque reflue | BevtekTrattamento acque reflue | Bevtek
Trattamento acque reflue | Bevtek
 

Similar to Introduzione ai framework ioc

Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)brossi676
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...DavisMol
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciutaAndrea Dottor
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaRoberto Polillo
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaRoberto Polillo
 
Clean android code
Clean android codeClean android code
Clean android codefirenze-gtug
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Romualdo Gobbo
 
Clean android code - Droidcon Italiy 2014
Clean android code - Droidcon Italiy 2014Clean android code - Droidcon Italiy 2014
Clean android code - Droidcon Italiy 2014Fabio Collini
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...gwalter85
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloudGabriele Baldoni
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Marco Loregian
 
Servizi e Dependency Injection in Angular
Servizi e Dependency Injection in AngularServizi e Dependency Injection in Angular
Servizi e Dependency Injection in AngularValerio Como
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterMarco Scandaletti
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentalsmvetro
 

Similar to Introduzione ai framework ioc (20)

System.AddIn @ Xe.Net
System.AddIn @ Xe.NetSystem.AddIn @ Xe.Net
System.AddIn @ Xe.Net
 
Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)Yii Framework - yes it is rapid web application development (Parte 1)
Yii Framework - yes it is rapid web application development (Parte 1)
 
Dessi Tech Day2008 Cagliari
Dessi Tech Day2008 CagliariDessi Tech Day2008 Cagliari
Dessi Tech Day2008 Cagliari
 
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
Analisi e sviluppo di componenti standard JSR 168 per la realizzazione di Por...
 
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
 
Spring Intro
Spring IntroSpring Intro
Spring Intro
 
Dependency injection questa sconosciuta
Dependency injection questa sconosciutaDependency injection questa sconosciuta
Dependency injection questa sconosciuta
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaforma
 
Corso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaformaCorso Web 2.0: Il Web come piattaforma
Corso Web 2.0: Il Web come piattaforma
 
Hexagonal architecture ita
Hexagonal architecture itaHexagonal architecture ita
Hexagonal architecture ita
 
Spring 2.5
Spring 2.5Spring 2.5
Spring 2.5
 
Clean android code
Clean android codeClean android code
Clean android code
 
Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20Omnis italianmeeting 2016-10-20
Omnis italianmeeting 2016-10-20
 
Clean android code - Droidcon Italiy 2014
Clean android code - Droidcon Italiy 2014Clean android code - Droidcon Italiy 2014
Clean android code - Droidcon Italiy 2014
 
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
Presentazione: Sviluppo di un hub di comunicazione in una applicazione per po...
 
High specialized vm on open stack cloud
High specialized vm on open stack cloudHigh specialized vm on open stack cloud
High specialized vm on open stack cloud
 
Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3Sistemi Context-aware: Esercitazione 3
Sistemi Context-aware: Esercitazione 3
 
Servizi e Dependency Injection in Angular
Servizi e Dependency Injection in AngularServizi e Dependency Injection in Angular
Servizi e Dependency Injection in Angular
 
Italy vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porterItaly vmug 2019 PowerCLI pret-a-porter
Italy vmug 2019 PowerCLI pret-a-porter
 
Docker Fudamentals
Docker FudamentalsDocker Fudamentals
Docker Fudamentals
 

More from Andrea Balducci

Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Andrea Balducci
 
Stranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheStranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheAndrea Balducci
 
Event based modelling and prototyping
Event based modelling and prototypingEvent based modelling and prototyping
Event based modelling and prototypingAndrea Balducci
 
Storage dei dati con MongoDB
Storage dei dati con MongoDBStorage dei dati con MongoDB
Storage dei dati con MongoDBAndrea Balducci
 
Italian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonItalian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonAndrea Balducci
 

More from Andrea Balducci (7)

Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019Agile Industry 4.0 - IoT Day 2019
Agile Industry 4.0 - IoT Day 2019
 
Inception
InceptionInception
Inception
 
Stranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarcheStranger Streams | NStore @ DevMarche
Stranger Streams | NStore @ DevMarche
 
Event based modelling and prototyping
Event based modelling and prototypingEvent based modelling and prototyping
Event based modelling and prototyping
 
Storage dei dati con MongoDB
Storage dei dati con MongoDBStorage dei dati con MongoDB
Storage dei dati con MongoDB
 
Italian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - ModellathonItalian Agile Days 2016 - Modellathon
Italian Agile Days 2016 - Modellathon
 
Open domus 2016
Open domus 2016Open domus 2016
Open domus 2016
 

Introduzione ai framework ioc

  • 1. Introduzione ai framework per IoC / DI e AOP 14° Workshop – DotNetMarche :: Castelfidardo, 16 Aprile 2010
  • 2. andreabalducci Riferimenti Andrea Balducci http://www.ienumerable.it mtb.snowboard @ gmail.com
  • 4. Unity “The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection.” http://unity.codeplex.com/
  • 5. Definiamo un contratto public interface IOperazioneMatematica { int Esegui(int a, int b); }
  • 6. Implementazione public classOperazioneSomma : IOperazioneMatematica { public int Esegui(int a, int b) { return a + b; } }
  • 7. Configurazione del container // Creazione container IUnityContainer container = newUnityContainer(); // Registrazione componenti container.RegisterType< IOperazioneMatematica, // contratto OperazioneSomma // implementazione >();
  • 8. Utilizzo del container // Richiesta del servizio di calcolo var operazione = container.Resolve<IOperazioneMatematica>(); // Utilizzo del servizio int risultato = operazione.Esegui(1, 2);
  • 9. Injection [InjectionConstructor] Per marcare un costruttore da utilizzare esplicitamente. In assenza viene usato il costruttore con il maggior numero di parametri. [Dependency] Marca il setter della property [InjectionMethod] Marca un metodo di inizializzazione
  • 11. Castle Windsor “The Castle MicroKernel is an inversion of control container that was designed towards extensibility. It combines facilities to grow orthogonally.” Castle Windsor aggregates the MicroKernel and exposes a powerful configuration support. It is suitable for common enterprise application needs. It is able to register facilities and components based on the configuration and adds support for interceptors http://www.castleproject.org/container/index.html
  • 12. Windsor - ComponentLifecycle http://www.castleproject.org/container/documentation/v21/usersguide/lifestyles.html
  • 14. Castle - Facilities http://www.castleproject.org/container/facilities/trunk/index.html