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.
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.
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?
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.
13 juni 2007: Functioneel prototyping met NakedObjects. NakedObjects is een applicatie ontwikkelframework voor zowel Java als .NET. In dit framework genereert alle infrastructuur voor POJO’s en POCO’s. Zo wordt de GUI automatische afgeleid en worden de objecten gepersisteert. Tijdens deze presentatie laten we zien hier je middels dit soort frameworks kunt prototypen.
1 juni 2007: DDD in de praktijk. Tijdens deze presentatie zal ik samen met Andre Boonzaaijer een domein uitbouwen en vervolgens ontsluiten naar een WPF GUI. Het domein wordt gepersisteert met NHibernate. De discussie met het publiek wordt gezocht om vast te stellen of deze methode ook in hun praktijk werkt.
12 mei 2007: DDD in de praktijk. Op de eerste Code Camp van de SDN, DotNED en VB.NET stichting zal ik samen met Andre Boonzaaijer een presentatie/discussie houden over DDD in praktijk. Tijdens deze sessie komen de praktische ontwerp vraagstukken aanbod voor DDD implementaties. Zie de site van Code Camp
3 mei 2007: Domain Driven Design. Sioux Embedded Systems geeft een reeks seminars. Op 3 mei zal deze reeks worden geopend. In de reeks spreken ook: Paolo Perrotta, Markus Völter en Ivar Jacobson.
23 maart 2007: Domain Driven Programming a Lego Mindstorms Robot op het Software Developer Event. Tijdens verschillende sessies georganiseerd in tracks die betrekking hebben op talen en platformen. Voor de C# track zal ik een presentatie verzorgen rondom Domain Driven Programming. De Lego Mindstroms Robot wordt gebruikt om dit te uit te leggen.
22 februari 2007: Domain Driven Design and Developement with LegoMindstorms voor DotNed.
In deze avond sessie wordt het basis concept achter Domain Driven Design and Development aan de hand van LegoMindstroms getoond. Dit vindt plaatst in het .NET platform. Gedurende de sessie zal gediscusseerd worden over de toepasbaarheid en de voor- en nadelen van deze aanpak.
4 december 2006: Architectuur van Web 2.0 applicaties. Tijdens deze bijeenkomst die opgezet is door Economische Zaken worden meerdere parallelsessies gehouden. In deze sessie wordt de relatie gelegd tussen Web 2.0 en (applicatie) architectuur. Zie blogEvents voor een korte impressie van de sessie.
27 november 2006: XML en Web Services Essentials bij CIBIT. Tijdens deze eendagstraining wordt de basis rondom XML en Web Services besproken. Toepassingen en voor- en nadelen van deze standarden worden behandeld. Zie de CIBIT website voor meer informatie.
24 oktober 2006: Trends in Systeemontwikkeling voor Be-value
Tijdens dit mini seminar komen onderwerpen aan bod als:
-
De rol van modeleren, Microsoft DSL en Domain Driven Design
-
Nieuwe talen (Ruby met on rails) en vernieuwing in talen (LINQ)
-
Ideeen achter een Software Ontwikkelstraat
16 oktorber en 3 november 2006: Workshop “Anedia: van COBOL naar een architectuur voor de toekomst.” Deze workshop is verspreid over twee dagdelen verzorgd derde en vierde jaars Informatica studenten van de Hogeschool Leiden.
11 oktober 2006: Presentatie op de J-Fall. De presentatie gaat over domain driven programming in praktijk. Samen met mijn collega Ferry van den Berg zal ik een presentatie geven over domain driven programming. Hierbij zal een voorbeeld gegeven worden met LegoMindstroms. Zie hier onder voor meer informatie over deze presentatie. Het gehele programma van de J-Fall vindt je op de site van de NLJUG.
19 september 2006: SOA Essentials bij CIBIT. Deze cursus geeft een introductie op service oriented architectures. Vragen waarom een SOA in te richten? Wat services zijn? Welke rol de ESB speelt? staan deze dag centraal. Zie de CIBIT website voor meer informatie.
3 juli 2006: Youngwood relatie en medewerker event Tijdens dit event heeft Edwin een presentatie verzorgd over trends in software ontwikkeling.
23 mei 2006: Mobile Desgin seminar bij Mediaplaza. Als keynote is de presentatie “Mobile design: technisch makkelijk?” verzorgd. Deze kun je bij Mediaplaza bekijken.
18 mei en 23 mei 2006: Workshop “Anedia: van COBOL naar een architectuur voor de toekomst.” Deze workshop is verspreid over twee dagdelen verzorgd derde en vierde jaars Informatica studenten van de Hogeschool Utrecht
15 maart 2006: Saxion Hogeschool “SOA: IT Architectuur met toekomst?” Voor derde en vierde jaars Informatica studenten is een presentatie verzorgd over SOA en de toepassingsmogelijkheden.