Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

IoC - Koristen vzorec ali nepotrebna komplikacija

1,757 views

Published on

Slides from my session on IoC basics at NT conference 2013

Published in: Technology
  • Login to see the comments

  • Be the first to like this

IoC - Koristen vzorec ali nepotrebna komplikacija

  1. 1. 100300IoC: koristen vzorec alinepotrebna komplikacija?Damir Arh, Adacta d.o.o.Arhitekt programske opremeMVP – Visual C#@DamirArh, http://www.damirscorner.com
  2. 2. 100300Agenda Zakaj IoC? Primerjava vzorcev IoC Ogrodja IoC za .NET Prednosti in slabosti
  3. 3. 100300Zakaj IoC?
  4. 4. 100300Glavni poudarki Premik odvisnosti v ločen razred Abstrakcija prek vmesnika Zunanje instanciranje odvisnih razredov Uporaba ogrodja IoC
  5. 5. 100300Dependency Injection
  6. 6. 100300Dependency Injection
  7. 7. 100300Dependency Injection
  8. 8. 100300Dependency Injection
  9. 9. 100300Dependency Injection
  10. 10. 100300Bind<ViewModel>().ToSelf()Bind<IRepository>().To<WsRepository>()Konfiguracija ogrodja IoCViewModel(IRepository)WsRepository() : IRepository
  11. 11. 100300ViewModel(IRepository)WsRepository(IWsEndpoint) : IRepositoryMainWsEndpoint() : IWsEndpointBind<ViewModel>().ToSelf()Bind<IRepository>().To<WsRepository>()Bind<IWsEndpoint>().To<MainWsEndpoint>()Enostavno širjenje
  12. 12. 100300<module name="xmlConfig"><bind service="MVVM.ViewModel, MVVM"to="MVVM.ViewModel, MVVM" /><bind service="MVVM.IRepository, MVVM"to="MVVM.WsRepository, MVVM" /><bind service="MVVM.IWsEndpoint, MVVM"to="MVVM.MainWsEndpoint, MVVM" /></module>Konfiguracija v XML
  13. 13. 100300Nastavitve v kodi ali datoteki? Zastavite si 3 vprašanja: Kdaj? Kdo? Koliko? Uporabite lahko oboje
  14. 14. 100300public class ViewModel{public ViewModel(IRepository);}public class ViewModel{public ViewModel();public IRepository { get; set; }}Setter Injection
  15. 15. 100300DI != IoC
  16. 16. 100300ServiceLocator
  17. 17. 100300Dependency Injection
  18. 18. 100300Service Locator
  19. 19. 100300Ţivljenjskicikelodvisnosti
  20. 20. 100300Ţivljenjski cikel odvisnosti Različen obseg uporabe instanc: Enkratna uporaba (transient) Trajna (singleton) Znotraj niti Znotraj zahtevka (splet) Skrb za sproščanje (IDisposable): Ročna Samodejna
  21. 21. 100300Ogrodja IoC za .NET Autofac Castle Windsor Container Ninject Spring.NET StructureMap Unity
  22. 22. 100300Koristi uporabe IoC Šibka sklopljenost Večja fleksibilnost Lažje testiranje Boljši pregled nad odvisnostmi
  23. 23. 100300Uporaba zatestiranje
  24. 24. 100300IoC: da ali ne? Kdaj ne?
  25. 25. 300VPRAŠANJAProsimo vas, da po koncu predavanja izpolnitevprašalnike. Nekoga izmed vas bomo nagradiliz Nokio Lumia 820.Vprašalniki bodo poslani na vaš e-naslov, dostopni pa bodo tudi preko profila naspletnem mestu www.ntk.siNajlepša hvala!Iščete kakovostno izobraževanje? Obiščite Microsoftove izobraževalne centre:Uspeh = Znanje = Microsoftovi uradni tečaji + predavatelji Microsoft Certified Trainer

×