ERP Components | Xafari Framework

ERP Components

Xafari Audit

Xafari Audit module allows to log data changes, Action calls, and Business Operation calls. Compared with the DevExpress.AuditTrail module, Xafari Audit has more flexible configuration and significantly higher performance and stability in cases of massive changes to the objects (more than 1000 objects in a transaction).

Xafari Audit logs the following events:

  • Removal, creation or modification of an object, its fields and collections.
  • Execution of Business Operations (context-dependent and context-agnostic), rollbacks of Business Operations.
  • Execution of Actions (context-dependent and context-agnostic).
  • Reports creation.
  • User login or sign out.

The first version of the module implements the audit at the database level using triggers. It provides higher performance for processing large volumes of data and transactions.

For more information, please refer to the Xafari Audit. Getting Started post.


The Xafari Docflow module exposes a number of components allowing to describe the life cycle of a document or an object in a formal manner. The Schema is a basic concept for document workflow design based on the Xafari Docflow module.
The Schema describes the sequence of stages, through which the document goes, and the sequence of performed tasks. It is possible to design a fixed Schema (ex. Workflow) or a flexible Schema (ex. ACM - Adaptive Case Management). All information relating to the document is collected and aggregated during the lifecycle.
All configuration of the Schema's behavior is performed in the Application Model. It can be configured even while the application is running. In so doing, programming in C# is not necessary.
You can specify the number of Schemas for any object type (Domain Component). Different instances of the same type can be processed using different Schemas.

For more information about the Docflow, please refer to the documentation.


Branches are intended to separate data coming from various organizational structures. The usage of this module allows implementing the automation of holding companies efficiently and transparently. Data isolation with using the Branches module provides the users with the ability to receive the whole set of consolidated statements for the corporation and group or filter data in the context of branches.

The administrator can effectively control the permissions to access the information. All information is stored in a single database. Each of the branches has full access to its own data. Access to the data of other branches is regulated in accordance with customizable rules and permissions excluding any possibilities of unauthorized access to the data storage.

Task List

This module provides the opportunity to create task lists for the employees and to execute the tasks from such lists. The main requirement when creating the module was to give the end-user the ability to work with task lists comfortably. To achieve this goal, we created intuitive and lightweight forms adapted for different purposes.

This module was designed to meet different needs of applied projects, i.e. it is fairly universal and flexible for solving most of practical tasks. There is a special API for the use of the module. The Task List module is used in Docflow since x06 version.

Common Data

Message Queue

Message Queue binds remote services to an independent application and coordinates their common work. The application can generate various types of messages for different services that handle these messages and return the results back to the app. This solution allows the developer to move some business logic from the application to the service. Such approach reduces the consumption of hardware resources and improves the response time of the application.

Messages can be of different types and they all are stored in the same database that the application is connected to. The messages are processed asynchronously on the server side.

For more information, please refer to the Working with Xafari (x07) Message Queue post.

Xafari Server

This component monitors the queue and distributes messages to specified handlers. Xafari Server works asynchronously as a XAF-application. Performing an operation, it selects all required messages, blocks them and sends to the corresponding handlers. Xafari Server has its own security provider establishing an environment for message processing and async interaction with the database through the connection pool.

Xafari Server can work in parallel with the main application in a separate thread; in this case, it can use a local queue to store messages. Another scenario is to use a dedicated server. Using the local queue, all messages are deleted when the the main application closes. Using the server allows keeping all messages in the application database.

Xafari Report Server is based on Xafari Server and generates reports on a dedicated server. All generated reports are stored in the database and can be viewed in the reports journal of the app. The reports are generated based on the data available to the user launching the process. The generated report, therefore, contains only the certain data according to user roles and permissions.

Xafari Reports

Xafari Reports is a new reporting system for XAF-applications; it expands the functionality of XAF reports. The Xafari Reports system allows creating reports on the basis of several business objects with complex data structure and many calculated properties. The Xafari Reports system supports various sets of parameters that can be specified by the developer and saved for being reused when needed. The developer can implement an arbitrary algorithm to generate a report.

The Xafari Reports system allows defining multiple report representations (printed reports, graphs, pivot tables, uploading a file, etc.) depending on the choice of the user.

ASP.NET MVC Platform

XAF allows developing applications based on Win and Web platforms. In addition to that, Xafari provides the ability to create XAF applications based on ASP.NET MVC technology. Xafari x07 includes Code Preview version with limitations on the possibilities in comparison with Web-platform.

In general, the concept of building an application is much similar to Web-platform. Principles of XAF application implementation are not changed. Thus, a completely new mechanism for html-code generation was implemented on the principles of ASP.NET MVC.

There are results of the first comparative benchmarks between standard Web and MVC applications: MVC-application runs 30 percent faster.

To see the examples of the MVC-applications, refer to the Demos page.