MDriven Architecture
No edit summary
No edit summary
Line 2: Line 2:


<p class="video-warn">
<p class="video-warn">
   To make your experience more comfortable, we set the main tags mentioned in the video to the right bar menu of this mini
   To make your experience more comfortable, we set the main tags mentioned in the video to the right bar menu of this mini-player. Choose the interesting subtitle on the list and immediately get to the exact theme time-place in the video. Now
  player. Choose the interesting subtitle on the list and immediately get to the exact theme timeplace in the video. Now
   you can pick any topic to be instructed on without watching the whole video.
   you can pick any topic to be instructed without watching the whole video.
</p>
</p>


Line 27: Line 26:


=== Model ===
=== Model ===
This is the model you produce. It is expressed in Unified Modeling Language (UML) and defines Class diagrams with inheritance, many to many associations with association classes, derived attributes using Object Constraint Language (OCL), fold pieces of the model into ViewModels with OCL, designed declarative user interfaces for a ViewModel (ViewModel View), define actions with ECO Action Language, catch information about processes, stakeholders, applications and terminology, define state machines, set up constraints and stuff like that.
This is the model you produce. It is expressed in Unified Modeling Language (UML) and 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 ECO Action Language, catches information about processes, stakeholders, applications, and terminology, defines state machines, set up constraints and so on.


=== Documtr ===
=== Documtr ===
In Documtr you can catch rich text for every artifact in your model. Write up things that will help you remember, or background information for a solution. You can produce a full model report at any time combining your model with your documentation.
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.


=== Prototypr ===
=== Prototypr ===
You can with Prototypr start your model. You can open up a ECO debugger to create objects and view AutoForms per class
With Prototypr, you can start your model. You can open up an ECO debugger to create objects and view AutoForms per class


=== WECPOF ===
=== WECPOF ===
Line 42: Line 41:


=== ECO Design time ===
=== ECO Design time ===
ECO Design time offers you design time support when binding data to your visual components. You can even get up an OCL editor that helps you to compile valid OCL expressions using the definitions from your current model.
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 to compile valid OCL expressions using the definitions from your current model.


'''And on the runtime side'''
'''And on the runtime side'''


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


=== Your compiled code ===
=== Your compiled code ===
The model is actually folded down in the generated code as attributes on the generated artifacts. You can of course have loads of manually written code here as well. And you might have chosen to implement some derivations of attributes or associations in code. It is nice to know that we use incomplete classes to separate anything hand written from the generated stuff.
The model is actually folded down in the generated code as attributes on the generated artifacts. You can of course have loads of manually written code here as well. And you might have chosen to implement some derivations of attributes or associations in code. It is nice to know that we use incomplete classes to separate anything handwritten from the generated stuff.


=== ECO Runtime ===
=== 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 and 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 checking ahead – just throw an exception and rollback), complete undo/redo stack, ability to linq or OCL to execute SQL queries to the database etc.
When your app is running and pulls in data from the database, have you ever struggled to keep track of what is loaded and 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 ===
=== ECO PersistenceMapper ===
OR-Mapping is what we call it when taking a model expressed in UML and store it in a relational database. There are a few rules and a few options, like how to map inheritance – own table, parent or child table, but all in all it is a pretty straight forward process that you can use your standard personal dba for – or just push a button and get it right every time. In design time ECO also offers an automatic difference calculus that we call 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 can run towards an existing database. You can even Reverse derive an existing database in designtime.
OR-Mapping is what we call 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, parent or child table, but all in all, it is a pretty straightforward process that you can use your standard personal dba for – or just push a button and get it right every time. In design time, ECO also offers an automatic difference calculus that we call 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 can run towards an existing database. You can even Reverse derive an existing database in design time.


=== ECO Persistence Server ===
=== 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 talk over a WCF channel that you fully can control with WCF configuration. Use this to get encryption or tunneling or as a way to get thru firewalls. The ECO Persistence Server also tracks what client updates what objects so that other clients can get notified about this with a low bandwith refresh call (Client synchronization).
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 talk over a WCF channel that you fully can 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 ===
=== Database scripts ===
See text under ECO PersistenceMapper
See text under ECO PersistenceMapper.


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


I guess there are people around that refuse to travel by car since it is all “new and modern and not really needed”, and I know that there are plenty of developers that will not model their thoughts at all since it is all “new and modern and not really needed”. MDriven for Visual Studio is not for those developers – MDriven for Visual Studio is for developers that like new and modern.
I guess there are people around that refuse to travel by car since it is “new and modern and not really needed”, and I know that there are plenty of developers that will not model their thoughts at all since it is “new and modern and not really needed”. MDriven for Visual Studio is not for those developers – MDriven for Visual Studio is for developers that like the new and modern.
[[Category:Architecture]]
[[Category:Architecture]]
[[Category:Beginner]]
[[Category:Beginner]]

Revision as of 11:06, 11 January 2023

To make your experience more comfortable, we set the main tags mentioned in the video to the right bar menu of this mini-player. Choose the interesting subtitle on the list and immediately get to the exact theme time-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

Model

This is the model you produce. It is expressed in Unified Modeling Language (UML) and 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 ECO Action Language, catches information about processes, stakeholders, applications, and terminology, defines state machines, set up constraints and so on.

Documtr

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.

Prototypr

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

WECPOF

With WECPOF you can take the model execution one step further – use the declarative ViewModels to render UI’s and your Action definitions to render menus – now you have a complete application to test on your users.

Modlr

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

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 to compile valid OCL expressions using the definitions from your current model.

And on the runtime side

ECO UI Help

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

Your compiled code

The model is actually folded down in the generated code as attributes on the generated artifacts. You can of course have loads of manually written code here as well. And you might have chosen to implement some derivations of attributes or associations in code. It is nice 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 and 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 what we call 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, parent or child table, but all in all, it is a pretty straightforward process that you can use your standard personal dba for – or just push a button and get it right every time. In design time, ECO also offers an automatic difference calculus that we call 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 can run towards 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 talk over a WCF channel that you fully can 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.

I guess there are people around that refuse to travel by car since it is “new and modern and not really needed”, and I know that there are plenty of developers that will not model their thoughts at all since it is “new and modern and not really needed”. MDriven for Visual Studio is not for those developers – MDriven for Visual Studio is for developers that like the new and modern.

This page was edited 120 days ago on 01/11/2024. What links here