Met de introductie van ASP.NET heeft Microsoft, zwart-wit gezien, als het ware de Windows Forms naar het Web gebracht. Controls konden ineens hun state bewaren d.m.v. de ViewState en daarnaast draaiden deze op de server. Kennis van o.a. HTML was niet meer een must om Webapplicaties te ontwikkelen. Dit maakte het voor ontwikkelaars zonder kennis van het Web een stuk toegankelijker. Ik als webontwikkelaar die begonnen is met -inmiddels classic – Active Server Pages (ASP) was dit in het begin enorm wennen en voelde vooral omslachtig en log aan.

Omdat het bovenstaande in de verleden tijd is geschreven doet het misschien vermoeden dat ASP.NET zijn beste tijd heeft gehad. Dit is absoluut niet het geval want het is nog steeds zeer geschikt voor Webapplicaties en er kan relatief snel resultaat mee geboekt worden.

Afgelopen april heeft Microsoft de eerste definitieve versie vrijgegeven van het ASP.NET MVC Framework. MVC staat voor Model-view-controller en is gebaseerd op het gelijknamige design pattern.
ASP.NET MVC maakt het mogelijk om Webapplicaties uiteen te splitsen in drie strikt gescheiden onderdelen alle met hun eigen verantwoordelijkheden: Model, View en Controller.

  • Models zijn de implementatie van de gegevens waarmee de applicatie werkt aangevuld met (business) logic . Dit kan variëren van een enkel object tot zeer complexe structuren in veel gevallen zijn deze gerelateerd aan een database.
  • Views zijn de componenten die verantwoordelijk zijn voor het weergeven van de user interface op basis van de Models.  Denk hierbij bijvoorbeeld aan een form met textboxen en buttons in de vorm van HTML.
  • Controllers handelen de interactie met de gebruiker af, spreken de Models aan en bepalen welke View gebruikt moet worden om de data weer te geven

Wat betekent dit nu in de praktijk?

Uitbreidbaarheid
De verschillende onderdelen binnen het ASP.NET MVC Framework zijn zo ontworpen dat deze onafhankelijk zijn van elkaar, waardoor het eenvoudig is om onderdelen te wijzigen dan wel te vervangen in het gehele proces.

Testbaarheid
Doordat de verschillende onderdelen gescheiden zijn van elkaar kunnen nu ook automatische (unit) tests uitgevoerd worden, dit is nagenoeg onmogelijk in ASP.NET WebForms. Dit zet ook de deur open voor ontwikkel methodieken zoals test driven development (TDD).

Webstandaarden
Door de toename van het gebruik van verschillende browsers op steeds meer verschillende apparaten is het misschien nog wel belangrijker geworden om je als webontwikkelaar te houden aan de verschillende Webstandaarden voor (X)HTML, CSS etc.
De ASP.NET Server Controls worden omgezet naar HTML maar niet altijd op de manier zo als je graag zelf zou willen, voornamelijk bij het toepassen van CSS. Binnen een View heb je zelf veel meer controle over de verschillende HTML controls. Zo ook bij het toekennen van de ID’s, waardoor het makkelijker is om deze met JavaScript te benaderen. Zoals ze in de code gezet worden, blijven ze ook tijdens de uitvoer, daarnaast zijn ze niet (meer) server-side.

URLs
Vandaag de dag is het voor de vindbaarheid in zoekmachines erg belangriijk om te zorgen voor “nette” URL’s, dus geen bestandsextensies, vreemde tekens etc. maar vooral “veel” keywords.
Om dit doel te bereiken heeft het ASP.NET MVC Framework een erg krachtig routing systeem. In tegen stelling tot de huidige WebForms (zonder ISAPI-filters) bepaald de URL niet meer welke pagina aangeroepen moet worden, maar juist welke controller en welke action/methods de request moeten afhandelen.

Tot zover even een kortie introductie van het ASP.NET MVC Framework. Er zijn ongetwijfeld nog meer voor- en ook nadelen te noemen van ASP.NET MVC ten opzicht van ASP.NET WebForms, maar in een serie van blogs wil ik de verschillende onderdelen gedetailleerder en met voorbeeld code de revue laten passeren.

Ik ben er in ieder geval erg enthousiast over. Mocht je zelf meer willen weten of het zelf eens willen uit proberen dan staan hier de nodige (video) tutorials: The Official ASP.NET Microsoft site.

Stem of voeg toe aanUitleg over het gebruik van deze icons :Voeg dit artikel toe aan Del.icio.us Voeg toe aan je Google bladwijzers Plaats dit bericht op Twitter Geef dit als tip aan je Hyves-vrienden Voeg toe aan je Facebook-profiel Deel met je LinkedIn-contacten Abonneer je op de RSS-feed van deze site Verstuur deze pagina per e-mail via Feedburner Print deze pagina of genereer een PDF-bestand