Skip to main content
All docs
V25.2
  • Add DevExpress Blazor Components to an Existing App

    • 3 minutes to read

    The DevExpress Template Kit is the fastest way to create new Blazor apps with DevExpress UI. However, the Template Kit cannot integrate DevExpress components into an existing Blazor project. This help topic explains how to install packages, register services and static resources, and add a DevExpress Blazor component to your app.

    Create a Blank Blazor App

    This tutorial uses the default JetBrains Rider Blazor Web App template as the starting project. You can use your own Blazor project and skip to the next section.

    1. Open Rider and click New Solution.
    2. Select Web project type.
    3. Configure the project based on the Blazor Web App template. In this tutorial, we use an empty Blazor Server web application:

      Blazor Web App Project Settings

      1. Specify the solution name and directory.
      2. Select C# programming language.
      3. Select Blazor Web App template.
      4. Clear Include Sample Pages option.
    4. Click the Create button.

    Add DevExpress Blazor Package

    1. Register the DevExpress NuGet feed.
    2. Right-click the solution and select Manage NuGet Packages in the context menu.
    3. Select the DevExpress NuGet feed.

      Visual Studio Add DevExpress Blazor NuGet Package

    4. Search for DevExpress.Blazor.

    5. Install DevExpress.Blazor package.

    Register DevExpress Blazor Resources

    1. Register internal DevExpress Blazor services in the application’s startup file (Program.cs).

      using BlazorApp.Components;
      
      var builder = WebApplication.CreateBuilder(args);
      builder.Services.AddRazorComponents()
          .AddInteractiveServerComponents();
      builder.Services.AddDevExpressBlazor();
      var app = builder.Build();
      /* ... */
      app.Run();
      
    2. Register the DevExpress.Blazor namespace in the Components/_Imports.razor file:

      @using System.Net.Http
      @using System.Net.Http.Json
      @using Microsoft.AspNetCore.Components.Forms
      @using Microsoft.AspNetCore.Components.Routing
      @using Microsoft.AspNetCore.Components.Web
      @using static Microsoft.AspNetCore.Components.Web.RenderMode
      @using Microsoft.AspNetCore.Components.Web.Virtualization
      @using Microsoft.JSInterop
      @using BlazorApp
      @using BlazorApp.Components
      @using DevExpress.Blazor
      
    3. Apply the application-wide DevExpress Blazor theme and add client scripts to the Components/App.razor file.

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="utf-8"/>
          <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
          <base href="/"/>
          @DxResourceManager.RegisterTheme(Themes.Fluent)
          @DxResourceManager.RegisterScripts()
          <link rel="stylesheet" href="@Assets["app.css"]"/>
          <link rel="stylesheet" href="@Assets["BlazorApp.styles.css"]"/>
          <ImportMap/>
          <HeadOutlet/>
      </head>
      <body>
      <Routes/>
      <script src="_framework/blazor.web.js"></script>
      </body>
      </html>
      

    Add a DevExpress Blazor Component to the App

    To get acquainted with the project structure, add a simple DevExpress Blazor component (Calendar) to the application’s home page and see it in action:

    1. Open the Components/Pages/Home.razor file.
    2. The DevExpress Calendar for Blazor does not support static render mode. Enable interactivity to use a component in the application:

      @rendermode InteractiveServer
      
    3. Add the DxCalendar component to the page. Bind the component to the SelectedDate variable to test interactivity.

      <DxCalendar @bind-SelectedDate="@SelectedDate" />
      
      <p><b>Selected date:</b> @SelectedDate.ToLongDateString()</p>
      
      @code {
          DateTime SelectedDate { get; set; } = DateTime.Now;
      }
      
    4. Press F5 to run your application.

      DevExpress Blazor Component

    Full code:

    @page "/"
    @rendermode InteractiveServer
    
    <PageTitle>Home</PageTitle>
    
    <h1>Hello, world!</h1>
    
    <DxCalendar @bind-SelectedDate="@SelectedDate" />
    
    <p><b>Selected date:</b> @SelectedDate.ToLongDateString()</p>
    
    @code {
        DateTime SelectedDate { get; set; } = DateTime.Now;
    }