[ Log On ]

Dependency Injection

Posted by frennky on 5/12/2011 @ 10:54 PM in Web Development

U skoro svakom tutorijalu o ASP.NET MVC framework-u se pominje Dependency Injection. Međutim, IoC framework-a ima dosta, a svako ima neki omiljeni.

U svim tim tutorijalima kada pišu o DI, autori uvek prezentuju jedan od IoC framwork-a, tako da je teško naći tutorijal ili blog na kome su dati primeri za više IoC framework-a. Zbog toga je teško odlučiti se koji koristiti, naročito ako ste tek počeli da učite.

Zbog toga sam odlučio da napišem seriju postova u kojima ću prikazati neke od najpopularnijih IoC framework-a.

Primeri u ovoj seriji postova obuhvataju sledeće IoC framework-e:

Jedno od glavnih poboljšanja koje nam MVC 3 donsi jeste bolja integracija sa IoC/DI kontejnerima. U ranijim verzijama MVC framework-a bilo je potrebno napraviti custom ControllerFactory. U MVC 3 potrebno je samo implementirati jedan jednostavan interfejs:

public interface IDepndencyResolver
{
    object GetService(Type serviceType);
    IEnumerable<object> GetServices(Type serviceType);
}

Treba napomenuti da ukoliko pri pozivu GetService metode IoC kontejner nije u stanju da vrati servis, treba da vrati null. Slično tome ukoliko pri pozivu GetServices nije u stanju da vrati servise treba da vrati praznu kolekciju. Ovo je vrlo bitno, jer ukoliko dođe do greške ona će biti vraćena korisniku kao run-time greška.