MXMS

From MXMS Wiki
Jump to navigationJump to search

What is MXMS

An example implementation using the MXMS framework
An example implementation using the MXMS framework

The MXMS framework enables rapid development of business software solutions by using a structured class entity model in which the database / SQL is maintained and updated by the framework and the UI is built.

MXMS enables rapid development of API's which exposes certain fuctionality of the entity model in a JsonRPC, REST or a custom format.

Custom scheduled tasks can be created for background processes to execute to create data synchronisation tasks or other custom workflows.

.NET Core

MXMS uses ASP .NET Core as the development platform and is written in C#. The core libraries are written in .NET Standard 2.0 for maximum portability.

Model driven development

At it's core a MXMS implementation expects a model definition which is used to generate the application and it's functionality.

A model is a collection of classes which contains properties annotated with attributes which provides context to the property and methods which provides functionality to the implementation.

Configuration

MXMS being injected into the ASP.NET pipeline
MXMS being injected into the ASP.NET pipeline

MXMS has various ways of changing the application configuration. There is a json file which contains basic configuration which changes from instance to instance. The main way to configure the application is through strongly types configuration classes using the options pattern in the startup.cs. The strongly typed configuration can be further filled by creating a module. A module can be re-used to provide certain functionality to implementations.

Application startup

MXMS is injected into the ASP.NET Core pipeline during startup of the .NET Core application. MXMS provides injection classes to enable the MXMS application within the ASP.NET Core implementation. Additional [Link:Configuration|ad-hoc configuration] can be passed during the initial startup of the application. MXMS uses a strongly types class model to confige the application furing startup.

Modules

For a modular approach modules can be created which can be injected into the application. A module is a class which injects configuration options to the application. This module can be re-used in various implementations.

mxmsSettings.json

MXMS uses a json file called mxmsSettings.json to configure specific items between instances. Each instance of the application can have it's own mxmsSettings.config. The file is using the json format.

The configuration consists of the global mailserver settings which are used to send mails and the connection string which provides storage for the ORM mapper. Additionally MXMS registers when which scheduled process was last run. It uses this information to determine which processes needs executing.

If a mxmsSettings.json file is not present during application startup an empty configuration file is created which can be edited as required.

log4net.config

MXMS uses log4net to provide logging functionality. This module is configured using the log4net.config file located in the workingdirectory of the application.

Data storage

MXMS uses NHibernate as it's Object Relational Mapper. MXMS feeds NHibernate custom configuration data based on the model which is implemented.

ORM

Updates

Dialects

File storage

TODO file storage

User interface

MXMS uses Vue as it's javascript client framework to render it's javascript GUI.

Pages

Apps

Views

Widgets

Input controls

Custom applications

Background processes

TODO add background process info

Security

TODO add security role / claim based info

Filters

TODO add filter information

API development

TODO add APIs info.