MXMS
What is MXMS

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 .NET Core as the development platform and is written in C#
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 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.
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.
Application startup
MXMS is injected into the ASP.NET Core pipeline during tartupof the .NET Core application. MXMS provides injection classes to enable the MXMS application within the ASP.NET Core implementation. Additional or 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.
Data storage
TODO add db info
ORM
Updates
Dialects
File storage
TODO file storage
User interface
TODO add ui info
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.