Log In
[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Collapse]eXpressApp Framework
 [Expand]Getting Started
  [Expand]Application Solution Components
   Client-Side Mobile Application
  [Collapse]Business Model Design
    Business Model Design Basics
    Built-in Business Classes for Most Popular Scenarios
   [Expand]Business Model Design with Entity Framework
   [Expand]Business Model Design with XPO
    Non-Persistent Objects
    PropertyChanged Event in Business Classes
   [Expand]Data Types Supported by built-in Editors
    Mapping Complex Types to the Database
   [Expand]Types Info Subsystem
    Connect an XAF Application to a Database Provider
    Data Annotations in Data Model
    Create and Update the Application's Database
  [Expand]Application Model
  [Expand]UI Construction
  [Expand]Extend Functionality
  [Expand]Data Manipulation and Business Logic
  [Expand]Security System
  [Expand]System Module
  [Expand]Extra Modules
  [Expand]Debugging, Testing and Error Handling
  [Expand]Application Life Cycle
 [Expand]Design-Time Features
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Expand]API Reference
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
This documentation page describes implementations made in our v17.2 release cycle. To learn about functionality shipping with v18.1, navigate to our updated help file experience at docs.devexpress.com. Learn More

Business Model Design Basics

There are several different ways to design a Business Model in XAF. This topic will help you to choose what data access technology and modeling approach to use and provide you with basic information about XAF's Business Model design.

Expanded Data Access Technologies

XAF provides built-in support for the following external ORM tools that provide mapping between your coded or designed model and the database.

Expanded Business Classes

Business Class is a model of a real-world object your application operate with (e.g., Contact, Address, Task, etc.). Each class that takes part in an XAF UI construction process is a business class. It can be a class mapped to a database table - Entity Framework Entity or XPO Persistent Object. Such classes are collected from your code, and UI elements are created for them automatically. If you do not need to persist an object state to the database, you can declare a regular class and apply the DomainComponentAttribute attribute to it - such a class will also take part in UI construction.


The information on Data Types for which XAF can automatically generate a UI is provided in the Data Types Supported by built-in Editors documentation section.

If the type you need to use can be displayed in the UI, but the ORM tool you use cannot store this type in the database, refer to the Mapping Complex Types to the Database article.

Expanded Modeling Approaches

You can follow these workflows when creating a business classes.

  • Code First

    Begin by implementing XPO persistent classes of EF entities that define your data model.
  • Model First

    Begin with the designer. Draw boxes and lines in a designer provided by the chosen ORM tool to define objects and their relationships.
  • Database First

    Programmers are often required to maintain a legacy database instead of building an application from scratch. Both XPO and EF can automatically generate a data model for a specified database. The created visual model or code can then be customized and extended as required.

Expanded See Also

Is this topic helpful?​​​​​​​