
|
Architecture
Applications built with the eXpressApp Framework are comprised of several functional blocks:
- an ORM layer with a mixture of built-in XAF business classes and a developer's own classes, which provide the Storage layer;
- a mixture of built-in and application-specific Controllers together with Application Model extensions, which provide the Behavior layer;
- XAF's scaffolding plus the developer's extensions, which provide the UI layer.
|

|
Object-Oriented Data Management
When building a business application, you will ultimately have to deal with data. If you are using the eXpressApp Framework, you don't actually have to create a database in a DBMS, customize tables, fields, etc. And you won't need to use low-level ADO.NET constructs to access your data. The eXpressApp Framework is based on an object-based data handling approach. |

|
Customizable UI Model
All the information that the eXpressApp Framework uses to build user interfaces comes from the Application Model. This information is represented as metadata - data defined via a neutral format that can be adapted to any target platform. So, the Application Model represents one of the mechanisms that enables UI-independent code to be used. |

|
Automatic Data Representation
You don't have to create forms to represent data, arrange numerous controls, write code to bind these controls to data, and manage this data by interacting with that DBMS you chose. If you're using the eXpressApp Framewok, you only need to design your business model. The editors representing data in the required manner are created automatically. Though, they are accessible and fully customizable. |

|
Modularized Architecture
In the eXpressApp Framework, every piece of functionality must be enclosed into a module. A module in the eXpressApp Framework is a special kind of assembly that contains a class derived from a certain base class. This structure provides a common hook for the eXpressApp Framework to recognize an assembly as a module, to provide management information to that module and in turn to request details about what's contained in the module. |

|
Easy Functionality Extension
To change your application's flow and implement custom end-user interaction, the eXpressApp Framework provides the Controllers and Actions concept. This concept allows the implementation of both internal application features and specific operations in response to end-user manipulations.
|

|
Data Validation
The eXpressApp Framework includes a powerful and flexible validation engine and a large number of ready-to-use validation rules. The system is dynamic, so you can extend it with your own rule definitions and basically implement any business rule checking you need. |

|
User Interface Localization
Every application based on the eXpressApp Framework is easily localizable using the Model Editor. Advanced linking of property values in the model make localization very efficient - you never need to change things like field captions in more than one place, unless they are actually supposed to be different. |

|
Reporting
The reporting functionality in the eXpressApp Framework is represented by the Reports Module built with our . XtraReports is a mature reporting system with lots of advanced features including an end-user designer for WinForms, report creation wizards, built-in previews, data parameters and mail merging to name just a few. |

|
Data Analysis
With the eXpressApp Framework, you can provide end-users with means to analyze data with ease. If you need to represent data via a chart control or a pivot grid control, just use the required List Editor from the built-in Chart or Pivot Grid Module respectively. If you need to combine the possibilities of these two controls, use our PivotChart Module. All these "analysis" modules represent data using controls from the XtraCharts, XtraPivotGrid and ASPxPivotGrid Suites. |

|
Printing/Exporting
In the eXpressApp Framework, you don't have to write a line of code to provide the printing and exporting functionalities for your application. They are built in each XAF application by default. Though, you can customize them so that they satisfy your requirements. |

|
Security System
Security is very important to every multi-user application, but at the same time it can be complex to implement, as it influences so many design decisions across an application. The eXpressApp Framework has been built from the ground up with security considerations in mind. To enable the security system in your application, add the Security Module to your application. It supplies various security system strategies and authentication implementations. |

|
Middle Tier Service
Since version 2011 vol 2, the eXpressApp Framework includes a preview of the Middle Tier architecture. XAF applications can now obtain data from the application server, thus preventing the client application from direct database connections. The new Security System, which is now in a preview version too, can be run using the Middle Tier Application server. Your secure data is much safer now as it will not leave the server. |

|
Workflow Integration
The eXpressApp Framework completely supports Windows Workflow Foundation 4.0. WF is a workflow management framework you can use to create more manageable, workflow-enabled applications. The XAF built-in Workflow module simplifies design and workflow execution, requiring you to only know the general concepts associated with workflow design. |

|
State Machine
Business class instances typically have an associated state represented by their property values. While this state can be easily changed by modifying property values, managing state transitions in a uniform way is not that simple. This is why XAF ships with the State Machine module, which greatly simplifies state transition management. |

|
Functional Testing
The eXpressApp Framework includes its own functional testing engine - EasyTest. All you need to know to use it is a set of commands allowed by test scripts. Using a custom script language has strong advantages - you write tests in XAF terms. As a result, your tests will work for both Windows Forms and ASP.NET Web applications. |

|
Visual Studio Integration
The eXpressApp Framework is integrated with Visual Studio in many places. For example, the Module and Application Designers give an overview of the configuration of a Module or Application, allow property modification to configure Module parameters and support drag & drop to activate additional Modules. |