Simone Busoli14/06/2008 - Milano
   Comunemente DI - IoC   Principi comuni di disegno software     Alta coesione     Basso accoppiamento    …   Basso...
   Voglio poter registrare le iscrizioni ad un    evento     Persistere i dettagli dell’iscritto     Comunicare se l’is...
   SubscriptionService conosce direttamente i dettagli di    EmailService e PersonRepository BAD
   Il servizio conosce solo l’interfaccia dei componenti    che utilizza GOOD
   Iniettare dipendenze dall’esterno rende più    onerosa l’istanziazione di componenti     Necessario conoscere tutte l...
   Hollywood Principle     Don’t call us, we will call you!                                          Vorrei un’istanza d...
   Entità esterna all’applicazione   Configurabile   Conosce le dipendenze tra i componenti ed è    in grado di soddisf...
   Inversion of Control container open source   Stabile – production ready                                              ...
   Configurazione Xml
   Codice client   Molto meglio, eh?   Altri containers     StructureMap     Spring.Net     Autofac     …
   Inversion of Control and Dependency    Injection: Working with Windsor Container    http://msdn.microsoft.com/en-    u...
Upcoming SlideShare
Loading in...5
×

Dependency Injection and Inversion Of Control

430

Published on

This is a short presentation I gave back in 2008 at the UgiAlt.Net conference in Milan about inversion of control and dependency injection principles. Examples use Castle project's Windsor container.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
430
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Dependency Injection and Inversion Of Control

  1. 1. Simone Busoli14/06/2008 - Milano
  2. 2.  Comunemente DI - IoC Principi comuni di disegno software  Alta coesione  Basso accoppiamento … Basso accoppiamento  Riduzione delle dipendenze tra componenti software  Chi conosce chi? Risoluzione dipendenze tra componenti
  3. 3.  Voglio poter registrare le iscrizioni ad un evento  Persistere i dettagli dell’iscritto  Comunicare se l’iscrizione è andata a buon fine tramite mail EmailService SubscriptionService PersonRepository
  4. 4.  SubscriptionService conosce direttamente i dettagli di EmailService e PersonRepository BAD
  5. 5.  Il servizio conosce solo l’interfaccia dei componenti che utilizza GOOD
  6. 6.  Iniettare dipendenze dall’esterno rende più onerosa l’istanziazione di componenti  Necessario conoscere tutte le dipendenze
  7. 7.  Hollywood Principle  Don’t call us, we will call you! Vorrei un’istanza di SubscriptionService
  8. 8.  Entità esterna all’applicazione Configurabile Conosce le dipendenze tra i componenti ed è in grado di soddisfarle a runtime IoC Container Vorrei un’istanza di SubscriptionService Istanza completa di tutte le dipendenze
  9. 9.  Inversion of Control container open source Stabile – production ready Il container si occupa Si configura il Si richiede l’istanza di soddisfare le container (xml, boo, di un componente dipendenze e creare C#) l’istanza
  10. 10.  Configurazione Xml
  11. 11.  Codice client Molto meglio, eh? Altri containers  StructureMap  Spring.Net  Autofac  …
  12. 12.  Inversion of Control and Dependency Injection: Working with Windsor Container http://msdn.microsoft.com/en- us/library/aa973811.aspx Castle Project http://www.castleproject.org/container/ StructureMap http://structuremap.sourceforge.net
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×