Reasons to Produce Xafari MVC

Xafari is based on practical needs and demands that are often required for large-scale XAF applications development. One of the aspects Xafari platform enhances is the performance of XAF ASP.NET Web Forms applications.

Enterprise software embraces all kinds of a company’s business operations and is intended to manipulate different aspects of its working activities. These applications usually have complex UI with lots of controls and a specific visual design. There is a number of typical and common performance issues appearing during the implementation of such systems.

Each user action causes a reaction delay up to 3-5 seconds. Such interval leads to significant inconveniences and business processes slowing down.

The ability to manipulate the HTML code of the page in a flexible manner is often required. However, XAF ASP.NET Web Forms technology does not provide an easy opportunity to add this feature. In some cases, it is completely impossible to implement such functionality.

Another thing worth mentioning is the logic of page reloading for simple requests when very small amounts of data (such as JavaScript or HTML code snippets) are taken from the server. XAF ASP.NET Web Forms use ViewState for these requests and renders the whole page anew each time. For example, the user wants to check the connection string. First, the client part passes all current ViewState to the server. Then, the server has to rebuild the complete hierarchy of controls and return the new ViewState back to the browser that, in its turn, creates a new layout from scratch. This case demonstrates the waste of resources that happens while performing a simple action.

ASP.NET MVC technology provides nice and simple ways to solve the described issues. Xafari MVC is a rational alternative to XAF ASP.NET Web Forms. It combines the functionality of XAF Web modules with the entire set of MVC model based advantages within XAF development process.

Features and Benefits

Xafari MVC is a set of libraries and technologies used to develop complete XAF applications based on MVC platform. It supports two main use cases: the migration of an existing ASP.NET Web Forms XAF application and the implementation of a new MVC XAF application from scratch. Main features of Xafari MVC are described in the list below:

  • Xafari.Mvc and Xafari.Mvc.MVCx modules are similar to DevExpress.ExpressApp.Web and support the major part of its functionality on MVC platform.
  • Xafari MVC includes analogues for most XAF Extra Modules. All modules having no replacements are listed among the limitations below.
  • The user can interact simultaneously with several Views in different browser windows.
  • The developer can use various third party controls (jQuery, Bootstrap, etc.) integrated into XAF application development process.
  • Complete control over the generated HTML code provides the opportunity to manipulate any fragment of the HTML code all over the page;
  • Non-usage of ViewState leads to significant increase of system performance;
  • Simple requests can be processed quicker and in asynchronous way;
  • For there is no need to rebuild the application after HTML modifications, the development process becomes simpler and faster.

Difficulties and Limitations

However, Xafari MVC development may possibly cause some difficulties:

  • Xafari MVC does not support server events, so it may take time for a particular developer who has long experience in ASP.NET WebForms development to get used to the new approach;
  • In some cases, the absence of ViewState may require more effort and labor to implement extra functions.

Current version limitation:

  • GridListEditor and TreeListEditor do not provide some of the original options.
  • There are no functional analogues for DevExpress.ExpressApp.Maps.Web and DevExpress.ExpressApp.ScriptRecorder.Web modules.
  • There isn't an "Export to" Action on the List Views.
  • Inline Edit and Batch Edit functions are not supported.
  • Criteria Property Editor is not implemented.
  • If the user has edited the data and leaves the Detail View, then the confirmation request will not appear.

To see the Xafari MVC in action, refer to the Feature Center and Main Demo applications installed with product.


To learn more about Xafari MVC, refer to the following topics:

Available Functions

Getting Started