Major Features in x010 | Xafari Framework

Major Features in x010

Helpers

Helpers is a specific strategy for implementing third party classes extensions.

Use Cases

Previous version:

  • ApplyNumerators();
  • Instance.ApplyNumerators(objectSpace);

New version:

  • Xafari().Numerators().Apply();

The older variant is supported but marked as Obsolete.

Benefits

  • Usage of Helpers standardizes large amounts of extra methods and provides the basic structure for newly implemented ones.
  • The opportunity to use properties for third party classes extension.
  • More convenient search and navigation among available methods and properties.
  • Common code to access closed members in third party classes.
  • Helpers explicitly indicates the usage of Xafari or custom code.

Main Concepts of Helpers Based Approach

  • All extension methods for the third party DXClass are implemented in the DXClassHelper.
  • The Helper class heirs from the XafariHelperBase class that implements the methods to access the closed members of the third party class.
  • An extension method (in C# terms) is implemented for DXClass with the following signature:
    public static DXClassHelper Xafari(this DXClass dxClass);
  • The standard access to the Helpers methods:
    Xafari().Method1();
  • An applied Helper can be implemented by using an additional extension method (in terms of C#) to indicate the application area, e.g.:
    Xafari().HCM().Method1();

Related documentation: General, Reference.

Xafari Accelerator

The Xafari.Accelerator module optimizes the structure of the Application Model in order to improve the system performance and to avoid time lags that often appear as the application architecture complexity increases. Its core principle is the usage of a separate XML file to store the whole Application Model unchangeable part for the current combination of modules and their versions. Xafari.Accelerator also extends the Application Model with extra interfaces to guarantee that adding CustomMembers will not influence the performance. For more info, refer to the documentation.

Xafari Services

Service Spaces Manager

Service Spaces Manager is a special Xafari Service to control the service space life cycle and to provide the basics for context services. The diagram below shows service relations and other things to consider. For more info, refer to the documentation.

Services Model

Services Model Service is a special service to provide all Xafari Services with access to Services Model. For more info, refer to the documentation.

Services Model is used by the following services:

  • Numerators,
  • Branches,
  • BusinessOperations,
  • AppSettings,
  • etc.

Logic Controllers

Logic Controller is an alternative to ViewController and can be used to implement business logic for a particular View. LogicControllersService provides LogicController in the runtime.

Related documentation: General, Getting Started, Logic Controllers in Application, Learn More.

Hierarchy Manager

The HierarchyManager service defines the hierarchical data and is also used to provide an easy way to customize these data. For more info, refer to the documentation.

Data Accessor

DataAccessor is a special service intended to implement a common UI for different operations with data. DataAccessor can be used along with both IObjectSpace or UnitOfWork. DataAccessor implements the IObjectSpace interface.

ObjectSpace Factory

This service implements batch operation processing for IObjectSpace. Depending on the concepts used in the executing code, all operations can run either for separate IObjectSpace objects or for a single common object.

The service is used by XafariModuleUpdater that executes in its own IObjectSpace strictly.

When creating IObjectSpace, use CreateObjectSpace() and GetObjectSpace()service methods to guarantee the stable functioning of the ObjectSpaceFactory service.

using (var space = ObjectSpaceFactory.Instance.CreateObjectSpace(typeof(ModelDifference)))

{

// any code here

space.CommitChanges();

}

For more info, refer to the documentation.

Branches Manager

The previous version saved all settings of the branches in a separate persistent object. Now these settings are saved to ServicesModel that automatically converts all existing settings when performing the UpdateDB operation. The persistent object is removed from the DB right after a successful conversion.

Related documentation: General, Configuring.

Other Services

There are other new and improved services in the latest version of Xafari:

  • Numerator Manager,
  • Index Numerator Manager,
  • Settings Accessor,
  • Business Operations.

XafariModuleBase

Module classes should heir from XafariModuleBase for more rational usage of the Xafari functionality. XafariModuleBase extends the ModuleBase class with extra methods for metadata customization, services registration, and eXtensions Framework (XF) interactions.

Show Success Messages

In some cases, it is important to notify the user that an action has been completed successfully. Xafari provides a universal solution for this task. For more info, refer to the documentation.

Xafari Application Support

  • Administrative functions are grouped together in separate modules. This approach allows the application to divide business and administrative tasks. See the list of supported services below:
    • Audit,
    • Branches,
    • Application Settings,
    • Managed Operations,
    • Reports,
    • Message Queue,
    • Work Places.
  • General recommendations on the AppModule implementation are established for the enterprise software development.

For more info, refer to the documentation.

Common Data

For the purpose of more frequent version releases and further improvements, it is now a separate Xafari related product.

Reports

  • Common mechanism of deployment for both Xafari Reports and DevExpress XAF (v1 or v2) Reports.
  • Centralized approach to the Reports administration. Works with reports generated by both Xafari and DevExpress XAF (v1 or v2).
  • It is now possible to bind a set of Parameters Objects and a group of certain Templates (see “Xafari Report Templates. Availability criteria property”).

Related documentation: General, Key Features, Reports in Application, Fundamentals, Getting Started, Learn More.

Work Places

  • Improved technology of Work Places administration uses a separate List View to stores the list of all Work Places in the system.
  • There is a wizard to create new Work Places.
  • Work Places configurations can be stored in the application’s DB.
  • Better ergonomics for Work Places management UI.

For more info, refer to the documentation.

Messages Queue

  • Improved technology of message queue administration.
  • There is a wizard to create tasks for removing outdated messages from the queue.
  • The administrative UI now has much better ergonomics.

For more info, refer to the documentation.

Dock Panels

The existing functionality is extended with a newer version of DockPanels. Its benefits are listed below:

  • Easy-to-use structure of the Application Model settings,
  • Using Expression to define the relations between Views.
  • Using Named Parameters.

Related documentation: General, Getting Started, Learn More.

Docflow and Task List

  • Numerous changes to structure and functionality: switch to the State Machine concept (nested states, events, actions, etc.). The task is associated with a particular state in the State Machine concept. These improvements are based on the practice proof tips used in HR and Recruiting projects development.
  • Automatically triggered events can be defined for the beginning and the finishing of a task.
  • It is possible to define Actions and Document properties that should be available on the List View of a task.
  • Schemas of a document can now be synchronized by means of Signals.
  • Earlier, the list of stages was generated dynamically based on tasks. Now a global list of stages is available for all tasks in order to optimize task processing.
  • Previously, the list of Signatures was generated dynamically based on tasks. Now all tasks can refer to a global list of Signatures.
  • It is possible to define how to switch between different states depending on conditions/circumstances and to specify automatic extra actions for such switching.
  • Timer events based on Quartz project services.
  • E-mail notifications and newsletters.

For more info, refer to the documentation.


Enhancements and Updates

To learn about new features/updates and resolved issues in this version, please refer to the following page: What's New in Xafari 15.2.9010.523

Breaking Changes

To learn about breaking changes in this version, please refer to the following page: Breaking Changes in Xafari 15.2.9010.523