Blazor — June 2024 Roadmap (v24.1)

ASP.NET Team Blog
12 February 2024

This post outlines features/capabilities we expect to introduce in our next major update (v24.1 - June 2024). With growing adoption of Blazor in the enterprise, we've expanded our Blazor team, and as such, expect to deliver 12 new components (along with many enhancements to existing controls) in 2024. As always, your feedback will help us shape future development objectives and refine our short term dev strategies. If you have questions or suggestions, feel free to submit your thoughts in the survey at the end of this post or submit a ticket via the DevExpress Support Center.

The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This blog post and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.

TreeList (CTP)

We plan to release the DevExpress Blazor TreeList component as a CTP in June (with a subset of Blazor Grid capabilities). Any features not included in the CTP will be added in future versions based on feedback from our recent survey. Our ultimate goal is to create a component that is just as powerful as the Blazor Grid and TreeList UI components we've released over the last 25 years.

treelist

HTML Editor

Our Blazor HTML Editor will allow you to format textual and visual content and store it as HTML or Markdown.

html editor

PDF Viewer (CTP)

Our new Blazor PDF Viewer will display PDF file content directly in your Blazor apps. It will ship with the following features/capabilities:

  • Page Navigation
  • Printing
  • Zooming
  • Customizable Toolbar
pdf viewer

Map

The Blazor Map will allow you to display your geo-data using built-in Google and Bing providers, roadmap, satellite and hybrid views, customizable markers, and routes.

map

Polar Chart

The Polar Chart will allow you to visualize your data within a polar coordinate system - where each point on a plane is determined by the distance from the center and the angle from a fixed direction.

polar chart

Date Range Editor

The new Blazor Date Range editor will allow you to select a range of dates within a single calendar dropdown.

date range

DropDown Box is a highly customizable editor that will allow you to select values from its dropdown. The dropdown itself can feature any UI element - simple lists, trees, grids, or a combination of multiple elements.

dropdown box

File Input

The File Input component will allow users to select files like our Blazor Upload control, but will give you direct and secure access to files in Razor code instead of sending them to a remote HTTP service.

file input

Sidebar is a collapsible side panel that can be used to display navigation controls (such as the TreeView or Accordion). It will be released with support for overlay and push modes.

sidebar

Toast

Toast can be used to enhance app interactivity by pushing notifications to your users. You will be able to display notifications at any corner of the browser window, choose from a set of predefined status colors (error, warning, etc.), and optionally define a template for notification content.

toast

ProgressBar

Our Blazor Progress Bar can be used to display event progress or utilized as a loader element.

progress bar

Bar Gauge

The Bar Gauge will allow you to visualize key metrics in your application. You will be able to configure the appearance of bars and labels and customize the displayed range.

bar gauge

New Rendering Engine

Back in 2022, we started the transition from Bootstrap to our proprietary rendering engine across DevExpress Blazor components. This change helped us improve render performance, provide a more consistent UI experience, implement our own themes, and support external Bootstrap themes without relying on Bootstrap rules and associated versions. You can read more about reasons for this change in the following blog post: Upcoming Breaking Changes in Rendering and Bootstrap Support (v22.2).

With v24.1, we will apply this rendering engine to the following DevExpress Blazor UI component libraries:

  • Charts
  • Pivot Grid
  • Report Viewer
  • Rich Text Editor
  • Scheduler
  • Upload

This will complete our transition and allow us to introduce new themes and color palettes for DevExpress Blazor controls in the future.

Keyboard Support

To better align with accessibility standards and improve user experiences for those with disabilities, we plan to add keyboard navigation support in the following Blazor UI components:

  • Accordion
  • DateEdit
  • TimeEdit
  • TreeView
  • Upload

Project Templates

.NET 8 Authentication and Authorization

Our Blazor project templates for .NET 8 will include an option to add ASP.NET Core Identity and Token-based Authentication to your projects. In addition to required infrastructure, our templates will generate an authentication UI powered by DevExpress components.

project templates

Grid

Column Bands (Stacked Columns)

The DevExpress Blazor Grid will allow you to arrange columns into logical groups called bands. Each band will have its own header displayed above column headers. The Grid will also support multi-level bands where a band can have other bands inside it (as well as columns without a band that span the band area).

