Extensions Framework (XF)

eXtensions Framework (XF) is a model to design and develop complicated enterprise applications. This technology is used to develop the "box" applications, i.e., such applications that  are constructed for the needs of the customer from a large number of related modules.

XF is entirely based on the Domain Components (DC) technology  and has all the features, advantages and limitations that are inherent in DC. The basic concepts are the Entity and Extension.

Why use XF

  • Extension properties are typed.

XF provides an alternative way to extend business objects with a new properties. This is done by creating new DC. In contrast to the Custom Field mechanism that XAF offers to solve this problem, XF provides a typed work with the new properties.

  • Modular strategy to extend existing data model.

When designing in accordance with the XF concept, it is possible to construct required configuration of the end-application without recompiling. This is possible thanks to the modular strategy to extend existing data model.

  • Database schema is fixed.

XF allows to design complicated systems without using inheritance for business classes. Thus, the need to use a Shared Part is excluded completely, as well, the ID for the types of business objects is fixed.

  • Full compatibility with XAF.

XF is fully integrated with all the tools and features that are provided by XAF:

  • View Design
  • Model Editor
  • Data requests:
    • - CriteriaOperator
    • - XPQuery, LINQ
  • Optimal database structure.

XF allows to construct optimal data model in terms of the database structure. It is provided by the use of flexible features when designing. The developer can use both persistent and non-persistent business objects and their extensions.

Image below demonstrates Class1 business class and three it's extensions with the evolution of the application. However, the end user still operate only the Class1 concept , in principle, it would not be possible using inheritance.

extensions_framework_1

eXtensions Framework in Xafari is provided by the Xafari.XF module which is contained in the Xafari.XF.dll assembly.

To learn more about Extensions Framework, refer to the following sections: