MDriven Architecture
No edit summary
m ((username removed) (log details removed))
 
(7 intermediate revisions by 3 users not shown)
Line 19: Line 19:
</html>
</html>


= MDriven for Visual Studio explained =
= MDriven for Visual Studio Explained =
[[File:MD in VS.png|border|frameless|457x457px]]
[[File:MD in VS.png|border|frameless|457x457px]]


Line 25: Line 25:


=== 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), 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.
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.


=== Documtr ===
=== 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.
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 ===
=== Prototyper ===
With Prototypr, you can start your model. You can open up an ECO debugger to create objects and view AutoForms per class
With Prototyper, you can start your model. You can open an ECO debugger to create objects and view AutoForms per class.


=== WECPOF ===
=== 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.
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 ===
=== 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.
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 ===
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.
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'''
'''And on the runtime side'''


=== ECO UI Help ===
=== 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.
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 ===
=== 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.
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 ===
=== 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.
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 ===
=== 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.
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 ===
=== 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).
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 ===
=== 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 “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.
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.  
[[Category:Architecture]]
[[Category:Architecture]]
[[Category:Beginner]]
[[Category:Beginner]]

Latest revision as of 05:22, 11 January 2024

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

Model

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.

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.

Prototyper

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

WECPOF

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

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

ECO UI Help

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 121 days ago on 01/11/2024. What links here