The MORYX Framework is a .NET based framework to quickly build three-tier applications. It aims to reduce boilerplate code as much as possible and provides modularity, flexibility and easy configuration with very little effort. It originates from the original MORYX project targeted to develop machines but has expanded to a much bigger field of use. The MORYX AbstractionLayer is the environment for the digital twins of resources and products. It defines the domain independent meta model and enables applications to model their physical system and product portfolio as typed objects. It thereby makes other modules hardware independent by encapsulating details of the underlying structure and devices.
To participate in the development of the MORYX Framework,
- checkout this repository
- use an IDE like Visual Studio or JetBrains Rider to open the solution file
MORYX-Framework.sln - build the solution
To use MORYX to build your own application, we recommend to
- start with the MORYX Application Developer Training
- and to use the MORYX CLI Tool to develop it.
- Additional tutorials for specific topics can be found in the Tutorials section of the documentation.
To quickly get a running MORYX application to check out the different components, we offer the MORYX Demo, a fully functional, simulated production system based on MORYX.
Here we list all available packages in the MORYX ecosystem separated into components, linking to their documentation and providing the respective code coverage for the component.
MORYX Framework and Abstractions
(Includes the Framework as the core of any MORYX application as well as public APIs for components used to abstract digital twins)
MORYX Adapters and Modules
(Includes all adapters and modules built on top of the MORYX Framework, ready to be used in your applications)
MORYX Pending Platform Developments
(Includes planned additions to the platform portfolio which are in different states of developments)
| Component | Latest Version | Pipeline Status | Coverage | Requirements |
|---|---|---|---|---|
| Module - Maintenance Calender | 〰️ | 〰️ | 〰️ | |
| Module - Transport Controller | 〰️ | 〰️ | 〰️ | |
| Module - Identifier Provider | 〰️ | 〰️ | 〰️ |
At the core MORYX is a .NET based framework to quickly build three-tier applications. Its architecture is a modular monolith using the service and facade pattern to isolate and decouple functionality. It uses a 2-level Dependency Injection structure to isolate a modules composition and offer a per-module life-cycle with all instances hidden behind the previously mentioned facades. It also offers a range of tools and components to speed up development, increase stability and drastically reduce boilerplate code. To improve flexibility of modules and applications the core has built in support for configuration management as well as plugin loading.
Each modules composition is constructed by its own DI-container instance. This makes it possible to dispose the container in order to restart the module and reconstruct the composition with a different configuration or to recover from a fatal error. The ModuleController and Facade instances are preserved through the lifecycle of the application as part of the level 1 composition. The Components (always present) and plugins (configurable) are created when a module is started and disposed when the module stops. For each lifecycle the references of the facade are updated.
Modular Manufacturing Systems Arbitrary production units (cells/stations) can be added or removed from the manufacturing system. New production capabilities will be used immediately without modifying existing workplans.
One Piece Flow and Mass Production The control system components supports both, one piece flow and mass production.
Worker Assistance The worker gets a detailed description on process steps with options to confirm their execution, report problems and trace application specific user inputs on the process steps.
Enterprise Integration The system is designed to allow interaction with data repositories like PDM or ERP systems with the goal to enrich their data and fuel the cyber-physical production process without duplicating data.
Starting with version 3.0 of the core we decided to open source it as a foundation for Industrial IoT (IIoT) applications. For this public version, the framework received an overhaul to replace commercial libraries and tools, remove specialized Phoenix Contact code and better comply with the .NET open source community.
Version 6 uses .net 6 with ASP.net Core and EntityFramework Core 6. All WPF UIs were replaced by WebUIs. In order to make debugging easier, we decided to merge the AbstractionLayer and Core repositories into one and name this one MORYX Framework. The AbstractionLayer will be archived. Additionally, all MORYX components are now released under the same major version as the MORYX-Framework and aligned with the .NET release schedule.
With version 10 the complete MORYX portfolio aside from Phoenix Contact specific components is released as open source. We decided to combine all components into this mono-repository to make it easier to keep everything in sync and to lower the barrier for contributions. The previously seperated repository MORYX-Factory as well as the internal repositories will be archived.

