General Components Overview

This topic provides brief information on major features which are supplied in the General Components group.


Extra Actions

The eXpressApp Framework supplies several Action types and makes it possible to implement an advanced custom Action. Additional Action types presented here has gained great popularity among the Xafari customers. Check Action is a button that supports two states: checked and unchecked. Aggregated Action is a multi-level menu, and other Actions are its items. Popup Container Show Action invokes a pop-up container with a View used to set parameters before the execution of an Action. Wizard Action is intended to pass through a series of stages and conditions before executing. JS Action allows the user to start a specified java script in the Web application.


Dock Panels

Allows to add a number of additional Views which accompany the main View. The additional contextual Views are displayed within docking containers. Dock Panels support Criteria Language Syntax that allows to consider relationships and to define advanced filters. It also provides data synchronization. Thus, a significant extension in the functionality of a particular custom module View is ensured without coding. It is important that the settings of the main View are absolutely not affected with this approach.


Alternative Navigation Items

The Arms module provides a navigation system that differs from standard XAF Navigation Items in a number of additional features. There are extra menu items to execute Actions, to interact with Xafari Reports, and to start Business Operations. It is possible to implement any specific menu items. A certain Arm can be assigned to a particular user role in order to adapt the navigation system to different user groups. The Arms Templates stored in the Application Model provide the capability to reuse the same blocks of elements.


Xtra Editors

The line of custom Property and List Editors satisfies several specific needs that have emerged while obtaining extensive experience of XAF development. Xafari Xtra Editors interact with specific data types, improve the application's ergonomics and performance, support Web Editors Templates technology, allow to use advanced controls.



A striking example of the Wizard concept is the installation procedure. Xafari supplies the Wizard technology for XAF applications. The Wizard works in a popup-window that presents every stage of the Wizard on a separate Detail View. It is possible to determine conditional jumps between the stages. The last stage of the Wizard is to perform an Action or a cancellation.




AppModule is neither a product nor a solution; it is an approach that is highly recommended to be utilized when designing and exploiting complex XAF applications.

In real-world business systems, user interaction is organized in a variety of different ways and is not limited by the UI only. There are operations that are performed with extra convenience by a variety of additional support services. For instance, generating report remotely saves a lot of time, but the report server must use the same security settings as the main app. The auxiliary component can be implemented in the form of a separate win/web application, console application, windows service, etc. The requirement to host the application in different environments emerge.

In such a situation, it is critical that all use cases must exploit the same configuration in order to synchronize with the main application in a quick and stable way (especially, regarding security settings). This can be easily achieved by applying the concept of the AppModule utilization.

AppModule is a special module (or multiple modules) intended to configure the instance of the application, i.e. to define the composition of the functional modules, security settings, the method of creating ObjectSpaceProvider, and other parameters of an XAF application. The complete code that defines the application's configuration is pulled from the exe-project and is then transferred to the appropriate AppModule; the only modification required to be done in the exe-project is to create an XafApplication object and start it.

Now, when designing any platform-dependent module, it is enough to just add a previously prepared AppModule to avoid duplicating the entire set of basic libraries and settings.


Console Application

The ways for the effective use of business systems are very diverse, and should not be confined to the interaction with the users through the UI. There are operations that are easier to run in automatic batch mode, perhaps on a schedule. Typical tasks of such kind include import/export data operations and the batch generation of reports. In these cases, user interaction is very limited or even non-existent. UI libraries are absolutely not required, helping to save hardware resources. Thus, the idea to perform some functions of XAF applications in the command line mode has great potential.

A lightweight RunCmd.exe utility performs XAF application functions if they are declared in a specific manner. An important advantage is that only the required modules are loaded. The developer implements the required functionality in the form of a command. The Xafari.Commands namespace provides all the necessary interfaces and base classes. In production, to perform the business task it is necessary to specify the appropriate command and parameters into the command line.


Extra Filters

It is a special component used to filter the DateTime columns of a List View. To activate the filter, specify the corresponding option of the business object in the Application Model. At runtime, the filter is represented by a special control allowing to set the period's beginning and ending points. User-friendly interface makes it easy to quickly create frequently-occurring periods: current year, current quarter, current month, week, or day. It is possible to combine several variants. Approve the specified period, and the data on the List View will be automatically filtered.


Smart Design

Provides an alternative way to generate Views, i.e. Xafari View Layout Strategy. The Smart Design module allows to manage the View's layout in code when implementing business objects. By default, it hides all properties, and the developer specifies the desired properties manually to make them appear in the Application Model (and in the UI). This technique protects the solution from the redundancy of fields (columns) on the Views. Moreover, the developer can create a rule to generate any number of different Views directly in the class of the business object, and then define the layout of each View.



The Accelerator module is designed to overcome the inconveniences and disadvantages caused by low performance of the Application Model.

DevExpress XAF provides developers with a rich set of "out of the box" features, the framework also actively supports a lot of technologies to extend its basic functionality. A complete business system uses a large amount of XAF-modules; as a result, there is a plurality of the Application Model layers. The inevitable consequence is a performance slowdown in both the Application Model and the application itself. It becomes most explicit and evident when the application starts.

The main idea of the Accelerator is to lock the fixed part of the Model in a separate xml-file. At runtime, the Application Model will be reduced to only two layers: the accelerator layer and the user one. The main emphasis is on achieving peak performance.


Xafari Module

The Xafari module also provides a number of useful features listed below: