The following is a list of commonly asked questions by those new to XAF and should provide you with more information on the capabilities of the eXpressApp Framework (XAF) is and whether it is the appropriate tool for your next .NET project.
XAF is a fully integrated .NET application framework and allows you to simultaneously target both Windows and the web. It integrates the complete range of UI controls from DevExpress so you can build your best, without hassles. The following are the extended app modules that ship with XAF.
Yes. XAF is not reliant on any version control system and its development flow does not pose any limitations on collaborative efforts. Its modularized design allows you to effectively split team activities (one developer can work on the core module, a second can work on the business model, another on the UI, etc.). Additionally, XAFML files containing application UI customizations can be easily merged when changes are made by multiple developers via standard merge tools or by using the DevExpress Model Merge Tool.
Yes. We provide full source code to all XAF modules and all DevExpress controls used by the framework. We also offer ready-to-use build scripts to save you time when rebuilding and registering your source code modifications within Visual Studio.
Yes. We provide FREE support via email or our online Support Center during your free 30 day evaluation period.
Yes. Applications created by XAF are standard .NET applications. Though XAF was designed to hide the complexities of underlying platforms and to provide pre-built solutions for a wide range of application requirements, you can implement anything you require and integrate any .NET solution (such as a cool bar-code reader, payment system, SMS support, custom forms, etc.) with ease.
Yes. There are numerous examples available on our site that demonstrate how to customize the controls created by XAF. The core benefit of an auto-generated UI is to avoid repetitive work and to share functionality by using wrappers or templates (like View Items and List Editors) to build the UI at runtime. These templates often wrap UI controls and you can access them for customizations via XAF’s built-in API. Of course, if you want more control or need to deliver custom capabilities, you can create your own templates based on custom user controls designed in Visual Studio – just as you would do in a standard .NET application.
Yes. XAF ships with a built-in and easy-to-use wizard that allows you generate a data model from more than a dozen of popular database systems. This data model can then be used to create your CRUD forms and to incorporate additional functionality such as security, validation, etc. If you do not have a database and are starting from scratch, XAF provides straightforward designers and other helpers so you can hit the ground running quickly.
Yes. XAF provides support for Entity Framework. You can use your existing EF data models in order to generate an XAF application. Please review the Business Model Design page to learn more.
Yes. XAF ships with a built-in middle tier application server that filters out restricted data. Clients have no direct access to the database server and need not know its actual network location. There is also a workflow service that is used to run scheduled workflow activities.
Yes. Due to its loosely coupled functional blocks and MVC architecture, XAF makes it easy to unit test your business logic without dependence on a specific database or external classes. For unit testing, you use your favorite unit testing frameworks and test runners, including the one provided as part of the subscription. In addition, XAF ships with a functional test framework, EasyTest. This framework is specifically designed to perform functional testing of XAF applications. EasyTest scripts are platform-independent, so multi-platform XAF applications can be tested with minimal effort and its script language is simple so that QA teams not versed in XAF terminology can use it with ease. Potentially, even end-users should be able to create acceptance tests. Note, however, that you are not limited to using EasyTest for functional testing. You can leverage existing testing tools within your enterprise as needed.
Yes. The application UI structure of XAF is dynamically generated and can be customized at runtime. These UI settings are split across multiple layers: auto-generated default, administrative and end-users layers, which makes it easy to perform independent customizations and share them among users. Power users or administrators are also allowed to perform more extensive application customizations via a specialized visual designer.
Yes. XAF ships with built-in support for Microsoft's Windows Workflow Foundation 4.0. XAF simplifies design and workflow execution, requiring you to only know the general concepts associated with workflow design. In addition, XAF ships with a State Machine module, which simplifies state transition management for more lightweight usage scenarios and whenever the use of Workflow Foundation is overkill and overcomplicated.
Yes. Working in conjunction with our UI controls, XAF can handle millions of records with the help of a powerful virtualization binding mode (also known as Server Mode). This allows you to avoid loading all records from the database and to only retrieve data required for drawing the current UI screen. There are also various filtering options available for other UI controls (reports, calendar, pivot, etc.) that allow you to limit the amount of data retrieved from the data source.
There is no universal software development product in the world (we've yet to figure out how to build Skynet) nor one that brews coffee in the morning. The following are a few things XAF can't do, just yet.
Though it’s possible to customize XAF for these usage scenarios, we would definitely not recommend it to you. XAF Web applications are primarily targeted for Intranet users. XAF, however, is the perfect choice for the administration of backend services of a public website. For instance, our main web site is a good example of this symbiosis: internally, we have several XAF applications (both desktop and Web apps) managing our Support Center, sales and other content of our main web site. Frontend and backend applications share the same business logic (powered by our XPO library) and access data in the same database. Finally, take special note that although it is possible to deploy an XAF ASP.NET application in the cloud (Amazon EC2 or Windows Azure), you should be aware of the "stateful" (maintain session state) architecture of the XAF Web UI when you wish to scale your application across multiple web servers. For this particular deployment scenario, you will require to configure "sticky" session routers and load balancers. Such requirements are not necessary when you deploy your XAF Web application to a single web server.
Again, though XAF is a very flexible framework that allows you to customize or replace any portion of its custom forms and controls, it would not make much sense to use XAF if the default XAF UI (check out screenshots of typical XAF UI screens) does not meet your project needs in more than 50% of your use-case scenarios. If you expect to make significant changes to the default XAF UI, we suggest that you carefully evaluate our framework and make use of our free support services during your 30 day evaluation period to determine whether the ROI with XAF will meet your requirements.