CC6 is composed of a number of layers, described below.
Responsible for gluing the application together. Every app we build will have an application injector as this is how we determine what components should be injected into the application.
Responsible for building scenes, navigation, module security, session handling.
Responsible for handling the rendering of the UI.
Responsible for manipulating the application's state and executing core business logic.
Responsible for providing access to our application's data, along with keeping the data up to date and in sync with its source of truth.
The diagram below represents the different layers of customization available within a CC6 application.
|Work Order Management module
|Inventory Transfer module
The example application contains two modules:
- Module 1 (left hand column) is the Work Oder Management module (WKM)
- Module 2 (right hand column) is the Inventory Transfer module (INV).
The two modules are included in the delivered app (center column).
The horizontal layers show different override levels, e.g. an end-customer's code customizations (top row) will override a development partner's code (second row), which in turn will override Rinami and base code.
The diagram shows the multiple levels of customization supported by CC6. The top layer defines customizations that can be made by the end-customer. Changes at this level will override implementations in lower layers, such as customizations made by a development partner, or by Rinami.