IHierarchyNode persistent hierarchical data instead of ITreeNode

Problem definition

XAF provides the ITreeNode interface for hierarchical data layout and display. This interface is a universal solution for both persistent and non-persistent data.

Most of all, there are up to 100 non-persistent objects and numerous thousands of persistents objects. When working with persistent data on Views, such correlation causes multiple issues such as:

  • Selected criteria apply only to the root objects on the List View;
  • The hierarchy loads as a whole;
  • It is impossible to edit hierarchy structure on the List View.


Xafari provides an alternative way to implement persistent hierarchical data: IHierarchyNode. The most important feature is that the data about objects persistency is used.

It is implemented by means of the Xafari HierarchyManager service. The service requires obligatory definitions of the hierarchical data and their structure. These metadata is then used for the following purposes:

  • Creating effective requests to display data on different Views;
  • Loading only the needed parts of the hierarchy data instead of the whole hierarchy;
  • Modifying hierarchical structures on the List View;
  • Storing the full physical path in the hierarchy;
  • Automated refreshing of the physical path in the hierarchy after modifications;
  • Data filtering that works for child objects, too.

The detailed info on the HierarchyManager abilities can be found in the HierarchyManager section.

Effects of using

  • UI performance optimization;
  • UI ergonomics optimization.