DevExpress Reports: Web Application Architecture
- 4 minutes to read
If you use DevExpress Reports in a web application, you also need reporting controls on the client, a reporting engine on the server, and services that transmit data between application components. Review the following diagrams.
#Design Time
To modify reports at design time, use our integrated Visual Studio Report Designer or our extension for Visual Studio Code:
- Visual Studio Report Designer
- The Visual Studio designer allows you to create, edit, save, and load a report. The Visual Studio Report Designer is activated automatically when you open a report class (C#/VB) in Visual Studio. Learn more about the Visual Studio Report Designer: Visual Studio Report Designer.
- Visual Studio Code (VS Code) Report Designer
- The DevExpress VS Code Report designer is an extension for VS Code. It allows you to create, edit, save, and load a report. The VS Code Report Designer is activated automatically when you open a report definition (REPX) in Visual Studio Code. Read more: Visual Studio Code (VS Code) Report Designer Extension (CTP).
- Report Class Source Code (C#/VB)
- You can view or edit report source code: a class inherited from XtraReport. The Visual Studio Report Designer autogenerates the initialization code for this class and executes this class code to generate a report preview. Read more about report file formats: Report File Formats.
- Report Definition (REPX)
- This file is a serialized XML file in a REPX format. The file stores a report definition that includes report controls, properties, and data bindings. REPX is the default format for the VS Code Report Designer. Report definitions that you create in the VS Code Report Designer are cross-platform and can be used in desktop applications as well. REPX files are also backward-compatible: new versions of DevExpress Report Components process existing reports correctly. Read more information about report serialization: Store Report Layouts.
- Data Source
- A data source to which the report is connected and from which the report receives data.
#Web App
This diagram includes all DevExpress Reports controls and services that you can use in a web application:
- DevExpress .NET Report API
- The main component in DevExpress Reports is .NET-based API. This API is a set of classes, events, and methods that help generate report documents, print them, and export those documents to a variety of file formats.
- Backend Services
- Backend services are used to handle communications between the server (data source) and client (UI controls). Communication implementation uses HTTP Handler modules in ASP.NET Web Forms and ASP.NET MVC applications (
DXXRDV.axd
,DXXRD.axd
,DXXQB.axd
), controllers in ASP.NET Core applications (DXXRDV
,DXXRD
, andDXXQB
), and the web socket in Blazor applications. The server performs all necessary actions: retrieves data from the data source, creates a list of parameter values, generates documents, and renders pages for preview, export, and printing. - Report Designer Control Frontend
- A control that keeps its state on the client (a stateless component). Most edit operations are performed in the browser. If an operation requires server processing, the component sends its whole or partial state to the server.
- Document Viewer Control Frontend
- A control that uses a server-side stateful service. This control allows a user to specify report parameters and modify interactive report options. User-defined data and report/document identifiers are sent to the server.
- Report Storage
- A service that processes client requests from the Report Designer to the server, for example, when you open or save a report. For more information, review Report Storage documentation for the following platforms: ASP.NET Web Forms, ASP.NET MVC, and ASP.NET Core.
- Report Name Resolution Service
- A service or a group of services that process a report name or a string that the Document Viewer sends to the server as a parameter in the Open method to create a report instance. The string can contain report parameters and additional data. You can register your custom implementation of these services and return a report with custom data and parameters applied at runtime. For more information, review the following help topic: Open a Report in ASP.NET Core Application.
Below you can also find scenarios that require fewer services.
#API-Based Application
The following diagram displays how you can print and export reports without UI controls:
See the following help topic for more information: Printing and Export in Reporting Tools for Web.
#UI-Based Application
#Document Viewer
Refer to the following help topic for information about web app architecture if you use the Document Viewer control: Document Viewer for Web.
You can also refer to the following article: Document Viewer Lifecycle.
#End-User Report Designer
Refer to the following help topic for information about web app architecture if you use the End-User Report Designer control: End-User Report Designer for Web.