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

XAF Team Blog
09 February 2023

UPDATE: XAF v23.2 Roadmap

The following list outlines features/capabilities we expect ship for both XAF’s Cross-Platform .NET App UI (XAF) and the DevExpress .NET App Security & Web API Service (by June 2023). We will outline plans for our second major release (v23.2) in July. Please also do not miss our early access previews (EAP) below: XAF v23.1 EAP — Runtime Customization, No Code and Usability Enhancements for Blazor UI.

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.

ASP.NET Core Blazor UI

We expect to release the following XAF Blazor UI features/capabilities in our v23.1 release cycle (June 2023):

Scheduler Module

To support this new module, we will integrate the DevExpress Blazor Scheduler control (DxScheduler) within XAF’s Blazor UI. This module will allow XAF developers to display/manage XAF Event and Resource business objects within a calendar. Available in v23.1.

Note: If you require scheduler-related functionality in your XAF-powered Blazor app today, you can implement a custom List Editor based on the DevExpress Blazor Scheduler control (
example).


Filter Editor

We will integrate a JavaScript-based filter control from our Web Reporting/Dashboard product line into XAF's DxGridListEditor and CriteriaPropertyEditor. This new feature will support popular criteria language options (based on scalar/value type properties like strings, numbers, etc.). XPO Upcasting, Free Joins, or syntax references and enumerations will not be available (unfortunately, the underlying UI control does not offer these capabilities). Available in v23.1.

Grid List Editor

We expect to support the following Application Model properties for the ListView node within the Model Editor such as IsFooterVisible, Filter, and many others. Please review the examples below. Available in v23.1. 

PreviewColumnName

ShowFindPanel

XAF will also automatically support column header filters once this capability is introduced in the underlying Blazor Grid control. For more information, see Blazor v23.1 — June 2023 Roadmap. Available in v23.1.

Property Editors

Our new Color Property Editor will allow you to customize scheduler resources. We also want to support icons in the Enumeration and Boolean Property Editors - this is helpful to distinguish various event states, priorities, and mode. Available in v23.1.

Main Menu Toolbar

We expect to improve usability for important CRUD operations within XAF’s Blazor UI (creating and saving new records). We want to remove New Action from the root DetailView and ListView. Nested ListView toolbars must preserve New Action, as its necessary to add new child records to the aggregated collection. You can vote for your favorite option in the comments section of this SC ticketAvailable in v23.1. 

We will also add Save & New and Save & Close Actions to the root and popup DetailView (like XAF WinForms/WebForms counterparts). Available in v23.1.  

