Ik ben al een tijdje bezig met een object-relational mapper en het begint al heel aardig op te schieten (inheritance, relaties, unit of work zit er nu in en lijkt het heel aardig te doen). Tegelijkertijd met de mapper heb ik een programma geschreven om de code voor de mapper automatisch te genereren. Ik liep eerst alles namelijk zelf in te tikken, maar dat is erg arbeidsintensief en foutgevoelig. Deze 'mappergenerator' werkt nu ook prima (hoewel de code van de generator zelf ERRUG lelijk is
).
De mappergenerator analyseert nu een assembly op domein objecten en genereert dan de collections, fieldindexen, mapper en relations. Binnen een domein object kijk ik nu naar alle private velden en die worden allemaal gemapt. Dat werkt wel, maar is natuurlijk niet handig als je private velden hebt die niet gemapt moeten worden.
Ik zat er aan te denken om op basis van attributes in de domein code de velden te selecteren die gemapt moeten worden. Dus bijvoorbeeld een attribute [Persistable] voor bij properties. Nu is mijn vraag aan jullie wat jullie daarvan vinden? Wordt het vaker zo gedaan?
Voordelen:
- domein laag programmeur kan zeer makkelijk aangeven wat te mappen (maar hij kan het ook vergeten)
- mapper blijft in sync met domein laag
Nadelen:
- domein code wordt vervuild met persistence zaken
Andere mogelijkheden:
- Met behulp van een GUI de velden en relaties selecteren, daar heb ik echter de kennis en de tijd niet voor
Misschien jullie nog andere ideeen?
De mappergenerator analyseert nu een assembly op domein objecten en genereert dan de collections, fieldindexen, mapper en relations. Binnen een domein object kijk ik nu naar alle private velden en die worden allemaal gemapt. Dat werkt wel, maar is natuurlijk niet handig als je private velden hebt die niet gemapt moeten worden.
Ik zat er aan te denken om op basis van attributes in de domein code de velden te selecteren die gemapt moeten worden. Dus bijvoorbeeld een attribute [Persistable] voor bij properties. Nu is mijn vraag aan jullie wat jullie daarvan vinden? Wordt het vaker zo gedaan?
Voordelen:
- domein laag programmeur kan zeer makkelijk aangeven wat te mappen (maar hij kan het ook vergeten)
- mapper blijft in sync met domein laag
Nadelen:
- domein code wordt vervuild met persistence zaken
Andere mogelijkheden:
- Met behulp van een GUI de velden en relaties selecteren, daar heb ik echter de kennis en de tijd niet voor
Misschien jullie nog andere ideeen?
Panacea.NL als je geinteresserd bent in IT en Geneeskunde!