Dependency Injection

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. ...

2011-05-12 · 1 min · Ivan Franjic

Dependency Injection - Unity

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. Međutim, postoji veliki broj IoC framework-a tako da je prirodnije da se komunikacija sa MVC framework-om odvija preko nekog interfejsa. Za tu svrhu postoji jedan vrlo jednostavan interfejs - IDependencyResolver: public interface IDepndencyResolver { object GetService(Type serviceType); IEnumerable<object> GetServices(Type serviceType); } I upravo implementacije ovog interfejsa treba da delegiraju zahteve za tipovima konkretnom IoC kontejneru. ...

2011-05-04 · 2 min · Ivan Franjic

Anatomija test klase

Sve test klase moraju biti dekorisane sa atributom [TestClass]. Na ovaj nacin Visual Studio prepoznaje da ta klasa sadrži testove. Pored ovog atributa, test klasa mora da bude javna i mora da ima bezparametarski javni konstruktor. using System; using System.Text; using System.Collections.Generic; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject1 { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { } } } Unutar test klase, svaka test metoda mora da bude javna, bezparametarska i da ne vraca vrednost. Da bi se smatrala test metodom, mora da bude dekorisana sa [TestMethod] atributom. Ukoliko neki od atributa nedostaje, nece biti prijavljene nikakve greške, vec jednostavno nece biti testova za izvršavanje. Medutim, ukoliko postoje atributi, ali nisu ispunjeni neki drugi zahtevi bice prijavljene greške. ...

2011-04-25 · 3 min · Ivan Franjic

Data Driven testing - XML, SQLCE

Vrlo često se prilikom testiranja javlja potreba za izvršavanjem istog testa sa različitim ulaznim podacima. Visual Studio Unit Testing Framework ima ugrađenu podršku za Data Driven Testing (DDT). Data Driven testovi se razlikuju od ostalih testova po tome što su dekorisani sa DataSource atributom. Pomoću ovog atributa definiše se izvor ulaznih podataka. Izvor podataka može da bude CSV fajl, XML, SQL Server, SQLCE baza i slično. Kada se pokrene test, podaci se čitaju red po red, i test se izvršava za svaki red posebno, a tekućem redu se pristupa preko TestContext-a. ...

2011-04-17 · 2 min · Ivan Franjic

Timestamp verzioniranje

Pre neki vikend za potrebe verzioniranja ove blog aplikacije napravio sam jednostavan alat. S obzirom da je u pitanju aplikacija na kojoj radim samo ja i koja se trenutno sastoji od jednog projekta, nisam imao potrebu ni za kakvim komplikovanim verzioniranjem, već mi je bila dovoljna verzija u vidu timestamp-a. Alat je krajnje jednostavan ali baš zbog toga mi se i sviđa. U pitanju je console aplikacija koja ažurira AssemblyInfo.cs fajl sa odgovarajućim formatom timestamp-a. Inicijalno je parsiranje argumenata rešeno preko Linq-a, ali sam posle pretraživanja interneta pronašao jedan vrlo zgodan komad koda za te svrhe (NDesk.Options). ...

2011-03-26 · 2 min · Ivan Franjic