Quantcast
Channel: XAF Team Blog
Viewing all articles
Browse latest Browse all 149

XAF (Cross-Platform .NET App UI & Web API Service) — June 2025 Roadmap (v25.1)

$
0
0

Thank you for choosing XAF (Cross-Platform .NET App UI & Web API Service) for your software development needs. This blog post outlines some of our XAF-related development plans for the first half of 2025 (v25.1, set for release in June 2025).

First, if you have not heard of XAF or are new to the DevExpress product line, XAF is a developer-centric .NET application framework designed to build feature-complete Office-inspired line-of-business apps (leveraging DevExpress Blazor and WinForms UI components via Entity Framework or XPO ORM). Feel free to review our XAF demos and compare our implementation with other software development methodologies.

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 roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.

Blazor UI Enhancements

Fluent Theme and Ribbon UI Support

Just over a year ago, Microsoft released a new Outlook for Windows with a modern and simplified design. This updated version of Outlook offers a streamlined, web–integrated experience that aligns with Microsoft's Fluent 2 design standards. Many of our customers have expressed interest in replicating this contemporary UI within their own DevExpress-powered desktop and web applications. If you've used the new version of Outlook, you know that Microsoft's new user experience extends far beyond simple UI enhancements:

  • The app's sidebar extends up to the form title, optimizing vertical space to display more menu items on–screen.
  • The sidebar can be 'collapsed' using the Ribbon's hamburger button, allowing for a more compact layout.
  • The Ribbon control and form title can host additional UI elements, including buttons, a search panel, and other interactive UI components.
  • Fluent UI enhancements include semi–transparent effects, colorful flat icons, rounded corners, specious paddings, and more.

We expect to support Fluent UI in XAF Blazor-powered apps at the end of 2025. This involves, but is not limited to:

  • Dark and light Fluent theme support.
  • Creating hundreds of XAF-specific icons (filled or outlined) to match the Fluent theme.
  • Modifying menu and layout structures (to mimic modern Office-inspired web apps).
NOTE: Since both DevExpress Blazor Ribbon and Fluent UI are currently available as a Community Technology Preview (for instance, the ribbon control has no Classic or multi-line view), we do not expect complete support in XAF Blazor v25.1 (likely in v25.2). Fluent UI support for XAF WinForms should be officially available in v25.2 as well (once support is added to corresponding DevExpress WinForms UI components).

Accessibility Enhancements

As part of our ongoing Accessibility (A11Y) investments for both XAF and DevExpress UI components, XAF Blazor v25.1 will support keyboard shortcuts for menu commands or Actions. XAF developers will be able to specify appropriate keystroke combinations in the Model Editor or in code (similar to XAF WinForms with its ActionBase.Shortcut API).

In addition to A11Y benefits, this will also accelerate CRUD operations for many end-users (for example, to save changes, create, or delete records).

Grid List Editor Enhancements

XAF Blazor v25.1 will support the following (for DxGridListEditor):

  • Banded layout (much like in XAF WinForms).
  • Double-click instead of a single-click to open a detail form from a ListView (much like in WinForms).
  • Easier context menu customization for both grid rows and column headers.
  • New "Best Fit" and "Clear Sorting" context menu commands for grid column headers.
  • Virtual/infinite scrolling in all root and nested ListViews instead of a pager (much like in XAF WinForms).
  • Simplified API to access column settings for Grid List Editors across all XAF UI platforms. For example, you will be able to write platform-agnostic code (see below) or access platform-specific settings via ColumnWrapper descendants:
protectedoverridevoidOnViewControlsCreated() {
    base.OnViewControlsCreated();
    if (View.Editor is ColumnsListEditor listEditor) {
        foreach (var column in listEditor.Columns) {
            column.ShowInCustomizationForm = false;
        }
    }
}


Simplified Chart, HTML Editor, and PDF Viewer Integration

With v25.1, we expect to reduce the amount of code needed to integrate popular UI elements such as Charts, HTML Editor, and PDF Viewer (you can check the current code required in our Outlook-Inspired Demo). We do expect to build XAF WinForms/WebForms module counterparts, because these DevExpress Blazor components are totally different, so it will not be possible to reuse cross-platform features such as common layout XML settings and other code sharing techniques.

For example, we want to ship a new Chart Property Editor, which will take a Razor file as input (with required graph layout and series settings). XAF Blazor will bind the underlying control to current View data automatically. For PDF Viewer and HTML Editor, we hope to implement seamless/codeless integrations, much like our Rich Text Property Editor (which can be bound to a string or byte array property).

EF Core Enhancements

Concurrency Control for EF Core

