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

ASP.NET MVC vs ASP.NET WebForms

ASP.NET MVC se pojavio u martu 2009. godine i većina članaka na temu ASP.NET MVC vs ASP.NET WebForms datira iz te godine. Međutim, ASP.NET MVC je prešao veliki put od tada i danas je dostupan u verziji 3.0. Mislim da će ovaj članak najviše koristiti onima koji tek počinju sa izučavanjem web tehnologija. Prednosti ASP.NET WebForms-a Kada se govori o prednostima WebForms-a, ono što većina članaka ističe jeste da je to zrela tehnologija sa bogatim izborom serverskih kontrola. Ovo polako prestaje da bude prednost WebForms-a, jer je sve više kontrola/helpera za ASP.NET MVC. Kao primer, pomenuću Telerik-ov odličan set ASP.NET MVC kontrola, koji ne samo da su istog kvaliteta kao i set kontrola za ASP.NET WebForms već su ove kontrole i besplatne. ...

2011-03-23 · 3 min · Ivan Franjic