🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
Dotnet core
This page was created by Hans.karlsen on 2019-02-26. Last edited by Wikiadmin on 2026-07-29.

You can build, migrate, and run MDriven applications on modern .NET by using .NET 8 targets, MDriven NuGet packages, and the Core editions of MDriven Turnkey and MDrivenServer.

Use .NET 8 for MDriven projects

For new development, target .NET 8 and use the MDriven NuGet packages rather than copying assemblies from an MDriven installation. MDriven focuses on long-term-supported .NET versions; the current recommended target described here is .NET 8.

A .NET project lets you extend an MDriven application with C# through CodeDress and integrate services that are not available in a standard MDriven application.

For example, when you create a console application that hosts MDriven logic, target .NET 8, install the required MDriven package from NuGet, add your expanded model file, and generate its C# code in Visual Studio. For the complete procedure, see HowTos:How To Create a .NET Core MDriven Project.

Create a .NET MDriven project

Use Visual Studio 2022 or later and the MDriven Visual Studio extension.

  1. Create a .NET console application targeting .NET 6 or later. Use .NET 8 for new projects.
  2. Install MDriven.MVC.Core from NuGet.
  3. In MDriven Designer, save the model as an expanded .ecomdl file: File → Save As, then select the ecomdl save type.
  4. Copy the .ecomdl file and its related files into the Visual Studio project.
  5. Ensure that an Assets_TK folder exists at the same folder level as the .ecomdl file. This folder is required when you use CodeDress.
  6. Open the .ecomdl file in Visual Studio and use code generation to generate C# files for all model classes.
  7. Build the solution and resolve build errors before deployment.
  8. Upload the project to MDrivenServer. Assemblies are uploaded through the Assets_TK folder.

See HowTos:How To Create a .NET Core MDriven Project for requirements and the full project workflow.

Get MDriven packages from NuGet

Use NuGet as the versioned delivery mechanism for compiled MDriven code. The NuGet package identifies the exact package version; contained assemblies use a product version such as 7.1.0.0.

This versioning approach helps Visual Studio recognize an assembly used by your project as equivalent to an assembly already loaded by the MDriven Designer tools. It also avoids relying on assemblies copied from an installation directory.

MDriven packages are published at the MDriven NuGet profile. A package for .NET Core and .NET Standard is available at MDrivenCorenetStandard.

Run the Core editions

The Core editions provide MDriven Turnkey and MDrivenServer as .NET applications. Use them for local development and for deployments that use the .NET Core editions on Windows or Linux.

Component Purpose Version information Download pattern
MDriven Turnkey Core Runs the MDriven Turnkey web application. MDrivenTurnkeyOnCoreVersion.xml https://mdriven.net/PublicDownloads/MDrivenTurnkeyCore_<TheVersion>.zip
MDrivenServer Core Runs MDrivenServer, which hosts the model and application services. MDrivenServerOnCoreVersion.xml https://mdriven.net/PublicDownloads/MDrivenServerCore_<version>.zip

To download a package:

  1. Open the component's version XML document.
  2. Copy the version stated in that document.
  3. Replace <TheVersion> or <version> in the corresponding download pattern with that version.
  4. Download and extract the ZIP file.

For example, resolve the Turnkey version from MDrivenTurnkeyOnCoreVersion.xml, then place that version after MDrivenTurnkeyCore_ and before .zip.

For Turnkey-specific setup details, including model data file placement, see Documentation:MDriven Turnkey Core. For local Server and Turnkey use, see LocalServers.

Move from .NET Framework 4.8

Move existing MDriven Visual Studio projects from .NET Framework 4.8 to .NET 8. The main migration work is often in the project file: modern .NET project files use a different format and include files in the project folder by default, rather than requiring explicit entries for every file.

  1. Back up application and user data before changing the application.
  2. Update the project target framework to .NET 8.
  3. Replace .NET Framework 4.8 MDriven package references or installation-directory assemblies with the appropriate .NET 8 MDriven NuGet packages.
  4. Update the project file and remove obsolete explicit file entries where the SDK-style project already includes those files.
  5. Build the project and resolve compilation errors.
  6. Prepare and test the Core hosting environment before restoring the application data.

MDriven does not identify general feature limitations between its .NET 8 and .NET Framework 4.8 versions. WCF is the exception: MDriven is not moving WCF forward and uses WebApi as the communication infrastructure instead.

The .NET 8 move also removes dependence on the Global Assembly Cache (GAC). The GAC can take precedence over assemblies on disk and can therefore make assembly loading difficult to diagnose. .NET 8 assemblies are not installed in the GAC.

For backup, hosting settings, restoration, and the complete migration procedure, see Documentation:Migrating From MDriven .NET Framework to .NET Core.

Certificates and local HTTPS

When you run Core applications locally over HTTPS, the machine needs a trusted developer certificate for the localhost port. Register or repair that certificate with the .NET SDK as described in Documentation:LocalhostDevCert.

For local HTTP testing, Core applications can be started with a no-HTTPS option where supported. Treat HTTP as a local-development choice; configure HTTPS appropriately for the environment that users access.

Run on Linux, WSL, macOS, or containers

The Core editions support the deployment paths used by local development and Linux environments. DLLs are platform-independent, but executables are not; a Linux distribution may require a runtime-specific publish step such as:

dotnet publish -r linux-x64 --self-contained false

For a Linux deployment, download the Linux Server and Turnkey distributions by resolving their versions from the same Core version XML documents:

The extracted applications are started through the .NET runtime. A typical local Linux sequence starts MDrivenServer before Turnkey:

dotnet AppCompleteGenericCore.dll -port=5010 -nohttps
dotnet StreaminAppCoreWebApp.dll -port=5011 -nohttps

The Turnkey application must be configured to connect to the running MDrivenServer. Upload a model with MDriven Designer before expecting Turnkey to run an application; a Server without a model cannot provide the application model to Turnkey.

For WSL-specific prerequisites, known limitations, and Linux setup, see HowTos:Get Started with WSL (Windows Subsystem for Linux). For native macOS installation, see Documentation:MDriven Server & MDriven Turnkey On Native MacOs. For container configuration, see Documentation:Advanced Docker Compose Configuration for MDriven.

See also