[Expand]General Information
[Collapse]WinForms Controls
 [Expand]What's Installed
 [Expand]Build an Application
 [Expand]Controls and Libraries
 [Collapse]Common Features
  [Expand]Data Binding Common Concepts
  [Expand]Data Source Wizard
  [Expand]Application Appearance and Skin Colors
  [Expand]Filtering UI Context
  [Expand]High DPI Support
  [Collapse]Scaffolding Wizard
     Main Features
     UI Types
     Application Layers
   [Expand]Data Access Layer
   [Expand]Generating an Application
  [Expand]Formatting Values
   HTML Text Formatting
  [Expand]Tooltip Management
  [Expand]Saving and Restoring Layouts
   Clipboard - Copy and Paste Operations. Data Formatting
   Version Compatibility: Default Property Values
  Get More Help
 [Expand]API Reference
[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
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Application Layers

This topic describes the common application architecture generated by the Scaffolding Wizard.

Below is a diagram that illustrates this application architecture.


Most of the implementation of the Data Access, Data Model and View Model layers is kept in separate assemblies: DevExpress.Mvvm.v16.1.DataModel, DevExpress.Mvvm.v16.1.DataModel.EF6, DevExpress.Mvvm.v16.1.DataModel.WCF and DevExpress.Mvvm.v16.1.ViewModel.

The Test Data Provider and the Unit Tests sections are not generated by the Scaffolding Wizard.

The Data Access Layer is a storage-dependent set of classes that provides access to persistent data.

The Data Model Layer is a Repository/Unit Of Work pattern. The Scaffolding Wizard generates two implementations of the Data Model Layer interfaces.

  • The Runtime implementation uses a Data Access Layer (DbContext) to obtain and manipulate real persistent data. There are two possible implementations of the Runtime Data Layer: for Entity Framework and for WCF Data services.
  • The Design-time implementation provides sample data that is used in views at design-time.

The View Model Layer is the core of an application and contains several view models that are initialized with the unit of work instance and provide all user interaction logic. View models are Data Access- and View layers-independent, and can work with either runtime or design-time implementations of the Data Model Layer. You can switch your runtime data provider to another data access technology (for example, from the Entity Framework to the WCF Data Services) without affecting view models.

The View Layer contains collection and detail views. The Scaffolding Wizard can generate several types of Views (see UI Types).

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