🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
EcoSpace
This page was created by Hans.karlsen on 2026-08-25. Last edited by Hans.karlsen on 2026-08-25.

EcoSpace is the central memory representation of your MDriven application.

In Turnkey, MDrivenServer etc EcoSpace is managed under the hood and you focus on the model, but when building on your own the EcoSpace is central.

The EcoSpace has along history and it uses a ComponentDocumentDesigner in VisualStudio.

The ComponentDocumentDesigner is in turn an old thing of VisualStudio that uses WindowsForms to display what components you put on the EcoSpace design surface.

Most tools that are available in the EcoSpace are also available in the Modlr designer - under the prototype play button you an evolve model etc.

You can also do all the things you need for runtime in code directly if the EcoSpace (hooking up persistence mapper and the like).

Never the less we want the EcoSpace-Editor to work.

If your runtime project with the ecospace targets .net48 it the ecospace designer will show in VS, but if it targets net10 alone it will not show.

The reason for this problem is the signaling the DesignerHost that VS creates to design net10 is unable to handle ComponentDocumentDesigner built with net48 as anything sitting in VS extension must be.

The best workaround is to let your EcoSpace containing project multitarget runtimes: <TargetFrameworks>net48;net10.0</TargetFrameworks>

The EcoSpace has an option to pick only some of all the packages you have in your model. This feature is really that important - its better to simply remove packages from the model you don't want - turnkey and mdriven server will use all packages in the model.

To pick packages by code in the EcoSpace one creates a member field like this in the EcoSpace:

protected NameSpace.CodeGenPackageName IncludeEcoPackage_NameSpace_CodeGenPackageName;

The runtime will search for IncludeEcoPackage and make sure they are loaded