Skip to content

leopoldHatFertig/MORYX-Platform

 
 

Repository files navigation

MORYX Logo

CI Coverage License Gitter

MORYX Platform

The MORYX Platform 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 is also the foundation for the Phoenix Contact IoT Framework MORYX Abstraction Layer

Links

Getting started

If you want to start developing with or for MORYX, the easiest way is our template repository. It comes with two empty solutions, the necessary package feeds and preinstalled empty MORYX runtime. Add projects and packages to backend and frontend solutions depending on your specific requirements. Install stable releases via Nuget; development releases are available via MyGet.

Package Name Release (NuGet) CI (MyGet)
Moryx NuGet MyGet
Moryx.Model NuGet MyGet
Moryx.Model.InMemory NuGet MyGet
Moryx.Model.PostgreSQL NuGet MyGet
Moryx.Container NuGet MyGet
Moryx.Communication.Serial NuGet MyGet
Moryx.Tools.Wcf NuGet MyGet
Moryx.Runtime.Wcf NuGet MyGet
Moryx.Runtime NuGet MyGet
Moryx.Runtime.DbUpdate NuGet MyGet
Moryx.Runtime.Kernel NuGet MyGet
Moryx.Runtime.Maintenance NuGet MyGet
Moryx.Runtime.SmokeTest NuGet MyGet
Moryx.Runtime.WinService NuGet MyGet
Moryx.TestTools.SystemTest NuGet MyGet
Moryx.TestTools.UnitTest NuGet MyGet

If you wish to contribute to this project, you simply need to clone the repository and open the solution with Visual Studio 2017 or above. The Debug target should be StartProject.

To build and run from the command line you need powershell and msbuild.

.\Build.ps1 -Build
.\src\StartProject\bin\Debug\StartProject.exe

Architecture

The MORYX Platform is a .NET based framework to quickly build three-tier applications. The core 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 platform 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.

Maintenance

Part of the Platform is also the Maintenance module, which hosts a HTTP REST service and optionally a graphic web interface to control and configure a MORYX application. The Maintenance itself does not define that logic, but simply provides easy external access to APIs and features of the Platforms kernel.

History

Starting with version 3.0 of the platform 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. Because of these changes the public version is still Work-in-Progress, but we will stabilize and release it soon.

But even though this version is still under construction, its in-house predecessor has been used in production for years. Just a few examples of solutions build on MORYX are listed below:

  • Manufacturing Control System
  • Plastic Mold Tracking
  • Intralogistics
  • Home Automation

About

.NET based framework to quickly build three-tier applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 98.7%
  • PowerShell 1.3%