2007

Je bekijkt op dit moment het archief van 2007.

IronPython

Het afgelopen weekend even zitten spelen met IronPython. Dat Python een leuke en krachtige taal is dat wist ik. Wat mij bijzonder positief verraste was het werk dat Microsoft rondom IronPython heeft verzet. Dat is kortweg erg oké te noemen.

Met IronPython krijg je de kracht en luxe van een dynamische taal en daar bovenop het .NET framework. Daarmee is IronPython een volwaardige taal op het .NET platform geworden. Om je een gevoel te geven van de integratie heb ik hieronder een klein voorbeeld toegevoegd. Het eerste wat ik heb gedaan is IronPython gedownload vanaf CodePlex. Je krijgt dan ook de interactieve omgeving van IronPython. Om direct met de deur in huis te vallen heb ik direct de “CLR” module geimporteerd. Via de CLR kunnen de classes uit het framework worden benaderd. In onderstaande code heb ik simpel met het framework zitten spelen :-)

Lees de rest hier: http://www.software-innovators.nl/2007/11/11/ironpython/

Vanuit Sogyo hebben we een nieuw platform neergezet: software-innovators.nl. Op dit platform kunnen alle Sogyo collega’s bloggen. Inmiddels zijn we een aantal weken onderweg en zijn er al interessante onderwerpen geplaatst. Net als binnen Sogyo zie je op de blog de brede interesse van de mensen terug komen. Dit maakt het wat mij betreft een super interessant platform. Onderwepen die uiteenlopen van JSF-configuratie tot complexiteit in software. Mmmm om van te smullen:-)  

Werken met een domeingedreven applicatie architectuur is mooi. Daarnaast zien we nu veel gesproken worden over DSL. Zeker in de Microsoft wereld is dit een hot topic. In dit artikel hebben we kort beschreven hoe DSL’s gebruikt kunnen worden in een domeingedreven ontwikkelomgeving. Het artikel:
DDD en DSL.

Overigens binnen Sogyo hebben een DSL ontwikkeld om NHibernate mappings en configuraties bestanden te genereren. Een goed voorbeeld van een horizontale DSL die vooral veel herhalend werk uit handen neemt. Mocht je hiermee aan de slag willen stuur dan ff een mailtje.

SDC presentatie

Afgelopen dinsdag heb ik op de SDC een korte presentatie over DDD en DSL gegeven. Tijdens deze sessie heb ik laten zien hoe je met een horizontale DSL ondersteuning kan leveren voor NHibernate persisitentie in een domein gedreven architectuur. We hebben met name discussie gevoerd en demo’s bekeken. De ondersteunende slides voor de sessie vind je hier: DDD en DSL een mooie combinatie!.

Vanuit Sogyo overwegen we de DSL voor NHibernate open source te gaan maken. Er moet dan nog eerst een aantal uitbreidingen doorgevoerd worden die we op onze wensen lijst hebben staan. Interessante van deze DSL is dat je geen zorgen meer hoeft te maken over het maken van de mapping en configuratie files. Dit levert op dat bijvoorbeeld front-end ontwikkelaars hun werk kunnen persisiteren zonder diepgaande kennis over NHibernate te hebben. Het verbergt dus een deel van de complexiteit. Dit is wat mij betreft ook de grootste toegevoegde waarde van DSL. Interessant genoeg om er verder mee aan de slag te gaan.

Mocht je er meer over willen lezen. Samen met Andre Boonzaaijer ben ik een artikel aan het schrijven voor Software Release Magazine hierover. Wil je meer tijd vrij maken dan is het boek van Steve Cook echt het aanraden waar: Domain-Specific Languages with Visual Studio Tools een aanrader.

5 juli was er een besloten bijeenkomst waarin Eric Evans een korte introductie gaf in zijn werk rondom Domain Driven Design. Een zeer interessante dag. We hebben discussies gevoerd over modeleerstijlen. Wat me het meeste opviel is dat Evans vrij vroeg in het design proces rekening houd met techniek. Op zichzelf voelt dat goed, omdat je dan ook pragmatisch te werk gaat. Wat minder goed aanvoelt is dat wat mij betreft het domein altijd los staat van techniek. Hij heeft ruime tijd stil gestaan bij het concept van Ubiquitous Language. Dit is ook een van de punten die mij het meeste trekt in zijn werk. Het idee is dat je opzoek gaat naar de taal van het business domein. Samen met domeinexpert probeer je de termen boven water te krijgen die voor de business waardevol zijn. Daarbij gaf hij zeer bruikbare tips hoe dit verder uit te voeren.
 
