Skip to main content
A newer version of this page is available. .
All docs
V21.2

Deployment Recommendations for XAF Blazor UI Applications

  • 3 minutes to read

Azure Deployment

You can deploy XAF’s Blazor Server UI applications to Azure. If you are new to Azure, refer to the following Microsoft deployment topic: Host and deploy ASP.NET Core Blazor Server.

Popular Azure deployment options include:

  • The default option with no additional settings and no WebSockets.
  • Application Request Routing (ARR).
  • Azure SignalR Service. This option is supported in v20.2.3 (RTM) and requires additional setup in the SolutionName.Blazor.ServerSide/Startup.cs file. Note that the ProxyHubConnectionHandler class is available in the Blazor demo (C:\Users\Public\Documents\DevExpress Demos 21.2\Components\eXpressApp Framework\MainDemo.Blazor\CS\MainDemo.Blazor.ServerSide\Services\ProxyHubConnectionHandler.cs) included in Unified Component Installer.

    public void ConfigureServices(IServiceCollection services) {
        services.AddSingleton(
            typeof(HubConnectionHandler<>),
            typeof(ProxyHubConnectionHandler<>)
        );
    //...
    }
    

In v21.1.4+, if you miss this setting, you may receive the following error message: "ValueManagerStorageAccessor.Storage is null likely due to incorrect Azure SignalR Service or Blazor application settings".

Windows and Linux Deployment

You can deploy XAF Blazor UI application in Windows with IIS or Linux with Nginx. You may find these community resources helpful:

When you deploy your Blazor apps to IIS, activate the following features:

Note

The <PublishSingleFile> deployment option is not supported.

Cross-Platform Desktop Apps With Electron.NET

You can build cross platform desktop apps with ASP.NET Core (Razor Pages, MVC, Blazor). Electron.NET is a wrapper around a regular Electron application with an embedded ASP.NET Core application. The current Electron.NET CLI builds Windows/macOS/Linux binaries.

For more information, see https://github.com/ElectronNET/Electron.NET and watch the following video by Joche Ojeda: XAF with Electron for Windows, MacOS and Linux.

High Load and Scaling an XAF Blazor UI Application

ASP.NET Core Blazor Server technology is designed to store user state in memory to combine fast responses to user actions with server-side data processing. This stateful architecture means that memory consumption increases with each user. After a certain number of simultaneous users, the application can reach its hosting machine’s memory limit. Due to the number of variables concerned, we cannot give exact numbers since it’ll be on a per-app basis.

We cannot recommend XAF’s Blazor UI for high-load applications that should serve hundreds or thousands of concurrent web clients on a single web server: (XAF ASP.NET WebForms or Blazor Server UI for SaaS with 1000 users).

You can horizontally scale an XAF Blazor UI application with multiple web servers and loading balancing using standard ASP.NET deployment methods. The following community video (by Joche Ojeda) demonstrates how an XAF Blazor UI app works with multiple simultaneous users: XAF Blazor load test (connecting 100 clients).

Azure Compatibility

Set the static AzureCompatibility.Enable property to true at the application startup to resolve issues with rendering and printing in Rich Text Editor (RichEditDocumentServer), Reports and PDF Export libraries on the Microsoft Azure Web Sites.