Archive for June, 2007

Filed Under (C# code, Script#) by Christiaan van Bergen on June-29-2007

Hoe smerig het plaatsen van business logic in je UI laag ook klinkt, er zijn momenten dat je er toch voor mag kiezen. Neem de volgende situatie:

Een website die een online hypotheekberekening aanbiedt geeft de gebruiker de mogelijkheid om met ’slider-controls’ voor eigen inkomen, inkomen van de partner en koopsom van de woning te bepalen hoe hoog de maximale hypotheek is. Door de sliders te bewegen verandert uiteraard de hoogte van het maximum hypotheekbedrag. Maar niet alleen het hypotheekbedrag wijzigt. Wanneer je je inkomen te laag zet met de slider, is het ook goed mogelijk dat de maximale koopsom wordt verlaagd.

De rekenregels die nodig zijn voor de bepaling van de samenhangende bedragen, moeten aan de cliëntzijde aanwezig zijn om een snelle UI respons te bewerkstelligen (dit wordt uiteraard makkelijker met Silverlight). Goed, dit is een prachtig moment om Script# uit de kast te halen.

Wanneer je met Script# je rekenregels hebt geschreven (middels een Script# ClassLibrary) , dan beschik je al meteen over een C# codebase. Wat is er nu mooier dan deze code te gebruiken aan de serverzijde, in je domein zelfs. Je weet meteen zeker dat je aan beide zijden dezelfde code gebruikt.
Eén van de voordelen van Script# is dat er na een compile zowel een .js-bestand als een .net assembly wordt gecreëerd.

De .net assembly ga je gebruiken in je andere projecten. Je maakt de reference, schrijft de code die de assembly consumeert en compileert… En dan ineens wordt je geconfronteerd met de melding:

The type ‘System.Object’ is defined in an assembly that is not referenced. You must add a reference to assembly sscorlib …

Je denkt dus dat je in het project waarin je de Script# .net assembly referenced een reference moet maken naar de Script# sscorlib. Op zich juist, alleen dit zal waarschijnlijk onder andere resulteren in een melding als:

The type ‘System.Reflection.AssemblyVersionAttribute’ exists in both ’sscorlib.dll’ and ‘mscorlib.dll’

En dat spreekt eigenlijk voor zich. Er zijn nu twee frameworks referenced in je project, met beide dezelfde namen voor uiteenlopende zaken (Script# is immers een port van het .net framework naar JavaScript).
Om dit snel op te lossen kan je een tweede project aanmaken voor je Script# project. maar dan met het C# ClassLibrary template. Zorg ervoor dat het gegenereerde .csprj bestand in dezelfde directory staat als het Script# project. Voeg alle .cs bestanden toe aan je C# project die ook in het Script# staan. De projecten die voorheen verwezen naar de Script# .net assembly laat je nu verwijzen naar de nieuwe C# assembly. Et voila! Twee projecten op twee verschillende frameworks, één codebase.
Voor de echte die-hard moet er natuurlijk een oplossing mogelijk zijn in het MS Build script (ofwel het .csprj bestand) om hetzelfde te bewerkstelligen. Ik hoor het graag van je….



Filed Under (Events) by Christiaan van Bergen on June-29-2007

Gisteravond heeft Robertjan Tuit zijn presentatie Silverlight gegeven op een prachtige locatie in Breda. Hij liet ons ontwikkelaars zien met wat een grote relatieve eenvoud wij prachtige designs, welke het beste door (interaction-) designers kunnen worden gemaakt, kunnen implementeren. Uiteraard was het niet allemaal hosanna gloria, Silverlight is nog steeds in alpha.
Robertjan zal op zijn blog zo snel mogelijk zijn presentatiemateriaal plaatsen. Houd deze dan ook in de gaten.
Veel resources die Robertjan heeft aangehaald zijn te vinden op deze pagina.



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

Als het goed is zijn wij ontwikkelaars allen bezig zo goed en zo net mogelijk ons werk te doen. Constant afwegen of we deze keer het pragmatische of het puristische pad bewandelen. We schrijven artikelen, geven lezingen, stellen ‘best practices’ op. Kortom: we maken ons druk om kwaliteit te leveren. Roedy Green opperde al in 1997 dat we druk bezig zijn onszelf overbodig te maken. Lees zijn essay ‘How To Write Unmaintainable Code’. Ik weet zeker dat het je minimaal zal laten glimlachen.



Filed Under (Events) by Christiaan van Bergen on June-20-2007

Zoals beloofd, de link naar het presentatiemateriaal van de afgelopen DevDays, inclusief ReMIX 2007 http://www.microsoft.com/netherlands/msdn/devdays/overzicht_presentaties.aspx



Filed Under (Events) by Christiaan van Bergen on June-14-2007

Helaas was het vanochtend iets drukker op de weg dan ik had verwacht (ook al viel het voor een donderdag nog wel mee heb ik gehoord), en arriveerde ik net te laat voor de eerste sessie. Gelukkig werd dit ruimschoots goedgemaakt door het feit dat ook Robertjan Tuit net te laat was. Samen hebben we een aardig gesprek gehad over de ontwikkelingen op het gebied van interaction design. Ik raad een ieder aan om zijn blog de komende tijd in de gaten te houden. Leuke dingen staan te gebeuren.
De sessies waren wederom van een prima kwaliteit. Ik hoorde dat de sessies online worden geplaatst. Zodra ik hier meer over weet dan laat ik dit weten.
Een groot verschil met de eerste dag: het aantal bezoekers. . . . aanzienlijk lager.



Filed Under (Events) by Christiaan van Bergen on June-13-2007

DevDays 2007, een geweldige eerste dag in de RAI in Amsterdam. Helemaal top geregeld met prima sessies en uitnodigende stands van de diverse partners. De korte break-out-sessie die Pieter Joost van de Sande en ik hebben gegeven over “Coding Dilemmas”  vonden wij prachtig om te doen, maar daarover snel meer.
Een (klus)collega van ons bleek aardig wat in zijn mars te hebben door uitgeroepen te worden tot Speakers Talent 2007. Hulde aan het talent Martijn Bronkhorst. Martijn ging niet alleen met een heel goed gevoel naar huis, hij mocht ook nog eens een meter aan MS-Press boeken uitzoeken! Gelukkig voor hem worden de boeken spoedig bij hem thuis bezorgd.
vlnr: Martijn Bronkhorst, Christiaan van Bergen, Robertjan Tuit, Pieter Joost van de SandeHet is geweldig om al die  mensen te zien die de zelfde interesses delen: beter worden in hun vak, wijzer worden door te luisteren, te vertellen wat zij geleerd hebben. Maar vooral, elkaar leren kennen.

Ten overvloede zeg ik dat ik uitzie naar dag twee (gelukkig duurt dat nog maar 7 uurtjes).



Filed Under (Overig) by Christiaan van Bergen on June-11-2007

Robertjan Tuit, een collega en goede vriend van me, heeft zijn eigen blog geopend. Hij is sinds kort te vinden op Rob’s World . Robertjan zal het de komende tijd ook nog druk krijgen met de voorbereidingen voor de presentatie over Silverlight die hij op 28 juli in Breda zal geven bij stichting dotNEd en gehost worden door Bergler ICT.
Wellicht dat jullie Robertjan ook hebben zien spreken op het afgelopen codecamp. Als je zijn presentatie toen hebt gezien is het toch zeker de moeite waard om te gaan kijken wat hij te vertellen heeft over Silverlight. Toch net weer iets anders dan WPF.