The Web Forms control comprises client and server parts:
You should configure the Web Dashboard on the server side before the first use: prepare a dashboard storage, register predefined data sources, add dashboard parameters, etc. Each platform (Web Forms, MVC, .NET Core) has a different approach to utilizing a server-side API. For ASPxDashboard, you can choose between two approaches to set up a server-side backend:
The default approach is to use the ASPxDashboard control's API and use callbacks to exchange data with the server side. It is a native Web Forms approach that allows you to integrate the dashboard control into the ASP.NET Page Life Cycle. The page raises events at each stage of the life cycle that you can handle to run your own code.
The Web Dashboard control uses a RESTful API to request data and performs multiple requests to get the required data from the server. The ASP.NET Web Forms platform does not support parallel requests — additional requests during this time are queued. For example, you have a complex dashboard that displays multiple data bound items. If you change the master filter in a certain item and you have a few detail items in which data should be updated, all these items send their own requests to the server one-by-one. The session state blocks parallel execution and forces parallel requests to be executed sequentially. This behavior can lead to performance degradation. You can support multiple requests using one of the following ways:
The DashboardConfigurator sends requests to the server using the HTTP Handlers. All operations are performed by the HTTP Handler- the ASPX page is not created. Since the Session is disabled by default, asynchronous parallel processing is possible. This saves a lot of resources and decreases request processing time, especially if the dashboard is displayed on a complex page.
Follow the steps below to use the DashboardConfigurator:
Set the ASPxDashboard.UseDashboardConfigurator property to true.
Register a new ASPxHttpHandlerModule that should process requests with the DXDD.axd path:
<system.web> ... <httpHandlers> ... <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v18.2, Version=18.104.22.168, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="DXDD.axd" validate="false" /> </httpHandlers> </system.web> <system.webServer> ... <handlers> ... <add type="DevExpress.Web.ASPxHttpHandlerModule, DevExpress.Web.v18.2, Version=22.214.171.124, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="DXDD.axd" name="WebDashboardHandler" preCondition="integratedMode" /> </handlers> </system.webServer>
Configure additional Web Dashboard's settings at the DashboardConfigurator's level if necessary. For example, customize connection settings, specify a custom data store schema, set a data connection provider, etc.
If you want to access the Session from DashboardConfigurator's events, perform the following steps:
Call the ASPxDashboard control's static constructor to initialize the handler and required resources:
DevExpress.DashboardWeb.DashboardBootstrapper.SessionState = SessionStateBehavior.ReadOnly; ASPxDashboard.StaticInitialize();