Archive for November, 2007

Filed Under (Code algemeen) by Christiaan van Bergen on November-29-2007

Hoe vaak ik niet aan het stoeien was met virtual machines om mijn websites in meerdere versies van IE te kunnen bekijken. Dit alles blijkt -al geruime tijd- overbodig te zijn geweest. Een collega van mij wees mij op een tool MultipleIEs. Dit stelt je in staat om verschillende versies naast elkaar te draaien. Het lijkt nog niet helemaal perfect te werken wanneer ik de commentaren doorneem, maar vooralsnog ben ik enthousiast. Een kant en klare installatie kan je vinden bij TredoSoft.

Er zijn teveel tools om ze allemaal te kennen, sommige ontdek je (te) laat.



Filed Under (Code algemeen) by Christiaan van Bergen on November-29-2007

Bij de bouw van verschillende webapplicaties maak ik gebruik van TamperData. Dit is een plug-in voor Mozilla FireFox dat de gegevens die gepost worden naar de server vanaf een webpage inzichtelijke maakt. Sterker nog, het maakt ze niet alleen inzichtelijk, maar ook veranderbaar. Elke submit/post die de webpagina maakt kan afgevangen worden.

Dit gecombineerd met Nikhil Kothari’s Web Development Helper of bijvoorbeeld Fritz Onion’s ViewState Decoder weet je weer wat meer wat daar nu eigenlijk over die lijn gaat (en wat anderen dus ook kunnen zien en veranderen!).

Zij die trouwens op een eenvoudige wijze hun Javascript willen debuggen, maar (nog) niet beschikken over Visual Studio 2008, raad ik aan om de plug-in FireBug (ook voor Mozilla) te downloaden. Zet gewoon breakpoints in de javascript code, bekijk de waarden van variabelen, etc. Ook leuk is de optie om te zien wat de laadtijd per onderdeel van een pagina is.



Filed Under (Code algemeen) by Christiaan van Bergen on November-27-2007

Bij het modelleren/refactoren van een functionaliteit wil je zo flexibel mogelijk zijn, waarbij je je wilt houden aan onder andere het design principle Open-Closed Principle (OCP). Je weet dat bepaalde zaken zullen veranderen, zorg er dan ook voor dat het model dit ondersteunt.
Wat helaas hierin veelal ontbreekt, is de specifieke domeinkennis om de veranderlijkheden te onderkennen. Met als gevolg dat je (te) vaak werkt volgens het principe take the first bullet terwijl je dit met een beetje voorkennis had weten te voorkomen.
De meeste domeinkennis moet nog steeds bij de mensen uit de business komen, maar om met onze modelleertermen aan te komen werkt vaak niet verhelderend. Neem bijvoorbeeld de term points of extensibillity.

Ik pleit er voor om de term extensibillity in deze te veranderen in change. De term change spreekt over het algemeen meer tot de verbeelding van degenen met domeinkennis. Het dwingt de gedachten de richting van de toekomst te kiezen. Welke zaken gaan veranderen. Buiten uitbreidingen, wat is veranderlijk in het geheel.

Binnen het kader van Agile en XP staat verandering in een hoog vaandel. De uitdrukking embrace change -Kent Beck- dient zich dan ook meteen weer aan.

Als ontwikkelaar moet je rekening houden met elk punt in je ontwerp dat aan verandering onderhevig kan zijn. Het is met deze kennis dat we op de juiste plekken de juiste patterns kunnen toepassen om op veranderingen te anticiperen.

Ik hoor graag wat jullie hiervan denken…



Filed Under (Events) by Christiaan van Bergen on November-25-2007

Na de laatste presentatie van Maurice de Beijer bij stichting dotNed weten we al weer meer van de werking en het nut van de Microsoft Workflow Foundation. Aankomende 6 december stellen wij, de organisatie van dotNed, jullie in de gelegenheid om samen met ons te stoeien met Workflow Foundation. Dit zullen we doen bij het Microsoft Innovation Center in Barneveld. We hebben beperkt ruimte dus je zelf op tijd aanmelden is belangrijk.

Op de site van dotNed vind je de aanmeldingspagina direct onder de knop ‘Events’. Dennis Vroegop heeft de afgelopen bijeenkomst al wat geroepen over een gewijzigde aanmeldprocedure. Lees daarom ook zijn post hierover, dit maakt veel duidelijk.

Waar we het donderdag de zesde over gaan hebben? Zelf workflows bouwen, zelf activiteiten bedenken en combineren aan de hand van een case. Werkzaamheden die je verwacht binnen een workflow uit besteden aan een andere service. Vergeet immers niet: Maurice verkondigde dat een activiteit binnen een Workflow maar heel kort mag duren.