Architecture
As you can see from the following diagram, XAF is built on a standard three tier architecture. Each of these layers is detailed below. 
XPO
The ability to use object-based data handling, instead of direct interaction with databases, leads to a layer that provides mapping of objects into database tables (Object-Relational Mapping tool). In the eXpressApp Framework, such a layer is provided by the eXpress Persistent Objects (XPO). The XPO provides reliability and flexibility in storing information, proven by years as a standalone product. Its simplicity comes from the fact that you needn't learn the details of how the data is stored.
Business Class Library
The eXpressApp Framework comes with the Business Class Library - a set of business classes that you will need most frequently. You can use these classes directly, modify our implementation or create your own replacements. This library also includes a number of interfaces to provide proper interaction of your data with some XAF modules. You can implement these interfaces if our implementation doesn't suit your needs.
Of course it's possible that other users will create their own domain specific extension libraries and make them available to developers.
Application Specific Business Classes
These are the business classes that are written specifically for a given application. They can reuse the Business Class Library functionality or be implemented stand-alone.
Controller Library
Controllers are objects that manage your application's flow. They are also responsible for end-user interaction. Even the simplest applications built with the eXpressApp Framework use a number of built-in Controllers from the Controller Library. These default Controllers are primarily responsible for data management. With their help, you can add new records, delete existing ones, perform a full text search, etc.
Application Specific Controllers
These are the Controllers that are written to provide a custom functionality in your application. They can reuse or modify Controllers from the Controller Library or be implemented stand-alone.
Views / Reports
Views are the user interface representations of (potentially editable) data, while reports are representations for the purpose of reporting to screen, paper, web or export formats. Views can be created automatically by eXpressApp Framework at runtime (there's no code generation in eXpressApp Framework!), while reports are typically created manually, also at runtime.
Application Model
The Application Model is a collection of information on which the automatic mechanisms in the eXpressApp Framework, including UI generation, are based. Sources of model data include metadata queried from business classes and Controllers, default information from standard or custom modules included in a given application, and configuration files on various levels. An important part of the development work for an eXpressApp Framework application is to modify the Application Model specifying options and parameters for the automatic mechanisms.
WinForms / ASP.NET
Windows Forms and ASP.NET are the two user interface platforms that are currently supported.
|