grid column bands

Export Server-Side Data to Excel

We expect to support Excel export functionality for Grids bound to server-side data (with Server Mode, GridDevExtremeDataSource, or CustomDataSource). To export data to Excel, the DevExpress Blazor Grid will display a loading indicator and download all records from a remote source.

New Cell Editor Appearance

We will update the appearance of inline cell editors displayed in Edit Cell and Edit Row modes to ensure UI consistency between active and inactive cells.

Cell Editing Enhancements

Our Blazor Grid's Edit Cell mode will officially ship. We also expect to introduce a number of usability enhancements and support for Virtual Scrolling.

Keyboard Support Enhancements and New Tab Navigation

Our Blazor Grid's keyboard navigation will also officially ship and be enabled by default. It will support Virtual Scrolling and feature a new Tab key behavior. To improve the user experience in Edit Cell and Edit Row modes, the Tab key will navigate between all Grid cells regardless of the cell editor's active state. Users will also be able to quickly leave the table area by pressing Ctrl + Up or Ctrl + Down (Alt + Up or Alt + Down on Mac).

Built-in Value Posting

We will extend the EditModelSaving event with an API designed to automatically assign changes made by the user back to the original data object.

async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e) { 
    e.CopyChangesToDataItem();
}

Scheduler

Multiple Resources (Resource Sharing)

Our Blazor Scheduler will allow your users to assign multiple resources to an appointment. When grouped by resource, such appointments will be displayed under every resource assigned to them.

multiple resources

Built-in Scroll Bar

Our Blazor Scheduler will feature a built-in scroll bar in Day, Week, Work Week, and Month views. You will be able to fix the Scheduler's height or stretch it across the browser window and scroll to appointments that don't fit into the viewport.

html editor

Scroll API

We will implement the API to scroll the Scheduler to a specific appointment or time programmatically.

Recurrence Form Customization

We will extend the AppointmentFormShowing event and allow you to customize available recurrence options (Repeat, Repeat End, and the list of weekdays).

void OnAppointmentFormShowing(SchedulerAppointmentFormEventArgs args) {
    args.FormInfo.RecurrenceFormInfo.WeekDayItems.Remove(SchedulerWeekDays.WeekendDays);
}

Data Editors

Date Edit — DateOnly Type Support

Our Date Edit will support DateOnly and nullable DateOnly types in addition to DateTime and DateTimeOffset.

Charts

Annotations

Chart Annotations will help you display additional information, like images, text blocks, and custom content, directly on your charts.

chart annotations

Strips

Strips are colored sections on a chart's background used to highlight specific value ranges.

chart-strips

Error Bars

Error Bars will help you specify measurement errors or uncertainties, providing a visual indication of precision.

chart error bars

API Enhancements

We plan to extend our Blazor Chart API with more than 40 new members designed to customize Chart appearance and behavior.

Rich Text Editor

New Table API

We plan to introduce an API designed to modify table layout, decoration, and structure at runtime.

var table = await documentAPI.Tables.CreateAsync(0, columnCount, rowCount); 
await table.ChangePropertiesAsync((properties => { 
    properties.AutoFit = false; 
    properties.Style = "Grid Table 5 Dark Accent 1"; 
    properties.Width = new TableWidth { Type = TableWidthType.Twips, Value = 9000 }; 
    properties.TableStyleOptions = TableStyleOptions.TotalRow | TableStyleOptions.HeaderRow; 
})); 

HTML Export/Import

The DevExpress Blazor Rich Text Editor will support the import and export of documents in HTML format.

Context Menu Customization

We will introduce an API designed to customize Rich Text Editor context menus. You will be able to add or remove default items (and create custom items as needs dictate).

void OnCustomizeContextMenu(IContextMenu contextMenu) { 
    contextMenu.Items.Remove(RichEditContextMenuItemNames.CopySelection); 
    contextMenu.Items.Remove(RichEditContextMenuItemNames.PasteSelection); 
    var clipboardItem = contextMenu.Items.AddCustomItem(1, "Clipboard"); 
    clipboardItem.BeginGroup = true; 
    clipboardItem.Items.Add(RichEditContextMenuItemNames.CopySelection); 
    clipboardItem.Items.Add(RichEditContextMenuItemNames.PasteSelection); 
}

