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

Dependency Injection - Ninject

Ninject je open source DI framework, besplatan za ličnu i komercijalnu upotrebu. U .Net zajednici možda i najpopularniji. Odlikuje ga jednostavna i simpatična sintaksa, kao i vrlo dobra dokumentacija koja do detalja objašnjava njegovu upotrebu. Jednostavna implementacija IDependencyResolver interfejsa pomoću Ninject DI framework-a bi izgledala ovako: public class NinjectDependencyResolver : IDependencyResolver { private readonly IKernel kernel; public NinjectDependencyResolver(IKernel kernel) { this.kernel = kernel; } public object GetService(Type serviceType) { try { return this.kernel.Get(serviceType); } catch { return null; } } public IEnumerable<object> GetServices(Type serviceType) { try { return this.kernel.GetAll(serviceType); } catch { return new List<object>(); } } } Na kraju, potrebno je podesiti IoC kontejner unutar Global.asax.cs fajla: ...

2011-05-18 · 1 min · Ivan Franjic