MDriven Architecture

To make your experience smooth, we set the main tags mentioned in the video to the right bar menu of this mini-player. Choose an interesting subtitle on the list and immediately get to the exact theme navigation item place in the video. Now you can pick any topic to be instructed on without watching the whole video.

MDriven Architecture EcoSpace Sync Server MDriven Server Turnkey Server

MDriven for Visual Studio Explained

MD in VS.png

Picking the image apart piece by piece


This is the model you produce. It is expressed in Unified Modeling Language (UML). It defines Class diagrams with inheritance, many-to-many associations with association classes, derived attributes using Object Constraint Language (OCL), folds pieces of the model into ViewModels with OCL, designs declarative user interfaces for a ViewModel (ViewModel View), defines actions with Extended Action Language, catches information about processes, stakeholders, applications, and terminology, defines state machines, set up constraints and so on.


In Documtr, you can grasp rich text for every artifact in your model and write up things that will help you remember or background information for a solution. You can produce a full model report at any time by combining your model with your documentation.


With Prototyper, you can start your model. You can open an ECO debugger to create objects and view AutoForms per class.


You can take the model execution one step further – use the declarative ViewModels to render UIs and your Action definitions to render menus using WECPOF. Now, you have a complete application to test on your users.


Modlr is the tool that helps you model your thoughts. Modlr is built with ECO for Visual Studio; there is a complete Model of the classes in Modlr in our code repository – and for those that appreciate meta.

ECO Design Time

ECO Design time offers you design time support when binding data to your visual components. You can even set up an OCL Editor that helps you compile valid OCL expressions using the definitions from your current model.

And on the runtime side


In .net, almost all the UI strategies have their own way of binding data and UI components. In ECO, we handle them all with a few specialized components.

Your Compiled Code

The model is folded down in the generated code as attributes on the generated artifacts. You can have loads of manually written code here as well, and you might choose to implement some derivations of attributes or associations in code. It is helpful to know that we use incomplete classes to separate anything handwritten from the generated stuff.

ECO Runtime

When your app is running and pulls in data from the database, have you ever struggled to keep track of what is loaded or not, what association needs to be fetched, and if the other end of the association needs to be updated when you tie two objects together? This is what the ECO runtime does for you. It also offers other services like in-memory transactions (boy, can that clean up your code! – no need to check ahead – just throw an exception and rollback), complete undo/redo stack, ability to LINQ or OCL to execute SQL queries to the database, etc.

ECO PersistenceMapper

OR-Mapping is the process of taking a model expressed in UML and storing it in a relational database. There are a few rules and options, like how to map inheritance – own table, a parent or child table – but overall, it is a pretty straightforward process that you can use your standard personal dba for or push a button and get it right every time. In design time, ECO also offers an automatic difference calculus called DB-Script evolution. This finds the changes you need to apply to your existing database after you have changed the model – just click and be done. OR-Mapping can also be heavily customized so that your app runs toward an existing database. You can even Reverse derive an existing database in design time.

ECO Persistence Server

The ECO Persistence Server is a Tier Building block that shields your (possibly fat) clients from knowing about the database. Use this and your clients may talk over a WCF channel you can fully control with WCF configuration. Use this to get encryption or tunneling or as a way to get through firewalls. The ECO Persistence Server also tracks what client updates what objects so that other clients can get notified about this with a low bandwidth refresh call (Client synchronization).

Database Scripts

See text under ECO PersistenceMapper.

Note that on the Execute side, most things are optional.

Some people refuse to travel by car since it is “new, modern, and unnecessary” and there are plenty of developers that will not model their thoughts at all since it is “new, modern, and unnecessary”. MDriven for Visual Studio is not for those developers – MDriven for Visual Studio is for developers that welcome the new and modern.

This page was edited 34 days ago on 06/17/2024. What links here