Skip to main content

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’s root node and select Add | New Project… in the invoked context menu.

    ApplicationSolutionComponents1

  • In the Add New Project dialog, select the DevExpress v24.1 XAF Template Gallery template and click Next.
  • Specify the new module’s name and click Create. Specify New Module Name, DevExpress
  • In the next window, click Run Wizard.
  • Choose the Reusable Module Library option in the Solution Wizard and click Finish.

    ApplicationSolutionComponents2

  • Choose the ORM library. Choose ORM, DevExpress

    Tip

    For additional information on how to choose an ORM that suits your needs, refer to the following topic: Why We Recommend EF Core over XPO for New Development.

  • Add a reference to the newly added module to the existing module or application project as 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 the correct namespace.

Important

Modules Shipped With XAF

One of the XAF concepts is to use modules (class libraries containing a ModuleBase descendant) to introduce additional Controllers, Actions, List Editors, View Items, Application Model nodes and properties. A module can be considered 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 using Application Builders (for .NET) and Toolbox in the Module Designer or Application Designer (for all .NET versions). Topics in this section contain 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 supply 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 that save the object to a data storage.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Business Class Library Customization Module

EM_BCLCustomization

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

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Chart Module

EM_Chart

Introduces List Editors that allow you to visualize data using the WinForms Chart Control and ASP.NET Web Forms 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: ASP.NET Core Blazor*, Windows Forms, 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 has the CloneObjectViewController that contains the CloneObject Action. When executing this Action, the focused object is cloned.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

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: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Dashboards Module

EM_Dashboards

Integrates DevExpress Dashboard controls into XAF applications. Allows users to create dashboards at runtime and persist them in the application database.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

File Attachments Module

EM_FileAttachment

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

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

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, they can be useful to compare 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: Windows Forms, ASP.NET Web Forms.

 

Maps Module

EM_Maps

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

 

Supported platforms: ASP.NET Core Blazor*, Windows Forms*, ASP.NET Web Forms.

 

Multi-Tenancy (Data per Tenant)

Multi-Tenancy

Supports implementation of a multi-tenant or SaaS-ready application for CRUD usage scenarios.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms.

 

Notifications Module

EM_Notifications

Displays reminders for scheduler appointments or any custom business object in Windows Forms 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, and cancel or delay them for a specified amount of time.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Office Module

EM_Office

The Office Module integrates the following DevExpress controls:

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Pivot Chart Module

EM_PivotChart

Allows users to analyze application data using pivot grid and chart controls in Windows Forms 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 objects (templates).

 

Supported platforms: ASP.NET Core Blazor*, Windows Forms, ASP.NET Web Forms.

 

Pivot Grid Module

EM_Pivot

Introduces List Editors that allow you to analyze data using the PivotGridControl and ASPxPivotGrid controls (in Windows Forms 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: ASP.NET Core Blazor*, Windows Forms, ASP.NET Web Forms.

 

Reports V2 Module

EM_Reports

Integrates the DevExpress Reporting components 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: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Scheduler Module

EM_Scheduler

Introduces List Editors that integrate the Blazor Scheduler, WinForms Scheduler, and ASP.NET Web Forms Scheduler controls. You can use these controls to present and manage scheduling information in an efficient manner. Various date-time views, multiple resources display, date navigator, end-user capabilities, and other features - everything required to make your scheduling application simpler and more convenient to use.

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

Script Recorder Module

EM_ScriptRecorder

Supplies a script recorder that records the actions you perform on a UI and saves them to an EasyTest script file. You use a set of Actions available in the Tools menu to control the recording process.

 

Supported platforms: Windows Forms, ASP.NET Web Forms.

 

State Machine Module

EM_StateMachine

Supplies a user interface for state transition management for business objects that have certain states (for example, the Task object, which can be in the NotStarted, InProgress, or Completed state). You can 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: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

TreeList Editors Module

EM_TreeList

Supplies List Editors that integrate WinForms Tree List and ASP.NET Web Forms Tree List controls. You can use these controls to display data as a tree, a grid, or a combination of both, regardless of data complexity.

 

Supported platforms: ASP.NET Core Blazor*, Windows Forms, 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: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

View Variants Module

EM_ViewVariants

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

 

Supported platforms: ASP.NET Core Blazor, Windows Forms, ASP.NET Web Forms.

 

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: Windows Forms, ASP.NET Web Forms.

Tip

Certain features (marked with an asterisk (*) above) require custom-tailored solutions with DevExpress UI components. We demonstrated many of these solutions in our Outlook Inspired Demo. For more information, refer to the following topic: Integrate Custom UI Components.

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

System Module

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

See Also