Accelerator

Overview

XAF applications use the Application Model a lot. When the quantity of modules in the app grows, the Application Model becomes more complicated (because of the increasing number of layers in the Application Model). It slows down the Application Model performance  and leads to notable time lags in the application itself. The growing amount of time needed for the app to start is the most obvious sign of such changes.

To solve the issue mentioned above, use the Xafari.Accelerator module designed precisely to overcome the problems with the Application Model performance.

Being used in demo applications, Xafari.Accelerator showed twice as less starting time compared to the same apps without this module. The actual result for a particular project depends on the complexity of the application and the quantity of business objects in use.

The results of demo application profiling proved that the usage of Xafari.Accelerator allows excluding all operations with the Application Model from the profiling reports. When Xafari.Accelerator is not used, the operations with the Application Model are critical according to the application profiling reports.

The table below shows the results of profiling the Enterprise Assets Management system (EAM):

Stages

Standard start (in seconds)

Accelerator using (in seconds)

Acceleration

Splash screen

4

5

0.8

Logon

40

14

2.85

Startup View

63

33

1.9

How It Works

Xafari.Accelerator core principle is to analyse the current combination of the modules and their versions and to fix unchangeable part of the  Application Model for this combination. Then, Accelerator save this part to the separate XML file and stores in it. The same idea works for localization files if there are any.

Note.

The Accelerator's files ApplicationName.Accelerator.xafml (ApplicationName.Accelerator_locale.xafml) are stored in the same folder that has the ModelAssembly.dll file. By default, it is the application folder.

The Accelerator then modifies the Application Model so that its constant part builds upon this only file.

As a result, there are only two layers left in the Application Model: the accelerator and the user.

The Xafari.Accelerator module also extends the Application Model with extra interfaces to avoid performance issues that may happen when adding Custom Members.

To master the techniques for working with Xafari.Accelerator, refer to the Getting Started topic.