Platform Components
From Open Forex Platform Wiki
The Platform is built in 4 general layers
- Layer 1 Common classes
Classes with common application for all parts of an application (things like Tracer, System Monitor, Reflection helpers etc). Also common financial classes (like an Order or a Data Provider) are available at this level.
- Layer 2 Platform Core
This layer includes the main Platform class, the base class defining a Platform Component, Expert base class etc.
- Layer 3 System Components
Components (both user interface and business logic) that come to provide functionality required to build custom level components are in this layer. For example Data Source, Order Execution Sources, Diagnostics Component, Persistency Components and so on. Those components have exactly the same characteristics as Custom components, the only difference being they are given a higher priority, so that they get loaded before custom components on start up (this is needed to make sure once a custom component is loaded, it can find all the system components it relies upon).
- Layer 4 Custom Components
As already mentioned, those are very similar to the system components, only difference being their lower load time priority. The Platform is designed is to allow and encourage the development of unlimited number and scope of custom components, covering all possible areas of financial software. Custom component can interact with system components but also with other Custom components, as long as they have the proper ways to do so. A component can also serve as a manager for other "slave" components, adding and removing them from the system as necessary.
Although the Platform organization is currently rather strict as to what class goes where and why, it is, at the same time, extremely flexible, allowing for completely different "interpretations" of a component based design - both from class level logic and user interface point of view. Any part of the system is designed to be as independent as possible and reasonable.