Finally, we will add Next Record/Previous Record Actions to help improve navigation (a part of the RecordsNavigationController and "Tools" Action Containers in the top right corner. Available in v23.1.  

Image Pack

We will introduce colored icon support within the main menu toolbar (instead of dark images used today). We will either reuse existing XAF WinForms SVG images or create a new image set from scratch. We will also improve the image picker in the Model Editor and migrate our XAF Blazor image set to the DevExpress.Images library. Finally, we will also support icons in layout tab groups and the view header (much like XAF WinForms/WebForms counterparts). Available in v23.1.  

Form Layout End-User Customization

Thanks to its rich set of runtime UI customization options (for developers and end-users alike), XAF's WinForms UI allows you to address changes in business requirements without the need for redeployment. We expect to introduce similar capabilities to XAF’s Blazor UI. Available in v23.1.  


Form Layout Customization API

We expect to add necessary APIs to access XAF Blazor’s Layout Manager, our DxFormLayout control, and to programmatically customize layout groups and items (again, similar to what’s currently available in WinForms/WebForms). Available in v23.1.

Cross-Platform Enhancements

Before I move onto cross-platform enhancements, a quick reminder…XAF is fully extendable framework/constructor. You can incorporate Blazor and DevExtreme UI components, and by extension, customize XAF’s default UI today: More customization tips | Blazor UI (FAQ).

Entity Framework

We expect to introduce Entity Framework Core 7 (EF Core 7) support in our v23.1 release cycle. EF Core 7 is the latest version of Entity Framework. While EF Core 7 offers numerous advantages over its predecessor (performance and customization included), it also introduced a series of breaking changes that we will need to address. Available in v23.1.

Security

We expect to support Middle Tier Security for EF Core 7 (for WinForms and non-XAF apps). As part of this effort, we hope to ship a new DbContext type and allow you to secure remote connections to a data store from .NET clients. This capability is especially helpful when developing mobile .NET MAUI and Blazor WebAssembly client apps (which cannot have direct database connections due to security considerations).  Available in v23.1

Application Builders

We will enhance our Application Builders API to address advanced usage scenarios such as integrating a custom connection provider, customizing existing Object Space Providers, etc.

Dependency Injection

We will enhance Dependency Injection (DI) support in XAF Blazor/WinForms and our Web API Service. With this addition, you will be able to inject arbitrary services into XAF Controllers and business classes; WinForms apps will also have access to IServiceProvider – much like ASP.NET Core Blazor apps. These DI capabilities should greatly simplify many customer customizations, because they will be available in a cross-platform module. Available in v23.1.

EF Core:

// ObjectSpace in EF Core classes now has the ServiceProvider property.
public class Task : BaseObject { 
    public virtual ApplicationUser? CreatedBy { get; set; } 
    public override void OnCreated() { 
        base.OnCreated(); 
        var security = ObjectSpace.ServiceProvider.GetRequiredService<ISecurityStrategyBase>(); 
        CreatedBy = ObjectSpace.GetObjectByKey<ApplicationUser>(((ApplicationUser)security.User).ID); 
    }
} 

XPO:

      // Session in XPO classes now has the ServiceProvider property.  
      public override void AfterConstruction() {
            base.AfterConstruction();
            var security = Session.ServiceProvider.GetRequiredService<ISecurityStrategyBase>();
            CreatedBy = Session.GetObjectByKey<ApplicationUser>(((ApplicationUser)security.User).Oid);
        }

XAF Controller:

using Microsoft.Extensions.DependencyInjection;

namespace MainDemo.Module.Controllers;

public class TaskActionsController : ObjectViewController<ObjectView, DemoTask> {
    public TaskActionsController() {
        new SimpleAction(this, "My Top Right Corner Action", "QuickAccess");
    }
    [ActivatorUtilitiesConstructor]
    public TaskActionsController(ITaskActionsService taskActionsService) : this() {
        TaskActionsService = taskActionsService;
    }
    protected ITaskActionsService TaskActionsService { get; }
}

Code Diagnostics

We expect to add 5-10 new automatic Code Diagnostics. We hope this will save you time in Visual Studio or validate build quality using your CI/CD workflows. If you have not yet enabled these pre-built code & project error diagnostics, we strongly recommend that you do so for your .NET 6 projects.

Multi-Tenancy Module (CTP)

We will simplify the creation of multi-tenant or SaaS XAF Blazor apps (and may introduce the same for XAF WinForms should user demand exist) that target a single database or a database per tenant (example #1example #2). We hope to make this possible with a few declarative lines of code and a new reusable module (instead of writing hundreds of lines of code). Please also review our SaaS-related survey below. Available in v23.1. 

Web API Services for XAF & Non-XAF UI Clients (Powered by EF Core & XPO ORM)

As you may already know, we officially released our Web API Service in 2022. Our first release included FREE basic CRUD functionality. Our second release introduced many highly-requested paid features in v22.2 (including audit trail, validation, reporting, file attachments, localization, and non-persistent object support). To learn more about our Web API Service and determine whether it can be of value within your organization, please review the following blog post: Common Questions about the New DevExpress Web API Service (powered by Entity Framework and XPO ORM)

v23.1 will be a service release for our Web API Service (we need to catch up with documentation and usage example updates). This notwithstanding, we will implement the following popular requests from our customers:

Your Feedback Matters

Thanks,
Dennis Garavsky

Principal Product Manager
dennis@devexpress.com

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.