Xafari ERP Concepts
The proposed concept is a generalization of the rich experience arising from the implementation and maintenance of many complex and cumbersome real-world apps. A certain approach to the design of XAF applications is based on the following assumptions:
- The application contains a large number of modules from different suppliers, making manual management unacceptable due to high risks of unpredictable system behavior;
- The needs of complex enterprise systems can't be satisfied within a single target application implemented on a particular platform. There are tasks to be solved by specific tools outside of the main business application.
The Xafari concept supposes that an ERP system is a set of data and functions to process those data. The mandatory and essential functions of the system are to enter, store, browse, analyze, print data, etc. These daily operations are provided by the final business application designed for the certain platform (Windows Forms or ASP.NET).
However, the scenarios of using ERP system may be very diverse. Some functions can be extremely specific, so they require a special environment, distinct from the main application which interacts with most business users. For example, there is a mechanism that synchronizes a database system with some external source once a month. This import operation processes millions of records and is performed for several hours. It is reasonable that this function of the ERP system should not be implemented in Win or Web app; this is a typical task for the console application. Thus, the function of ERP system should run in a Command Prompt. Moreover, this operation must be performed on behalf of the user with the appropriate permissions and, in addition, it should use the correct set of modules, otherwise it can lead to fatal errors in the database. The idea of the mentioned approach is to ensure the integrity of the individual system parts configuration.
It is inevitable that various existing components of the ERP-system require effort, skill, and knowledge to properly configure and exploit them. These are, for example, successful and popular products Xafari Applications Support and Reporting Server.
Summarizing, specific tasks often emerge during the development and maintenance of a complex XAF application, this tasks require to host the app in different environments: WinForms, WebForms, ASP.NET MVC, Mobile, Console, Windows Service, Server for specialized calculations etc. Thus, Win, Web, or other platform apps are the host (or container) for the ERP application to perform certain operations. In all of these scenarios, it becomes extremely important to guarantee that all use cases refer to the identical configuration of the XAF application. The configuration of an XAF application specifies the list of required modules, security system settings, ObjectSpaceProvider creation and so on.
The configs for all scenarios should be identical to avoid collisions, most common issues are listed below:
- Unauthorized data access happens when different configurations of the XAF application have their own security system parameters.
- Partial (with missing data) DB update appears if not all application modules are specified.
- It may be hard to administrate the application which is already in use.
The architecture of DevExpress XAF provides enough abilities to design compound systems and overcome the described difficulties. Certainly, a team of experienced XAF developers can implement containers for various types of applications and establish the interaction between them. Such tasks require deep understanding of the fundamental principles and inner logic of an XAF application.
This documentation was created to aggregate the experience and unify the development process in order to provide the developer with an extensive set of valuable use cases that can be utilized on the early stages of the application's design. The described approach is recommended though not obligatory.
All the advantages of an XAF application remain without any significant changes.