Eigenlijk was een dag te kort. Juist als het echt interessant wordt is de dag voorbij. Een van de belangrijkste punten die nog openstaan is de relatie van de ambiguous language met OO ontwerpregels. In onze praktijk streven we namelijk zoveel mogelijk na om de termen uit de business rechtstreeks in een domeinmodel te modeleren. Echter naast de termen gaat het ook om verantwoordelijkheden die in een domeinmodel belegd moeten worden. De verantwoordelijkheden moeten dusdanig ingevuld worden dat het domeinmodel volledig op zichzelf de scenario’s van de use cases kan vervullen. Dan gelden dus ook de OO ontwerpregels voor een domeinmodel.
 
In ieder geval een leuke dag. Zeker de moeite waard om met hem verder te gaan mailen.. Wie weet komt er weer een vervolg. Een interessante man om verder mee te praten.
 

Hierboven staat een vraag die je niet dagelijks zult krijgen. Toch is het in de software ontwikkeling wel één van de belangrijkste dingen om bij stil te staan. Waar draait het nu eigenlijk om in je software? Draait je software om de database? Draait het om de User Interface?

Lees de rest hier: http://www.software-innovators.nl/2007/10/15/waar-ligt-de-essentie-van-jou-software/

Dit artikel is verschenen in de New Stuff (het blad van de SDN) van April 2007. We (Andre Boonzaaijer en ik) zetten in het artikel een aantal implementatie strategieen uiteen. Goed om over na te denken om te zien welke oplossing het beste werkt in je eigen partijk. Download het artikel in PDF DDD in de praktijk.

Samen met mijn collega’s Thomas Zeeman en Ralf Wolter heb ik dit artikel geschreven. Met dit artikel hebben we met name een aantal geleerde lessen uit de praktijk willen delen. Tevens hebben we natuurlijk kort nog even aangegeven waarom DDD interessant is. :-) . Download hem hier als PDF Domain Driven Design: achtergronden en ervaringen uit de praktijk.

Met Lego Mindstorms wil ik duidelijk maken hoe Domain Driven Design in de praktijk toegepast kan worden. In dit voorbeeld heb ik een implementatie gemaakt om een Robot aan te sturen.

De implementatie is gemaakt in Microsoft .NET 2.0. Je kunt hem hier downloaden. Om de applicatie te laten werken heb je de NXT nodig. Deze kan via bluetooth met  je PC communiceren. In de sources van de applicatie vindt je, in de services map, een class MindStormService. Deze class bevat een constante die de COM-port weergeeft voor de bluetooth communicatie.

Deze implementatie maakt overigens gebruik van NXT#. Dit is de LegoMindstorms Interface die te vinden is op: NXTsharp.fokke.net.

 

17 september 2007: DDD en DSL: een mooie combinatie!. Op de SDC. Ja, ze beginnen beide met de D van Domain: Domain Driven Design en Domain Specific Languages. Toch zijn het heel verschillende dingen. DDD gaat met name over een manier van denken en ontwerpen. Dit resulteert in een applicatie architectuur. DSL’s kunnen we maken om domeinen mee te implementeren.

Er is duidelijk raakvlak tussen deze twee onderwerpen. We kunnen DSL’s maken om DDD eenvoudiger toepasbaar te maken in de praktijk. Dan is het natuurlijk wel de vraag wat we van een DSL mogen verwachten.

In deze sessie staan we stil bij het ontwikkelen van DSL voor een specifiek business domein, het centrale punt in de DDD benadering. Daarnaast gaan we kijken hoe DSL’s ingezet kunnen worden om het toepassen van DDD laagdrempelig te maken.

Stel je voor: een DSL die het mogelijk maakt om je Domein (objecten) te persisteren. In deze sessie wordt duidelijk of het kan en hoe het kan.

Deze sessie zal ik samen met Andre Boonzaaijer verzorgen.

« Eerdere artikelen