Posts

Posts uit april, 2019 tonen

MVC 70-486: Chapter 1

Afbeelding
Objective 1.1: Design the application architecture Routes and routing De routing engine weet niks van MVC af. Zijn enige taak is de URL te analyseren en de controle over te dragen aan de route handler. De route handler gaat op zoek naar een HTTP handler, of een implementatie van IHttpHandler. De default HttpHandler is de MvcHandler. Deze handler extraheert de controller informatie door de request te vergelijken met de template waarden in de routing tabel. De handler haalt de strings eruit en stuurt deze naar de controller factory die op zijn beurt de geschikte controller teruggeeft. Asynchronous controllers Een grote aanpassing in MVC 4 t.o.v. MVC 3 zijn asynchrone controllers. In MVC zijn deze nu standaard opgenomen terwijl in MVC 3 gebruik maakte van een AsyncController.  Async controllers zijn handig voor niet  CPU-gebonden requests. Bij het maken van Action methods moet bepaalt worden of deze async moeten zijn of niet. Dit hangt af of de actie network- of I/O gebonden

Design Tips

Dependencies Stel Class A heeft aan afhankelijkheid van Class B, maar om Class B te kunnen instantieeren is Class C nodig. Dus Class A heeft om deze reden nu ook een afhankelijk nodig naar Class C. Met andere woorden, de implementatie van Class B is 'leaked out' en dwingt daarmee zijn gebruikers een afhankelijk te creeeren naar een Class die zij helemaal niet kennen / nodig hebben. In dit soort situatie komt de Factory Design Pattern om de hoek kijken. Class A is nu niet meer afhankelijk van Class B, maar van de Factory van Class B. Deze factory kent alle afhankelijkheden wel en zorgt er voor dat Class B op juiste wijze kan worden gecreeerd. Deze factory wordt vaak in Class A geinjecteerd middels een Depency Injection framework.