Part 1 - Prologue.
As i mention in previous part of this article, my first attempt to create DO.Net entity classes generator fails because of complexity of tool itself and because of few other things.
Then i go another way, way of DSL designer. Begin was so hard due to lack of detailed documentation and really simple tutorials how to start with DSL (yes there are some articles, samples, but they aren't simple to understand in short time, and have no good examples either). I have devoted more time to learn DSL from scratch. Finally i released public alpha version of DSL designer to model DataObjects.Net entities.
First version (and subversion's) will be focused to make bullet-proof designer and T4 template to model first DataObjects.Net entities.
In other words to bring minimal set of required features to DSL designer and T4 template and fix bugs founded in those versions.
Next major(minor?) version will bring new feature - Import Database Schema (extracts existing database schema into model diagram). There are no details when i start to develop such version, it depends on finalizing first version (as described above).
Project License and Download
Project itself is freeware, but it is not provided with source codes.
Product is hosted on codeplex.com - http://doemd.codeplex.com. You can download MSI installer of project on codeplex.com site, under tab Downloads.
Features supported so far in first version of DataObjects.Net Entity Model Designer
Designer support 4 kind of persistent type:
- Typed EntitySet
Inheritance (single or multiple) is supported:
- Interface, Entity and Structure can define multiple (0..*) inheritance from other Interfaces
- equivalent to C# where class or interface can inherit multiple interfaces
- Entity can defined base entity type
- equivalent to C# where class can inherit only from one other class
- Persistent types (all but Typed EntitySet) can define reference property with multiplicity:
- Zero to One (0..1)
- One (1)
- Many (0..*)
- Property Association defined as multiplicity Many can define custom EntitySet type (Typed EntitySet)
Typed EntitySet (custom EntitySet):
- Persistent type of kind Typed EntitySet will generate collection like class derived from Xtensive's EntitySet. This allows customization on such custom type.
Read more in Documentation on codeplex.