Xafari Framework ERP components have been created specifically for the purpose of complex XAF applications development. ERP components are included in Xafari Enterprise subscription.
Below is the list of the main ERP components. You can find the complete list in the documentation.
Xafari Audit
Xafari Audit module allows to log data changes, Action calls, and Business Operation calls. Compared with the
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.
For more information, please refer to the Xafari Audit. Getting Started post.
Docflow
Docflow is a Xafari ERP component that provides a tool kit for development of a comprehensive document workflow system in the XAF application. It allows describing 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 done in the Application Model. It can be configured during the application run-time, no C# programming skills required.
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
Branches is an ERP component that helps separate data coming from various organizational structures (branches). Using this module allows implementing the automation of large companies in an efficient and transparent way. 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.
In this case, the data of various company branches is stored in a single database, and the Xafari Branches module manages it based on user permissions to access a certain type of data.
The administrator can effectively control the permissions to access the information. It is possible to set permissions for branches or individual users. The system excludes any possibility of unauthorized access to the data storage.
Read more about Xafari Branches Module in the documentation.
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
Xafari Server monitors the queue and distributes messages to specified handlers. Xafari Server works asynchronously as a XAF application. When 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 main application is closed. 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.
Read more about Xafari Server in the documentation.
Xafari Reports
Xafari Reports is a new reporting system for XAF applications. It expands the functionality of XAF reports. Xafari Reports system allows creating reports on the basis of several business objects with a complex data structure and many calculated properties. Xafari Reports support 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.
Xafari Reports system allows defining multiple report representations (printed reports, graphs, pivot tables, uploading a file, etc.) depending on the choice of the user.
Read more about Xafari Reports in the documentation.
App Module
When developing applications for various platforms (Web, Win, Console, etc.), DevExpress XAF technology creates some inconveniences with modules design. Typically, the basis of the XAF application is a specific set of platform-independent modules. This set of modules is the same for all platforms, and it is expanded with certain platform-specific libraries and settings in each platform-dependent module. In the case of a standard XAF application, all basic modules and settings should be added to each platform-dependent module and then initialized.
Xafari App Module allocates platform independent libraries and settings in a separate module. It configures such properties of a XAF Application object as security, authentication, objectspace, etc. App Module doesn’t contain business classes or controllers, define business logic or the UI.
When designing a platform-dependent module, it is enough to add customized AppModule rather than duplicate the entire set of core libraries and settings. This will allow users to run XAF Application instances on different platforms and be sure that they maintain the integrity of the system and interact uniformly with the data model and business functions.
Read more about Xafari App Module in the documentation.
Application Host
Application Host is one of the modules that represent the new Xafari ERP concept. It provides standard containers for the Xafari application, creates, initializes, and starts the application. Application Host has the following main functions:
- Initialize the environment for the application.
- Create and initialize the XafApplication object. The host is a factory for the XafApplication objects.
- Load all platform-agnostic modules and determine which platform-specific modules it is necessary to add to the project.
- Ensure the availability of standard features for Xafari applications.
Xafari Framework provides application hosts for:
- Windows Forms Xafari applications;
- NET Web Forms Xafari applications;
- Console applications;
- NET MVC applications;
- Mobile applications;
- Xafari Model Editor utility.
Application Host objects are customizable, developers can override the business logic of the host in the virtual methods.
Read more about the Application Host in the documentation.
Xafari ASP.NET MVC
DevExpress XAF allows developing applications based on Win and Web platforms. In addition to that, Xafari Framework provides the option to create XAF applications based on ASP.NET MVC technology.
In general, the concept of building an MVC application is very similar to a Web application. 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: on average, an MVC application runs 30 percent faster.
To see the examples of MVC applications, refer to the Demos page.
Read more about Xafari ASP.NET MVC in the documentation.