This article was moved to MDriven Wiki – What is it?
A software system – there is an idea – a way to formalize the idea – the model, and some resulting artifacts:
So what does CapableObjects do for you here:
The EA-Information tools of Modlr helps you describe the business – this is a description of the idea that runs the business. Read more
Modlr helps you to catch the model in UML. Read more
Having the model, Modlr derives the full domain layer for you to use – now you can fill in your specific c#, VB.NET or Delphi.NET code you could not or would not express in the model.
The domain layer is not just about the static types and their rules – you also have dynamic rules defined by state machines – and these can reduce both the code and the documentation you need to maintain.
Persistence is key and ECO derives it from the model:
Since the database scripts are derived from the model – we also offer the evolution scripts that are needed when your model changes – it will change – it always evolve over time.
Having the scripts derived enables you to switch database provider. ECO has an open api that makes it straight forward to implement your own persistence mapper. We offer SQLServer, Oracle, MySQL, SQLLite, Mimer, Nexus, Dbx, Sybase and Blackfish in the standard package.
You can also save to file, to disk or protected storage.
When it comes to Presentation you can databind the objects from the domain layer to all available UI techniques ASP.NET, WindowsForms, WPF and Silverlight (and this includes the windows phone). We also offer the definition of ViewModels already in the model. A viewmodel can be used to derive UI without coding – great for prototyping and non complex UI with standard controls.
Different Tiering , the same stuff
WindowsForms, WPF Browser applications, WPF forms applications and Silverlight is typically tiered this way
And ASP.NET and ASP MVC like this:
Do not Repeat Yourself. When using a Model Driven Framework like ECO there are a lot of things you can do generically – things that were not possible before.
We have discovered a few things – you will discover more. The ones we offer in the standard package – ready to use – are:
- DomainLayer Undo Redo Stack – super easy to offer Undo and Redo for complex business applications.
- Multi-client synchronization – when having cached domain layers for each client you can either refresh everything (slow) or ask the server for what stuff have changed since last call and get these changes (efficient).
- Domain layer serialization – when having complex ASP applications you may want to hold session state at the server to avoid saving before the user is done.
- Cascading Delete – set up the rules for how your objects are destroyed in the model.
- Model expressed derivations – express derived associations and attributes to reduce the need to repeating code.
Since so much of a model driven system is derived, you are free to change your mind whenever you need to. At the very least you can try to work this way – if you do not like it you have not really lost anything – the idea and the model is were you invest the most of your time and the knowledge collected there is usable even if you choose to implement by traditional means.