Reporting

Non-Windows Environment — Performance Enhancements

During this release cycle, we will allocate resources to profile and decrease memory consumption when using the DevExpress Drawing Graphics Library (based on SkiaSharp). Our aim is to improve the overall performance of document generation and reduce the time needed to build and export report documents within non-Windows environments.

SVG Export

DevExpress Reports will include a new export type which will allow users to save reports as a collection of scalable vector graphics (SVG) images. This new export format will produce high-quality, lightweight vector report page images without any loss of text content quality. This will be of value for those who wish to modify/share report images or embed report thumbnails on web pages (since the SVG format is fully compatible with modern browsers).

We are committed to making this new export type available on all supported platforms and deployment environments, including Unix-based systems.

Microsoft Azure and Amazon Web Services App Deployment Tutorials

We hope to simplify the app deployment process for the world's top two* cloud environments (Microsoft Azure and AWS). To achieve this objective, we will create a comprehensive set of help topics and address deployment-related issues/strategies. 

(*according to data from Statista)

Accessibility Enhancements

In our v24.1 release cycle, we expect to meet WCAG 2.2 (AA level) accessibility guidelines/requirements for the Blazor Native Report Viewer.

Report Viewer — Send an Email

We'll introduce a new API based on the well-known cross-platform MailKit .NET library. With this new feature, you will be able to send exported reports as email attachments.

Web Report Designer — Hide/Restrict Parameters Editing

We will introduce new APIs to disable the ability to edit/create/delete report parameters for Web Report Designer.

Reporting for Microsoft Azure — Updated References

We will update our references to reflect the most recent packages and refactor our internal service implementation (designed to host multi-instance web apps with DevExpress Reports on Microsoft Azure). Specifically, we will be updating/overhauling our current  Azure Service Bus and Azure Storage implementation (allows you to cache report documents in Azure Table and Azure Blob storage).

New Expression Functions

We will add new expression functions to our criteria language syntax. These functions will offer greater flexibility in shaping and displaying data within DevExpress Reports. New functions will include:

  • The ability to retrieve the value of the previous column/row
  • The ability to retrieve the value of the next column/row
  • The ability to retrieve the current group index
  • The ability to retrieve the current row index within a group.

SVG Pictures Export

When you add SVG pictures to a report, they will be exported using a vector format (SVG) natively (to maintain image quality). This enhancement affects PDF, Excel, and Word export formats.

Parameter Groups Title Localization

With our built-in DevExpress Reports localization feature, you will be able to localize the titles of parameter groups displayed in the Parameters Panel across all supported platforms.

SqlDataSource Enhancements

First, we'll enhance the user experience in our Data Source Wizard to address the following security-related changes introduced by Microsoft for the MS SQL Server: The certificate chain was issued by an authority that isn't trusted - SQL Server | Microsoft Learn. This will allow you to avoid the "The certificate chain was issued by an authority that is not trusted" error while binding a report to MS SQL Server database if you do not have access to set up the MS SQL Server differently. To achieve this, we will introduce two new options in our Data Source Wizard:

  • An option that will allow you to turn on/off the MS SQL Server encryption (to specify the Encrypt=No value in the connection string).
  • An option that will allow you to trust the MS SQL Server certificate without validation (to specify the TrustServerCertificate=True value in the connection string).

Second, we'll add support for the Postgres data driver v.7.0. This will enable you to bind DevExpress Reports to stored procedures introduced starting with v7.0 of the database engine.

JsonDataSource — Transition to System.Text.Json

We have made the decision to revamp the source code of all DevExpress products so that they no longer reference the third-party Newtonsoft.Json assembly. Instead, we will use functionality from the System.Text.Json assembly/NuGet package, which is a part of .NET. During this release cycle, we will be conducting research to identify methods for migration with minimal impact on existing functionality and applications. Our preliminary findings suggest that discrepancies do exist. Our decision is mainly influenced by the security risks associated with the third-party library, as well as the improved performance offered by Microsoft's own library. 

Your Feedback Matters

Please take a moment to share your thoughts on our mid-year Blazor Roadmap using the form below. As always, we appreciate your feedback.

Free DevExpress Products - Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We'll be happy to follow-up.