Modelgedreven ontwikkelstraat in .NET (4): Data

 
19 november 2008

Tot nu toe heb ik in deze serie postings laten zien hoe je verschillende aspecten van je model kunt omzetten in code die vaak aangeduid wordt met ‘domain classes’. In gangbare ontwikkelstructuren vindt je deze classes terug in een eigen component of laag die aangeduid wordt met ‘domain layer’ of iets dergelijks. De verschillende thema’s die hier aan bod komen zijn classes met attributen, associaties en methoden.

Veel applicaties hebben echter ook een component dat opslag van gegevens verzorgt. Dit component wordt meestal gevormd door een relationele database in combinatie met een translatielaag van de eerder besproken businessobjecten naar tabellen. Ik ga hier niet veel dieper in op het onderwerp van O/R mapping aangezien daar wel genoeg over geschreven is inmiddels en ik er nogal een sik van krijg.

Allereerst is het noodzakelijk om een database schema te genereren op basis van het model. Ik kies ervoor om eenvoudigweg voor elke class een tabel te genereren, voor elk attribuut een veld – op basis van een klein stukje metadata dat ik stiekem heb toegevoegd in het model zelf:

De property Data Type kan ik voor elk attribuut zelf opgeven. Toegegeven, je kunt kiezen om dit automatisch te laten verlopen maar ik kies hier voor flexibiliteit in plaats van automatiek.

Ook belangrijk zijn de associaties. Zoals ik in de eerste post van deze serie aangaf genereer ik al voor elk object een Id property op basis van een Guid field. Dit uitgangspunt komt in dit geval goed uit; we kunnen in dit geval handig de foreign keys genereren. Ik kies er overigens in onderstaande templates alleen een ‘plat’ databaseschema te genereren dus zonder keys, foreign keys of indexes. Dat lijkt me meer iets voor DBA’ers.

Rest de schema generatie template download.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Architectuur, Development, .Net

Tags: , ,