Dit is mijn tweede blog over de onderwerpen op dag 1 van de PDC09. Dit onderwerp verdient gewoon een aparte blog; er is natuurlijk een hoop veranderd sinds ASP.NET versie 1. Masterpages, Ajax, MVC om er maar een paar te noemen. Met versie 4 komen er ook weer aanpassingen beschikbaar, maar een aantal zeer interessante dingen zitten er nog aan te komen! Wat termen: Helpers, SmartyRouting, CSS sprites, Active record en HTML5.

Dit is mijn tweede blog over de onderwerpen op dag 1 van de PDC09. Dit onderwerp verdient gewoon een aparte blog; er is natuurlijk een hoop veranderd sinds ASP.NET versie 1. Masterpages, Ajax, MVC om er maar een paar te noemen. Met versie 4 komen er ook weer aanpassingen beschikbaar, maar een aantal zeer interessante dingen zitten er nog aan te komen! Wat termen: Helpers, SmartyRouting, CSS sprites, Active record en HTML5.
(na) Versie 4
Over de aanpassing in versie 4 heb laatst een blog geschreven, dus daar zal ik nu niet dieper op ingaan. De belangrijkste dingen waren o.a. Ajax, URL routing en Dynamic data. Deze blog gaat vooral over de plannen van het ASP.Net team voor na de release van .Net versie 4. De focus zal dan namlijk liggen op het 'simpeler maken'. Het team gaat helper Classes maken voor dingen die webdevelopers vaak doen, maar vrij lastig zijn of veel werk kosten.
Helpers
Een plaatje resizen of een watermerk in een afbeelding plaatsen, zijn dingen die wel kunnen in .Net, maar niet echt handig zijn op dit moment. In de toekomst zou dat er zo uit kunnen zien:
Imaging.ResizeImage(400, 300, "Original.jpg", "Thumbnail.jpg")
Imaging.AddWatermark("©Master it", "Original.jpg", "Modified.jpg")
Een ander ding dat vaak voorkomt is het versturen van een verificatie email. De gebruiker registreert zich, krijgt een mail met een link en als hij op de link in de mail klikt wordt de registratie voltooid. Dit proces willen ze graag vergemakkelijken, door een 'register' methode te maken waaraan je kunt meegeven of er een mailverificatie proces nodig is. De rest gaat dan vanzelf.
Login.Register(username, password, email, true)
Nog iets waar iedere webdeveloper op zit te wachten: een upload control met progressbar. Een file uploaden is geen probleem, maar de gebruiker krijgt nu geen enkele informatie over hoe het staat met het upload proces. Eventueel zijn er mogelijkheden met flash, maar optimaal is anders. Maar hier zijn ze dus hard mee bezig.
SmartyRouting
In versie 4 wordt URL routing geïntroduceerd. Je weet wel, het omschrijven van de URL van pagina’s met querystring. Dit is niet alleen mooier, maar werkt perfect voor zoekmachine optimalisatie. Met de werking is niets aan de hand, maar het configureren kan nog wel eens wat tijd in beslag namen. Daarom hebben ze SmartyRouting bedacht.
Een voorbeeld: stel ik heb een pagina www.website.nl/foo.aspx?info=bar. Met URL routing zou dit 'www.website.nl/foo/bar' kunnen worden.  Ze gaan het systeem nu zo intelligent maken dat hij dit zelf kan oplossen. Bestaat er een map 'bar', nee » bestaat er dan een bestand 'bar.aspx' » nee, dan is het een parameter. Bestaat er een map 'foo', nee » bestaat er dan een bestand 'foo.aspx', ja » roep deze aan met de parameter. De extensie 'aspx' wordt dan ook overbodig om nog in de url op te nemen.
HTML5
Tja, HTML5. Ze zijn er al jaren mee bezig, maar klaar is het nog steeds niet. Toch is Microsoft bezig om te kijken welke dingen interessant zijn om nu alvast mee aan de slag te gaan. Één van die dingen is de localstorage. Het wordt mogelijk om data op te slaan op de client om hier makkelijk mee te werken. Eventuele wijzigingen aan de data worden bijgehouden en eventueel later gesynchroniseerd met de database.
CSS sprites
Als je een web pagina op vraagt, dan krijg je eerst de HTML terug. In de HTML staan links naar afbeeldingen, Javascript- en CSS-bestanden, die vervolgens nog opgehaald worden met losse http-requests. Zo’n request kost tijd en resources.
Het is mogelijk om meerdere afbeeldingen samen te voegen tot 1 afbeelding en deze in de CSS weer los te knippen. Los knippen is niet helemaal de juiste benaming: je zet het samengevoegde plaatje als background van een element die de grootte heeft van het kleine plaatje. Vervolgens positioneer je de achtergrond op de juiste plek (background position) en verberg je de rest (overflow hidden).
Super techniek, maar nogal bewerkelijk. Waarschijnlijk is dat de reden waarom het niet of nauwelijks gebruikt wordt. Oplossing: Maak een map 'Sprites' aan, plaats je afbeeldingen in de map, en met 1 regel code plaats je de afbeelding in je ASPX pagina. De rest wordt voor je geregeld! De afbeeldingen worden automatisch samengevoegd en de CSS wordt voor je gegenereerd.
Velocity en ActiveRecord
De laatste 2 dingen die ze lieten zien zijn eigenlijk zaken die gebruik gaan maken van technieken die nog uit moeten komen. Zo gaat OutputCaching en Sessionstate geschikt gemaakt worden voor gebruik van het 'Velocity' distibuted caching platform. En wordt ActiveRecord een samenwerking met de nieuwe versie van het entity framework.
Even wachten nog..
Ik ben echt super enthousiast. Met hetgeen ik in deze blog heb beschreven gaan ze ook echt een aantal punten aanpakken die het leven van (ons) webdevelopers niet drastisch zal veranderen, maar wel op bepaalde fronten veel makkelijker gaat maken. Maar helaas.. aangezien dit nog na de release van versie 4 zal plaatsvinden, moeten we nog wel even geduld hebben.