Skip to main content
Matrix42 Self-Service Help Center

Matrix42 ESM Platform Migration Guide

Audience: Technical Experts (Customers & Partners)
Context: Cloud Your Way

Overview

As part of the Matrix42 strategy “Cloud Your Way” the Enterprise Service Management Platform (ESMP) is undergoing a fundamental modernization to support deployment within Linux containers.

This document outlines:

  • The target architecture and transformation goals
  • Key delivery milestones
  • Planned breaking changes
  • Guidance for adapting existing extensions to ensure compatibility with the modernized platform

Target Architecture

Goals

  • Modern Technology Adoption: Introduce current and widely adopted technologies to enhance development speed, talent acquisition, security, and compliance.
  • Optimized Deployment: Transition to a containerized, Linux-based architecture for efficient operations, cost reduction, and zero-downtime maintenance.
  • Improved Reliability: Isolate background processes to increase system stability and maintainability.
  • Scalability & Security: Enable future scalability and enhance security through sandboxed execution environments.
  • Flexible Cloud Support: Ensure deployment compatibility across public and private clouds using immutable containerized applications

 

 

Target Architecture

clipboard_ecc3493051e2e622f471e863e6d96c033.png

Key Changes:

  • Introduction of the Functional Worker process, replacing legacy components: HostCommon, HostScheduler, and Worker.
  • Applications run on .NET Core:
    • Compiled for Windows (on-premises)
    • Compiled for Linux (containerized deployments)
  • All backend custom logic now runs in sandboxes (on Functional Worker).
  • The Application Server becomes immutable—unchanged during extension installations.
  •  All legacy components incompatible with .NET Standard are removed or replaced.

Deployments

Classical On-Premise (Windows)

  • Windows-based installations remain supported.

  • All Matrix42 services compiled with .NET Core for Windows.

  • Functional Worker runs as a Windows Service.

Private Cloud

  • Each release includes Linux Docker Images for Kubernetes-based deployment (BYOK model).
  • Delivered images:
    • ESM Services
    • ESM Setup
    • ESM Functional Worker
  • Includes deployment scripts and automation recipes.

Public Cloud

Operated in Azure Kubernetes Services (AKS) using Linux containers.

 

Implementation Plan

Transition Strategy

  • Use .NET Standard as an interim compatibility bridge for existing extensions.
  • Target eventual migration to .NET 9+ once ecosystem readiness is ensured.

Legacy Component Removal

The original product uses a bunch of components and technologies which are not compatible with .NET Core, therefore they planned to be removed or replaced

Component

Change Version

Replacement

Microsoft WCF

12.1.2

Replaced with Web API

Access Database Engine

12.1.2

 

AutoMapper.dll

12.1.3

Updated to version 10.1.1.0

.NET Remoting

Q2/2026

Web API, Queue

.NET Framework

Q2/2026

.NET Core

 

Migration Roadmap by Release

Release 12.1.3

Changes

  • Core assemblies (Contracts, Data Layer, Behaviors, Engines) migrated to .NET Standard 2.0.
  • New SQL API introduced for non-DataLayer operations.
  • Replaced System.Data.SqlClient with Microsoft.Data.SqlClient for cross-platform compatibility.
  • Enhanced hosting support for resolving multiplatform dependencies.
  • New Middleware Behaviors model introduced. See more details on Middleware Behaviours
  • Scripted Web Operations and Scripted Diagnostic Rules running on Functional Worker (not in Web Server anymore)

Required Actions

  • Use the new SQL API for database transactions.
  • Rebuild and republish extensions if breaking changes are detected.
  • Set MinimalRequiredVersion=12.1.3 in updated packages.
  • Optionally target .NET Standard.
  • Begin adopting the New Middleware Behaviors model. See more details on Middleware Behaviours
  • Replace Business Engines call to Web Services

 

Business Engines

In earlier versions, the first generation of Service Layer–hosted services were run within the HostCommon process and declared in the Application as Engines. These services could be invoked from any other application process using code like:

using update4u.SPS.Engines;
EngineProxy.GetWorker(typeof(IInventoryDemandsWorker)).RemoveInvalidInventoryDemands();

This approach has been deprecated and removed as of version Q4/2025.

If your Extension relies on this pattern, you should now either use the corresponding Web API, or access the relevant business components directly.

 

Release Q4/2025

clipboard_e0ba6b2be265572ed72522d559639c439.png

Changes

  • Legacy HostCommon and HostScheduler removed.
  • Background Engines moved to Functional Worker
  • Nearly all core assemblies now use .NET Standard.
  • Background tasks (excluding Workflow Engine) executed in .NET Core Functional Worker (Linux).
  • Extensions run in sandboxed environments.
  • Introduction of an agnostic API controller for Web API in sandboxed packages.
  • Introduction of an agnostic API for Engines.
  • PowerShell 7 Execution Engine
  • All Powershell script executed only in sandboxed container (Functional Worker), not on Web Server container

