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. When an application runs, it includes only those features that are implemented in the referenced modules.
The eXpressApp Framework ships with a number of ready-to-use modules:
- System Module
Contains basic features that are common for business applications (object filtering, creating, deleting, navigating, exporting, printing, etc.). This module is added to each XAF application by default, which makes even an empty application full of essential features.
- Audit Trail Module
Allows you to audit and log information on changes made to persistent objects when the application is running.
- Chart Module
Contains List Editors that allow you visualize data via the XtraCharts library developed by DevExpress. The Chart module adopts controls from this library for XAF applications, so you can visualize your data with ease.
- Clone Object Module
Provides ability for end-users to quickly create similar objects by cloning them and changing the required properties.
- Conditional Appearance
The Conditional Appearance module allows you to dynamically configure a UI, and is designed to supersede the Conditional Formatting and Conditional Editor State modules. UI customizations are performed on the basis of predefined business rules.
- File Attachments Module
Includes Property Editors and Controllers to attach, save, open and download files in Windows Forms and ASP.NET Web applications.
- HTML Property Editor Module
Contains the Property Editors which allows end-users to format string properties' values using Hyper Text Markup Language (HTML).
- KPI Module
Allows you to create and manage Key Performance Indicators which are quantitative measurements of dynamic business processes.
- Pivot Chart Module
Provides the capability to analyze data via the XtraCharts, ASPxPivotGrid and XtraPivotGrid controls.
- Pivot Grid Module
Contains List Editors, that allow you to analyze data via the XtraPivotGrid and ASPxPivotGrid controls. The Pivot Grid module adopts these controls for XAF applications, so you can add data analysis functionality with ease.
- Reports Module
Uses the XtraReports library to provide end-user interaction with reports in Windows Forms and ASP.NET XAF applications. Allows a user to design, customize, filter, view, export and print reports.
- Scheduler Module
Uses the XtraScheduler and ASPxScheduler control suites to display event-specific objects in Windows Forms and ASP.NET XAF applications.
- Script Recorder Module
Supplies a script recorder for the EasyTest functional testing engine shipped with the eXpressApp Framework.
- State Machine Module
A state machine implementation, providing a uniform way of managing object states, greatly simplifies state transition management.
- Security Module
Supplies various security system strategies and authentication implementations. Allows you to assign different permissions to different users or user groups. Supports custom Security strategies and authentication implementations if they use the Business Class Library's interfaces.
- TreeList Editors Module
Uses the XtraTreeList controls suite to display object lists as a tree in XAF applications.
- Validation Module
Contains a powerful and flexible validation engine and a large number of ready-to-use validation rule types. Allows you to create rules both at runtime or design time and check them when required.
- View Variants Module
Allows you to create several variants of a View so that end-users can select the required one.
- Workflow Module
Integrates Windows Workflow Foundation 4.0 support into XAF. Allows you to to create more manageable, workflow-enabled applications.
By default, an XAF solution with both Windows Forms and ASP.NET application projects includes three modules. You are not limited to them. Generally, you may have one feature per module, so that you then use individual custom modules in other XAF applications. It is very easy to create your own modules for the eXpressApp Framework and thereby to create and distribute your own reusable functionality.