Sunday, December 4, 2016

Xafari x011. Overview

Xafari x011 has a number of new features and performance enhancement for some solutions. I hope we published first build of Xafari x011 in January, 2017.

AppStarter

AppStarter is a special utility for starting a win-application deployed on the file server of the corporate network. The utility preliminarily downloads the application on the local computer and then starts the local copy of the application. The utility can also be used for .net optimization.

Combined usage of AppStarter utility and Xafari.Accelerator module reduces application start time by at least 3 times on the client computer.


 AppStarter utility allows managing several applications at a time. When the application is started, the utility checks the current available application version and downloads the up-to-date version. For simpler application usage, the utility allows creating a shortcut on the desktop for each used application.

AppStarter also has a number of opportunities simplifying its operation by the administrator when using the application.

DX NewStyle for Xafari MVC

Xafari MVC supports NewStyle analogue for Web Xaf-application. We saved complete usability of NewStyle for touch-screen devices, and all advantages of ASP.NET over WebForms are available.

Performance enhancement for Xafari.MVC

Xafari.MVC uses a new original concept for working with modal windows. The new approach significantly reduces response time for opening modal windows regardless of complexity of the displayed view. The new concept also helped to minimize memory leaks in the client application.

We have taken into account a number of improvements made in DX 16.1.8, which allowed reducing time leaks when implementing parallel AJAX-queries.

In general, applications developed using Xafari MVC have become more stable and reliable when working under “load”.

Simplifying of use eXtensions Framework (XF)

We have performed refactoring of the eXtensions Framework (XF) module, which allowed simplifying of the module as well as adding new features. Now it is easier and more convenient to use XF, and ERP applications have become more flexible and adjustable.

Persistent model

The model of generated persistent types has been changed – now it does not include inherited persistent classes. Therefore, there is no ObjectType column in persistent types table any more.

Entity registration

We have added an opportunity to register entities through attributes above types.

[RegisterEntity] // so uses to register any domain component
public interface DC1 : IXFEntity {}

[RegisterExtension(typeof(DC1))]
public interface Ext1 : IXFEntityExtension {}

Therefore, there is no need to add necessary code in the module class. Xafari allows using this approach with all DomainComponents, not only XF entities.

Model designer in VS

Now the model designer works with XF modules a lot quicker. Previously, code compilation was necessary for XF. Now, due to improvements made in Xafari x011, it is no longer required.

Working with extensions

Now the extensions are more visible in the general list of entity attributes. Previously all extensions formed the single list of attributes, now there is a separate attribute for each extension.


To access extension attributes (Ext1, Ext2) for entity (Entity1) you can use Entity1.__Ext1.Property1 or Entity1.__Ext2.Property2 (prev. Entity1.Exts.Property1 и Entity1.Exts.Property2). If you see attribute with two underscores (‘__’) at the beginning you can be sure that XF extensions are used.

New concept of Xafari ERP applications

Starting with Xafari x011, we are offering a new view on an ERP application.

From the point of view of Xafari, an ERP application is data and the data management functions, i.e. all platform-independent modules. ERP application can be used in various scenarios. Win, Web and other platform applications are hosts (or containers) for the ERP application. Platform-dependent modules are connected only to the container application.

The picture demonstrates how one application (AppModule) can be started in different hosts.

To implement such approach, Xafari introduces the concepts of AppModule and ApplicationHost. In order to simplify using this approach, we have included new Xafari ERP Solution Master in Xafari x011.

AppModule is a special XAF module, which describes all attributes of a XAF application (security, database provider etc.). We have developed a special VS designer for AppModule in Xafari, which allows conducting all operations to set up a XAF application, the same ones the standard designer from DX does. All modules connected to the application have to be listed in the AppModule.


ApplicationHost is a class equivalent to a platform host for XAF application. This class is a factory for XafApplication, and starts platform environment for the application. It also loads platform-dependent modules listed in the AppModule. The picture below demonstrates connection of Win modules to a Win application (Galaktika is an EPR application).

Using this Xafari approach allows using and maintaining the ERP application successfully in various scenarios.

EasyTests support for Xafari Win components

Xafari x011 supports EasyTest for the first set of Win components. If you use EasyTests in your work, you can now conduct tests for Xafari components.

Xafari Component wizards in VS

New Xafari ERP Solution wizard for VS

In order to simplify using Xafari ERP application concept, we have included a mew master for creating Xafari ERP Solution in Xafari x011. We want Xafari to be an extension to XAF, so we designed the master similar to XAF Solution master. Screen shots

New wizard for creating Xafari ERP application’s elements

A new master for creating Xafari ERP application’s elements has been included in Xafari x011. The master’s operating principle is similar to the relevant DX XAF master. This will help users to learn all its features quicker. Screen shots

Performance enhancement for UI DynamicProperties

The mechanism of dynamic properties is actively used by our users directly as well as by other Xafari components (AppSettings, Docflow, BulkEdit etc.). In Xafari x011, we have sufficiently improved performance of this solution, which had a positive impact on the overall usability of Xafari applications.


Now the mechanism of dynamic properties works via a special manager that creates and works with a separate application model. The manager launches the model asynchronously and does not affect the start time of the application. The manager also thoroughly uses data cashing, which results in a significant reduction of time required to create an object with dynamic properties.