Modular Application Framework Components contains 2 components which makes it almost code-less for you to change any application into a fully plug-in-enabled application. Both are needed only once in every application and they are laying the ground for all other MAF Components that it can blossom to its full potential.
The module management is parted in 2 steps. In the first only the registered manager modules are loaded in your main application by a component called TmafManagerLoader. One of these manager modules will contain access to another component, TmafHookManager, which will load all modules registered, but also exclude the ones, that will not have any function for the actual user.
The MAF Components were especially designed to facilitate the migration from an existing monolith executable application to a modular application. The components are designed to create an "application" next to the existing one and step by step code and forms can be moved from the main application into new modules. The LinkClient component helps to communicate between old and new parts of the application during the migration process and the old parts can already use the DynamicCode technology by simply dropping a TmafHookClient on an existing form and start executing code in modules.
The above mentioned TmafHookManager is partly a wrapper for the DynamicFunctionTable (DFT). The DFT is a dynamically built table with all functions the modules export to your application. It allows to manage the code during design- and also run time. Through the install API and a comfortable DFT Editor one can without compiling the application or the installed modules :
- add and remove modules
- add new and delete existing code
- replace old code with new code (redirecting calls)
- enable / disable code
- change call order for every function within a dynamic function (every dynamic function can contain 1-n so called SubHooks)
- group code for the security layer, which can disable whole code groups for certain users or user groups
- function observer inform about changes in DynamicFunctions during the installation or de-installation of modules and allow any MAF based application to react to these changes. Therefore no restart is needed when installing new modules or removing existing ones.
Go to the next page