Required Actions

  • Migrate custom Middleware Behaviors to the new model.
  • Ensure full sandbox compatibility for all extensions.
  • Compile and publish extensions targeting .NET Standard.
  • Begin adopting the agnostic API controller for custom logic.
  • Begin migrating Powershell scripts from version 2 to version 7
  • Make sure the Powershell scripts not rely on Application Server (Web Server Container) infrastructure

Release Q2/2026

clipboard_eb37124d068bcaf4212d70996c4d016f0.png

Changes

  • Web Server now runs on .NET Core.
  • Custom code executes only within Functional Worker sandboxes.
  • Agnostic Workflow Activities API introduced.

Required Actions

  • Implement workflow activities using the new agnostic API.

Release Q2/2026

Changes

  • Workflow Engine fully migrated to .NET Core Functional Worker.
  • Only PowerShell 7 supported executed on .NET Core Functional Worker.
  • .NET Framework Functional Worker is discontinued
  • All assemblies compiled and delivered on .NET Core

 

Migration Instructions

.NET Framework Assemblies Migration

All assemblies delivered with Extensions must be compiled on .NET Standard 2.0:

<TargetFramework>netstandard2.0</TargetFramework> 

It is recommended to start migration with the internal release November 2025, which will also be shipped to partners. This release already contains all standard assemblies compiled for .NET Standard.

Packaging

During the transition until release 26.2, the platform will operate in a hybrid mode, supporting both legacy and new approaches.
To avoid incompatibility issues when installing packages across different product versions, we recommend delivering two separate Extension versions during this period:

  • Legacy Extension
    "MaximumRequiredProductVersion": 24.5
    (for older product versions, still using .NET Framework assemblies)

  • New Extension
    "MinimalRequiredProductVersion": 26.1
    (containing .NET Standard assemblies for the new approach)

 

Web Services

Custom Web Services registered in the Web Service Repository with implementations delivered in non-standard assemblies (i.e., not included in the distributive) will no longer run on the  Application Web Server (w3wp/m42svc)  after the migration.
Instead, execution moves to the Functional Worker process.

The system automatically creates  virtual endpoint on the Web Server during initialization, ensuring that services remain accessible at the same endpoint as before.

Timelines

  • November 2025 – New Web Service model available in internal release for partners

  • 26.1 – New Web Service model publicly available

  • 26.2 – Custom Web Services only run on Functional Worker. Non-migrated services will stop working
     

To Do

  1. Update custom Web Services to inherit from Matrix42.QueueProxy.WebApi.ApiController instead of System.Web.Http.ApiController.

Behaviors

Execution of custom CRUD operation behaviors is moved from the Web Application process to the Functional Worker in the new architecture.

Timelines

  • 12.1.3 – New Middleware Behaviors model introduced

  • 26.2 – Non-migrated custom Behaviors will no longer work

To Do

  1. Rework custom Behaviors to inherit from Matrix42.Behaviors.Contracts.CustomGenericBehavior. See mode details in Data Object CRUD operations Middleware

  2. Update the project to compile on .NET Standard 2.0.

 

PowerShell

PowerShell is widely used for customization in the product. Historically, PowerShell 2.0 has been the execution engine. However,  PowerShell 2.0 is outdated and it cannot be executed on Linux. Therefore, all PowerShell scripts are be migrated to PowerShell 7, with execution delegated entirely to the Functional Worker.

From release 26.1, PowerShell scripts used in Scripted Web Service Operations, Scripted Diagnostic Rules, and Workflow scripts with directive (#ps-execution-engine=7)  are running on the .NET Core Functional Worker by Powershell 7 engine.
Scripts triggered by Workflow Activity “Invoke PowerShell Activity”  without  directive (#ps-execution-engine=7) run on the .NET Framework Functional Worker.

Timelines

  • 26.1 – PowerShell 7 Engine introduced on .NET Core Functional Worker.
    Option to explcitly execute Invoke Powershell Activity scrtipt on Powerhsell 7 engine with diective #ps-execution-engine=7

  • 26.2 – Workflow Engine runs on .NET Core. PowerShell scripts run exclusively on PowerShell 7.

To Do

  1. Migrate scripts to PowerShell 7.

  2. Use the following directive in Workflow scripts to enforce PowerShell 7 execution:

    #ps-execution-engine=7 
  3. Ensure scripts do not rely on relative paths, as execution folder changes in the new architecture.

Workflow Engine

Timelines

  • 26.1 – Workflow Engine runs in .NET Framework Functional Worker (based on Workflow Foundation)

  • 26.2 – Workflow Engine runs in .NET Core Functional Worker (based on CoreWF)

 

 

 

  • Was this article helpful?