FeedResult - Kreiranje custom ActionResult-a

U ovom postu biće prikazano kako može da se napravi custom ActionResult koji vraća feed kao odgovor na zahteva browser-a. ActionResult Svaka akcija kontrolera vraća objekat koji proizilazi iz apstraktne ActionResult klase. ASP.NET MVC sadrži nekoliko klasa koje nasleđuju ActionResult: ContentResult EmptyResult FileResult (apstraktna) FileContentResult FilePathResult FileStreamResult HttpUnauthorizedResult JavaScriptResult JsonResult RedirectResult RedirectToRouteResult ViewResultBase (apstraktna) PartialViewResult ViewResult ActionResult klasa sadrži samo jednu metodu, tako da ako pravimo custom ActionResult potrebno je da preklopimo samo ExecuteResult metodu. Iako, u našem primeru možemo direktno da nasledimo ActionResult klasu, mi ćemo naslediti FileResult. ...

2011-07-13 · 4 min · Ivan Franjic

CDN - Content Delivery Network

CDN predstavlja mrežu servera koji imaju isti sadržaj ali su geografski razmešteni na više lokacija. Kada krajnji korisnik pošalje zahtev za nekom stranicom, CDN dinamički izračunava koji CDN server mu je geografski najbliži i šelje odgovor sa tog servera. Sofisticiraniji CDN sistemi mogu da vrše i balansiranje opterećenja ukoliko u datom trenutku dođe do velikog saobraćaja na nekoj geografskoj lokaciji. Bez CDN-a web sajt se servira sa jedne geografske lokacije na kojoj se nalazi jedan server. Veliki saobraćaj ili velika distanca između servera i krajnjeg korisnika može negativno da utiče na brzinu učitavanja stranica web sajta. ...

2011-06-23 · 2 min · Ivan Franjic

Dependency Injection - Castle Windsor

Poslednji IoC kontejner u ovom serijalu je Castle Windsor. Ovaj IoC kontejner je deo Castle projekta iza koga stoji grupa iskusnih .Net developer-a. Jednostavna implementacija IDependencyResolver interfejsa pomoću Castle Windsor IoC kontejnera bi izgledala ovako: public class CastleWindsorDependencyResolver : IDependencyResolver { private IKernel kernel; public CastleWindsorDependencyResolver(IKernel kernel) { this.kernel = kernel; } public object GetService(Type serviceType) { try { return this.kernel.Resolve(serviceType); } catch { return null; } } public IEnumerable<object> GetServices(Type serviceType) { try { return this.kernel.ResolveAll(serviceType).Cast<IEnumerable<object>>(); } catch { return new List<object>(); } } } Na kraju, konfigurisanje Castle Windsor IoC kontejnera treba izvršiti unutar Global.asax.cs fajla: ...

2011-06-12 · 1 min · Ivan Franjic

Dependency Injection - StructureMap

StructureMap je jedan od najstarijih a samim tim i najzrelijih IoC kontejnera za .Net. Prva stabilna verzija izašla je još 2004., a trenutno aktuelna verzija 2.6.1 je iz februara 2010. Jednostavna implementacija IDependencyResolver interfejsa pomoću StructureMap IoC kontejnera bi izgledala ovako: public class StructureMapDependencyResolver : IDependencyResolver { private readonly IContainer container; public StructureMapDependencyResolver(IContainer container) { this.container = container; } public object GetService(Type serviceType) { try { return this.container.GetInstance(serviceType); } catch { return null; } } public IEnumerable<object> GetServices(Type serviceType) { try { return this.container.GetAllInstances(serviceType).Cast<object>(); } catch { return new List<object>(); } } } Konfigurisanje SturctureMap kontejnera treba izvršiti unutar Global.asax.cs fajla: ...

2011-06-01 · 1 min · Ivan Franjic

Dependency Injection - Autofac

Autofac je još jedan IoC kontejner za .Net, takođe vrlo popularan. Odlikuje ga manja veličina biblioteka u odnosu na ostale IoC kontejnere, ali ne i nedostatak funkcionalnosti. Jednostavna implementacija IDependencyResolver interfejsa pomoću Autofac framework-a bi izgledala ovako: public class AutofacDependencyResolver : IDependencyResolver { private IContainer container; public AutofacDependencyResolver(Autofac.IContainer container) { this.container = container; } public object GetService(Type serviceType) { try { return this.container.Resolve(serviceType); } catch { return null; } } public IEnumerable<object> GetServices(Type serviceType) { try { Type type = typeof(IEnumerable).MakeGenericType( new Type[] { serviceType }); object obj = this.container.Resolve(type); return (IEnumerable<object>)obj; } catch { return new List<object>(); } } } Setup Autofac IoC kontejnera treba staviti u Global.asax.cs fajl: ...

2011-05-21 · 1 min · Ivan Franjic