eXtensionsFramework (XF) for Data Model instead of XPO

Problem definition

When developing complex enterprise software, it is often necessary to modify the data model of the application and to add new properties and types to existing entities. XAF and XPO allow doing it through either inheritance of persistent types or customizing the metadata of these types.

Despite such approaches solve the problem, some other issues emerge.

First of all, inheritance quickly increases the quantity of existing persistent types. Extra effort is needed to hide previous type versions from the users who should always work with the latest ones.

The second fact worth mentioning is that metadata customization can be used only within strict limitations. It is so due to the following facts:

  • New properties are used in the code without explicit type definition,
  • The application starts slower,
  • The code becomes much harder to read and support.

That is why both solutions can be used only as temporary measures.

Solution

Xafari provides the eXtensionsFramework (XF) for the XAF DomainComponents technology that has the following features:

  • Application data model consists of Entities and EntityExtensions;
  • End users interact only with Entities (EntityExtensions are used as extra properties for data model development depending on business requirements);
  • EntityExtensions can be non-persistent, and they map to the same DB table as their basic Entity;
  • EntityExtensions can be persistent, and they are aggregated into their Entities and related to them in 1:1 ratio;
  • Enitites and EntityExtensions are 100% supported for all XAF platform functions: query, reports, views, etc.

For detailed info, refer to the eXtensionsFramework section.

Effect of using

  • Deep optimization of the application architecture.