MDriven Product Line
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

MDriven Framework

MDriven Framework is a .net framework that allows you to model your requirements in UML and get an exact match of this as a domain layer in C# code.

The model and MDriven Framework also help you to bind your domain layer data to UI technologies such as WPF, WindowsForms, ASP.NET, ASP MVC, Silverlight, Windows Store apps, Windows Universal, Windows Phone – or in short, pretty much anything you can think of.

The model is also used to automatically maintain and evolve a database schema for a primarily SQLServer or MySQL – but is not limited to this. A simple PeristenceMapper API can be fulfilled to make MDriven maintain schema for Oracle, SQLLite, Interbase, and several other brands for relational databases. The code written with MDriven Framework is DB-agnostic – the same code will work on different persistence backends – making it ideal to withstand the test of time and easy to mock persistence backend for testing purposes.

MDriven Framework follows you into runtime and handles things such as:

  • Efficient lazy fetch
  • Tracking of change state
  • Undoing and redoing domain objects
  • Linq to SQL translation
  • OCL interpretation OCL to SQL translation
  • Versioning of object contents
  • Report production with Open Documents
  • Tracking state machines where your business rules may reside
  • In memory transactions
  • Association consistency (setting one end will automatically reflect on the other end)
  • Sending diff-grams for changes with WFC
  • Enable you to separate your client logic from persistence logic into different tiers with WCF communication in between
  • Object-level client-to-client efficient synchronization
  • Asynchronous data fetch for always responsive UI
  • Automatically maintained Derivations of Associations and attributes
  • Automatic tracking of subscriptions in the subscription publisher pattern that is available on all domain objects from your model
  • Ability to save to XML
  • Ability to serialize a whole object set for de-serialization on a later date – keeping a full change state
  • Full support for model class-level inheritance
  • Full support for model class-level association classes
  • Ability to design and use declarative ViewModels defined in the model
  • Ability to design and use declarative actions (buttons and menus) defined in the model
  • Ability to design and use Constraints in the model to enforce business rules
  • Optimistic locking for persistence

You can use MDriven Framework with Visual Studio in design time and Mono – including Unity, Portable including Xamarin, Windows Store, Silverlight5, and .net 4.0+ frameworks in runtime.

The MDriven Framework has existed since 2007 and is a replacement for the similar product ECO For VisualStudio and the discontinued product Bold for Delphi (1995-2003, acquired by Borland).

MDriven Designer

Consider the design-time functions of MDriven Framework – remove the ability to generate code in Visual Studio and remove Visual Studio – the result is the MDriven Designer. The MDriven Designer is a standalone .net application that can be used to model all things used by MDriven Framework (Classes, State machines, ViewModels, and Actions).

All the logic in MDriven Designer is incorporated in the Visual Studio plugin that makes up the MDriven Framework design-time support.

MDriven Designer can be downloaded here.

MDriven Server

Taking all the abilities of the MDriven Framework’s remote persistence mechanism that allows for automatic DB schema maintenance and evolution – accessed via WCF – we get the MDriven Server.

MDriven Server is an IIS-hosted web application. The UI of the MDriven Server is intended for developers/administrators of an MDriven System.

The MDriven Server can receive models from MDriven Designer or MDriven Framework design time. It will maintain an SQLCompact, SQLServer, or MySQL database and implement all the necessary logic for client-to-client synchronization. The MDriven Server also implements an ability to execute periodic declarative jobs server side. These jobs are fully defined on the model level in MDriven Designer or Framework.

MDriven Turnkey

The MDriven Turnkey product is neither a finished system (vertical) nor a framework (horizontal). The MDriven Turnkey product is semi-vertical.

MDriven Turnkey is an IIS Model Driven application that uses all the possibilities in MDriven Framework, Designer, and Server. It addresses the security concerns normally brought on by traditional client-server development by filtering data (on attribute or byte level) server-side to only expose information as described in declarative ViewModels.

It introduces a flexible use of AngularJS for rich Javascript applications in the browser and allows for WPF partly-fat clients, Xamarin app development, and Cordova app development.

It solves common application needs such as authentication (ASP.NET Identity and OAuth with federated login with major providers – also plain OpenID for AzureAD and others).

The WEB-UI’s provided by MDriven Turnkey uses standard Bootstrap rendering, producing clean and readable html5. You choose on a screen-by-screen basis whether to use MVC5/Razor or AngularJS for your displays or override the UI generated from your model description or not.

You can describe the style in the modeled ViewModels to use when rendering – either static or data-dependent styles can be used.

You can easily publish REST services in your Turnkey app and design their information content just as you design UI’s or reports with declarative view models.

You can easily call external REST or SOAP and translate hierarchical response data to objects if needed.

Product Choice Help

Anyone can use the MDriven Designer to model requirements and prototype detailed information systems. You will not outgrow this product. MDriven Designer helps you think about large, complex, and interlocked requirements for any domain and is free to use for models up to 50 information classes.

With MDriven Turnkey, you can be in the cloud with your information system later the same day. Your system will follow your model without deviation. Identified issues are corrected in the model. The model is uploaded to the supporting MDriven Server – and the system is re-rendered and refreshed by a simple F5 in the browser.

MDriven Framework offers more degrees of freedom. As such, it is a more difficult product to master. We recommend you start with MDriven Designer and then move on to MDriven Turnkey.

  • MDriven Framework is the best choice if you have scenarios where Turnkey is not right – such as building a standalone app in a device like a Hololens, Android phone, or IOs.
  • MDriven Framework is a better option if you want to write C# code toward your domain model – the C# can replace OCL implementations of methods and derivations. Such C# domain layer code may integrate with anything you can reach from C#. A complete system produced with MDriven Framework can run standalone – but the domain layer (including the C# code you have written) can be submitted to MDriven Turnkey to reach the product advantages available there (security model, AngularJS, etc).

Use the MDriven Server for your MDriven Framework projects if you want a cloud-based server application that talks WCF (over HTTPS or others) and manages your model and database with zero hassle. The MDriven Server is included as a required component in MDriven Turnkey but is optional in MDriven Framework. MDriven Server is included in the active license for Turnkey or Framework.

Synonyms and Name Changes

During the life cycle of our software toolset, our strategy and scope have evolved. To better reflect our current vision, the product line now has consistent naming and branding: MDriven Framework, MDriven Designer, MDriven Server, and MDriven Turnkey. This is a recent development though you may find old names in articles. To mitigate confusion, we supply this list of old names:

MDriven Designer: AppComplete, Gaffr

MDriven Server: BoringPredictable Server, BorPred Server

MDriven Framework: ECO

Other names you may read:

WECPOF: This is what we call the prototyping motor. The motor is part of MDriven Designer and can be used to quickly execute the model including Viewmodel UIs and actions. The WECPOF engine got its name from mixing ECO with WPF. Since then, ECO has changed its name to MDriven Framework – and the WECPOF motor is used for WPF, MVC, and AngularJS. The name is still used to denote the prototyping ability and the runtime assembly MDriven Framework users can use to get the Prototyping engine inside their applications (WECPOFLogic.dll).

This page was edited 3 days ago on 03/26/2024. What links here