Modules

  • 9 minutes to read

XAF modules are similar to standard Class Library projects. The difference is that each module project contains a class that inherits ModuleBase. The presence of such a class allows the XAF core code to distinguish modules from regular .NET assemblies.

XAF-specific classes declared within modules are collected automatically (using reflection) and utilized in automatic UI generation. For instance, if you declare a Controller descendant within a module, an XAF application will create it in each Frame. This allows you to implement custom code to be executed when the Controller is activated (see Controllers).

Create a Custom Module

You are not limited to three modules per solution. Generally, you may implement one custom feature per module. You can also reuse custom modules in other XAF applications. To create a new module, follow the steps below.

  • Right-click the application solution root node and select Add | New Project… in the invoked context menu.

    ApplicationSolutionComponents1

  • In the Add New Project dialog, select the DevExpress v21.1 XAF Solution Wizard template. Specify the new module name and click OK.
  • Choose the Module Project in the Solution Wizard and press Finish.

    ApplicaitonSolutionComponents2

  • Add a reference to the newly added module to the existing module or application project as it is described in the Ways to Register a Module topic.

You can also convert an existing Class Library into a module by defining a ModuleBase class descendant in it. For this, take the Module.cs (Module.vb) file from an existing module as a prototype. Rename the class and set a correct namespace.

IMPORTANT

Modules Shipped With XAF

One of the eXpressApp Framework concepts is to use modules (class libraries containing a ModuleBase descendant) to provide additional Controllers, Actions, List Editors, View Items, Application Model nodes and properties. A module can be considered as a ready-to-use package for a certain feature that can be easily enabled when creating an XAF application in the Solution Wizard. In an existing application, additional modules can be added from the Toolbox in the Module Designer or Application Designer. Topics in this section provide detailed information on each built-in XAF module: module components and ways to use and customize them.

Audit Trail Module

EM_Audit

The Audit Trail module is intended to provide you with information on changes that are being made to the application’s data. You can retrieve information on the kind of change (object is created, changed, etc.), who made this change, with what object, the previous and new property values, and so much more. A change is registered between two sequential events of object saving to a data storage.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

Business Class Library Customization Module

EM_BCLCustomization

Provides UI settings (class images, List View columns arrangements and Detail View layouts) for built-in business objects from the Business Class Library.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

Chart Module

EM_Chart

Provides List Editors that allow you to visualize data using the WinForms Chart Control and ASP.NET Chart Control. These controls offer you a comprehensive set of 2D and 3D charts to address a broad range of business needs with ease. The Chart module adopts these controls for XAF applications, so you can easily visualize your data, and integrates the Chart Designer into the Model Editor.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Clone Object Module

EM_Clone

Allows end-users to quickly create similar business objects by copying an existing object and changing the required property values. For this purpose, this module provides the CloneObjectViewController that contains the CloneObject Action. When executing this Action, the focused object is cloned.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

ConditionalAppearance

EM_ConditionalAppearance

Allows you to configure a user interface dynamically. UI customizations are performed on the basis of predefined business rules for control color highlighting, changing availability and visibility, font style, etc. In addition, you can define or modify these rules at runtime without recompiling your application.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

Dashboards Module

EM_Dashboards

Integrates DevExpress Dashboard controls to WinForms and ASP.NET Web Forms XAF applications. Allows to create dashboards at runtime and persist them in the application database.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

File Attachments Module

EM_FileAttachment

Provides Property Editors and Controllers that allow users to attach files to business objects using properties of the file data type.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

KPI Module

EM_KPI

Introduces the support of Key Performance Indicators (KPI) - quantitative measurements of dynamic business processes. For instance, an important performance indicator for a trading company might be daily sales, and for a team of developers it might be the number of active bugs in their product. For better visualization, KPI value ranges can be split into a “green zone” (everything is OK), a “yellow zone” (warning), and a “red zone” (things are problematic). When KPI are based on a time range, it can be useful to compare the values of different periods (for instance, the current month versus the previous month). If a deeper analysis (drilldown) is required, then the objects from which an indicator was calculated can be listed.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Maps Module

EM_Maps

Provides List and Property Editors intended to display business objects on a map.

 

Supported platforms: ASP.NET Web Forms.

 

Notifications Module

EM_Notifications

Displays reminders for scheduler appointments or any custom business object in both WinForms and ASP.NET Web Forms applications. At the required time, a pop-up window is automatically invoked. In this window, a user can view alerts, cancel or delay them for a specified amount of time.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Office Module

EM_Office

The Office Module integrates the following DevExpress controls:

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Pivot Chart Module

EM_PivotChart

Allows users to analyze application data using pivot grid and chart controls in both WinForms and ASP.NET Web Forms applications. Analysis configuration created by a user is stored in the application database and thus is available to other users. You can also create predefined analysis.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Pivot Grid Module

EM_Pivot

Provides List Editors that allow you to analyze data using the PivotGridControl and ASPxPivotGrid controls (in WinForms and ASP.NET Web Forms applications respectively). The Pivot Grid module adopts these controls for XAF applications, so that you can add data analysis functionality with ease, and also integrates the PivotGrid Designer into the Model Editor.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Reports V2 Module

EM_Reports

Integrates the DevExpress Reporting into XAF applications. Creates a user interface for designing, viewing and printing reports. Both user-defined and built-in reports are represented by business objects that are stored with other persistent objects in the application database.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

Scheduler Module

EM_Scheduler

Provides List Editors that integrate the WinForms Scheduler and ASP.NET Scheduler controls. These controls are appropriate for presenting and managing scheduling information in an efficient manner. Various date-time views, multiple resources display, date navigator, end-user capabilities and other features - everything to make your scheduling application simpler and more convenient to use.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Script Recorder Module

EM_ScriptRecorder

Supplies a script recorder, which can record the actions you perform on a UI, and save them to an EasyTest script file. When using the script recorder, recording is performed using a set of Actions available in the Tools menu.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

State Machine Module

EM_StateMachine

Provides a user interface for the state transition management for business objects that have certain states (e.g., the Task object, which can in the NotStarted, InProgress or Completed state). You define a set of states and corresponding permitted transitions, and associate them with a business class, in code or at runtime. Additionally, you can define Conditional Appearance rules and associate them with specific states.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

TreeList Editors Module

EM_TreeList

Provides List Editors that integrate the WinForms Tree List and ASP.NET Tree List controls. These controls allow you to display data as a tree, a grid, or a combination of both, regardless of data complexity.

 

Supported platforms: WinForms, ASP.NET Web Forms.

 

Validation Module

EM_Validation

Allows you to validate user input based on business rules declared in code, at design time or at runtime.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

View Variants Module

EM_ViewVariants

Allows you to keep several predefined variants of a View layout in the Application Model and provides an option to switch between these variants at runtime.

 

Supported platforms: WinForms, ASP.NET Web Forms, Blazor.

 

Workflow Module

EM_Workflow

Integrates Windows Workflow Foundation (WF) 4.0/4.5 support into XAF. WF is a workflow management framework designed to assist you in creating more manageable, workflow-enabled applications.

 

Supported platforms: WinForms, ASP.NET Web Forms.

TIP

To get more ready-to-use modules, see the XAF Community Extensions.

System Module

Any XAF application includes a System Module. This module cannot be disabled, since it provides a certain basic functionality required in all applications. The System Module enables the following functionality:

See Also