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

Mais conteúdo relacionado

Destaque

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
 

Destaque (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
 

Semelhante a 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
 

Semelhante a 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
 

Mais de 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
 

Mais de 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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.