XAF WinForms/Blazor EFCore-based apps will support Optimistic Concurrency control (similar to existing XPO ORM functionality. It will support both object-level and field-level locking, as well as advanced collision resolution and data merging.

No breaking changes are expected for existing EF Core projects when using the DevExpress Project Converter (to handle all the database changes automatically). See Also: T1273764 - Core - Database and data model code changes for XAF EF Core apps to support the Optimistic Locking

Clone Object Module for EF Core

XAF WinForms/Blazor EFCore-based apps will support the Clone command (to quickly copy data records, including aggregated detail collections. We unified cloning functionality and APIs for both ORMs, so XAF developers can use a single DevExpress.ExpressApp.CloneObject package.

No breaking changes are expected for existing XPO-based projects when using the DevExpress Project Converter (to handle all naming-related changes automatically). See Also: T1276850 - Core - The DevExpress.ExpressApp.CloneObject.Xpo assembly and NuGet package have been renamed.

Easier Database Updates for EF Core

v25.1 will simplify database updates for EF Core developers (targeting XAF WinForms/Blazor or Web API Service-based apps). For instance, when you add a new business class or a property at design time, XAF will automatically apply EF Core migrations to the database in Debug mode (similar to XPO ORM functionality). This will save development time because no extra methods will be necessary, especially for frequent data model changes.

We will also get rid of the redundant DBUpdater tool for EF Core-based apps. EF Core developers will use the updateDatabase CLI command of the underlying application instead. This will simplify the developer experience for both deployment and maintenance because a single method will be used.

Simplified Connection Settings for EF Core

The Template Kit will include popular connection options like PostgreSQL, SQL Azure, MySQL, Oracle, and SQLite (instead of just Microsoft SQL Server previously). Once selected, the new XAF project will automatically include all required NuGet packages and database-specific API calls like UseNpgsql for the option.

This will simplify the first-time experience because XAF developers will no longer need to follow manual steps or know all specificities related to EF Core providers.

Easier Connection to Middle-Tier Server in Non-XAF Apps for EF Core

In v25.1, we will simplify boilerplate code required to connect to a secure Middle Tier API server in non XAF-powered WinForms/WPF apps (via XAF's Security System and EF Core).

In a Middle Tier server architecture, DbContext and other EF Core CRUD APIs are still used in UI client app code (which interacts with the server remotely). Only the server has direct access to the database. Before passing data to the client’s DbContext, the server enforces security measures such as authentication, authorization, and data validation.

Enhanced Filtering by Non-Persistent Fields for EF Core

FilterController (and other XAF APIs working with server-side criteria) will better process non-persistent business class properties in Client data access mode. Once non-persistent properties are detected in ListView criteria, we will fully process it on the client side.

Cross-Platform Enhancements

Outlook-Inspired Demo in the Installation

XAF's Outlook-Inspired Demo will make its way to our Unified Component Installer in our v25.1 release cycle. We will also implement additional functionality in this demo, including aforementioned EF Core enhancements and new built-in XAF Property/List Editors.

Built-in Property Editors: TagBox, Checked ComboBox, Progress Bar

XAF Blazor/WinForms v25.1 will include built-in Property Editors based on these components. They will support CRUD, Security System, common Application Model options (AllowEdit, AllowClear, etc.), DataSourceXXX attributes for filtering, ImmediatePostData, and more standard XAF features.

For example, TagBox and Checked ComboBox are two popular options to save space in detail forms for collection data (as an alternative to large data grids). Progress Bar in both list and detail forms can be used as an alternative to standard Integer Property Editors with additional validation rules.

XAF Blazor/WinForms v25.1 will also support the DataSourceXXX attributes for our Enumeration Property Editors. For example, you can filter your enumeration values with the DataSourceCriteria attribute and the following criteria: "Status != 0 and Status > 2", "Status In (0,1,2)", "Status != '@This.OtherSelectedStatus'", etc.

Project Template Enhancements

XAF Blazor + Middle Tier Security

Template Kit v25.1 will include a new project template where XAF Blazor is connected to the Middle Tier Security application server. Much like XAF WinForms, this configuration will help XAF developers deliver more secure solutions, because the web server will not have direct access to the application database.

This is important for certain customers where hosting the application database on the same machine with the web server (where an XAF Blazor app is running) is a no-go due to strict security requirements.

XAF Blazor + Electron.NET for Windows and macOS/Linux Desktop

The Template Kit will also include a new “hybrid” desktop app for Windows and macOS/Linux (powered by Electron.NET and XAF Blazor). An XAF Blazor app is wrapped inside a native “web view” container for the target OS and connected to our Middle Tier application server (or database directly, if allowed). When used, XAF developers can address both Windows and non-Windows support where WinForms and browser-based apps do not meet client needs.

For end-users, this hybrid desktop app will feel and behave (performance-wise) no differently than Microsoft Teams, Visual Studio Code, Outlook (new), and similar hybrid apps. Let me quote one of our customers who successfully used this approach:

I use XAF Blazor to have a desktop application for macOS indeed. It is an administrative application for one-person businesses. Because this application contains normally sensitive data, I don't want to host this data on servers where I am responsible for. So a good choice seems to run the application on a desktop. macOS users are growing in our country, so the Electron solution seems a good choice.

XAF Blazor and Web API Service + AntiForgery

XAF project template code (Startup.cs) will include Antiforgery services and middleware to mitigate potential Cross-Site Request Forgery (CSRF/XSRF) attacks. This will reduce implementation costs (when compared with manual implementation).

Multi-Tenancy Enhancements

With XAF v25.1, our Multi-Tenancy module will allow you to store custom data in a shared/hosted database (for both EF Core and XPO ORM). This will be helpful when storing currency, tax, and other global application settings. For XAF developers, it should dramatically simplify code because it will no longer be necessary to set up a separate Object Space Provider for the shared database manually.

Tenants will be able to read these shared data tables, but will be unable to modify data in them (or have associations with tenant data) - only service/host UI administrators will have full CRUD capabilities. XAF developers will also have access to standard and transparent IObjectSpace APIs to query shared data (including methods like CreateObjectSpace/CreateNonSecuredObjectSpace<T>(“YourTenantName“)).

Web API Service Enhancements

Our Backend Web API Service will introduce the following highly-requested usability features:

  • OData "Deep Insert" for XPO/EF Core and "Deep Update" for EF Core;
  • Concurrency Control for both EF Core and XPO ORM (currently "last wins");
  • OData Batch Operations (aka "Batch Update" support).

Your Feedback Matters

Just another reminder that our Roadmap v25.1 (below), What's New v24.2 (vote), and other surveys give you the opportunity to communicate your needs/concerns and allow us to make more informed development decisions.


Viewing all articles
Browse latest Browse all 149

Trending Articles