expressappframework-112559-overview-architecture.md
Applications built with XAF consist of multiple functional blocks. The diagram below:
This topic overviews each application building block.
XAF works with data via an ORM Layer. With ORM, you have no need to create a database, configure tables, relations, and so on: ORM create a database for you.
XAF supports the following ORMs:
ORM tools allow you to use familiar code structures (classes, properties, and their attributes) to describe data for your application:
The Business Class Library implements the following:
The image below shows some classes you can find in the Business Class Library.
XAF separates business logic from the application’s visual representation. XAF can create the following UIs based on the same business logic:
When you create a new application solution with XAF, a solution may include a web, desktop, or both projects. For more information about application solution components, refer to the following topic: Application Solution Structure.
XAF automatically generates CRUD UI based on application data.
Example. You have declared an ORM class that describes a person. This is all you need to get an application for storing contact information. You can start the application and it will display a person list using a grid control. You can add new entries or modify existing ones. These operations are performed using the automatically generated set of individual editors; each bound to a particular field.
The automatically generated UI elements used to display and manage data are called Views. In XAF , there are three types of Views.
List ViewList Views are root modules of your application. Usually, these are grids that display collections that you work with (data tables). You see one of them when you start your project, and you can switch between them using the Navigation System.
Detail ViewThis View type deals with a single object (data record) and presents property values using standalone editors. You see these views when adding a new record or when modifying an existing one. Dashboard ViewThis is a View that allows you to display multiple Views side-by-side on a single screen.
Views are built with the following DevExpress component suites:
You can use any control you require to represent a List View or an editor within a Detail View. For information on Views and other elements that form a user interface, review documents from the UI Construction help section.
See also : UI Customization Categories by Skill Level
You can extend XAF applications functionality with additional modules shipped with the eXpressAppFramework. A module is a ready-to-use feature that can be integrated to your XAF application.
You can add the following modules to your XAF app:
Refer to the following topics for details.
Controllers are objects that manage your application flow. They are also responsible for end-user interaction. Even the simplest applications built with XAF use a number of built-in Controllers supplied with the System Module and Additional Modules. These default Controllers are mostly responsible for data management. With their help, you can add new records, delete existing ones, perform full text search, and so on.
For the most part, Controllers serve as containers for Actions. Actions are abstractions of end-user interaction elements - buttons, menus, etc. An Action specifies the visual representation of a UI element and its associated code. So, you do not have to deal with low-level implementation details of particular editors, toolbar systems, context menus or anything else. At the same time, this higher-level of abstraction allows the same Action to be used in desktop and web applications.
For information on implementing your own Controllers and Actions, review the following documents:
Basic ASP.NET Core Blazor Tutorial | Define Custom Logic and UI Elements
In-Depth Tutorial (Blazor and WinForms) | Add Actions (Menu Commands) section
The Application Model stores all the information to build the XAF application UI. For example, this information includes editor classes used for particular data types, or labels associated with particular fields.
The Application Model is automatically filled with metadata queried from application components - like business objects or Controllers.
XAF features the Model Editor, which is integrated with Microsoft Visual Studio. You can use the Model Editor to edit the Application Model in both design time and runtime. To run it at design time, double-click a .xafml file from any module or application project located in the Solution Explorer.
Application Model definition files are stored in XML format, you can edit them manually.
For more information about the Application Model, refer to the following topics:
Basic ASP.NET Core Blazor Tutorial | Define Custom Logic and UI Elements
The Customize the Application UI and Behavior section in In-Depth Tutorial (Blazor)
See Also