As always, thank you for choosing XAF. We appreciate your support. This blog post outlines some of our XAF-related development plans for the second half of 2024 (v24.2). Strategically, our goal is to focus on performance, overall stability/usability in this release cycle.
If you have not heard of XAF before, XAF is a .NET application framework that helps you build powerful Office-inspired line-of-business apps with DevExpress Blazor and WinForms UI components (using Entity Framework or XPO ORM). Feel free to review XAF demos and compare XAF with other software development methodologies here.
When new users try unique XAF Blazor features live in our XAF Blazor demo (especially Tabbed MDI or runtime layout customizations), they often ask whether it is a WinForms app (or if they are familiar with XAF, they cannot believe how much XAF Blazor apps and DevExpress Blazor Components have progressed over the last couple of years).
Core/Cross-Platform
Enhancements within this category (for example, performance or security) apply to XAF/WinForms UI, Web API Service, and to WebForms (.NET Framework).
.NET Core Enhancements
We will introduce .NET 9 support for XAF Blazor/WinForms UI v24.2 and our Web API Service v24.2 (after November 2024). We will also support the latest .NET 9 previews for v24.1 (for early adopters to test).
.NET 8, .NET Framework 4.6.2, Visual Studio 2019 will be minimally supported versions for DevExpress libraries moving forward (v24.2+). Learn more about this global change in the following announcement.
- With v24.2, we will improve integration with Microsoft's .NET Upgrade Assistant Tool. This change will simplify migration from .NET Framework to .NET. We expect to offer predefined mappings for appropriate DevExpress packages.
- We expect to support XAF project and item templates for VS Code and Rider (potentially) as part of the cross-platform DevExpress Template Gallery (our CLI-based templates will be used under the hood).
Source Code Builder Enhancements
We will simplify the steps needed to rebuild assemblies from source code in our v24.2 release cycle:
- Our source builder tool will ship in the DevExpress Unified Component Installer.
- Our source builder tool will be more stable (we added more internal tests for the rebuild process on our build farm) and will require fewer steps to initiate/complete source rebuild.
- It will be easier to rebuild .NET Core/.NET projects (currently, it is a manual process) and generate corresponding NuGet packages (including localization packages).
EF Core ORM Enhancements
- We will add EF Core 9 ORM support for XAF Blazor/WinForms UI and Web API Service.
- We will introduce ServerView and InstantFeedbackView data access modes for ListView, at least at the core level (additional integration for XAF Blazor/WinForms UI may be pursued in future versions).
- We will implement a simpler solution for server-side calculated fields in EF Core (aka XPO's PersistentAliasAttribute).
- We will support soft deletion for EF Core (aka XPO's Deferred Deletion).
XPO ORM Enhancements
We will support the latest versions of database drivers/connectors for PostreSQL, Oracle, and My SQL (and SQL Server 2024, should it be released).
We will support DateOnly/TimeOnly in XPO connection providers for .NET apps (this enhancement will benefit XAF/Reporting/Dashboards and other products since XPO is at the core of data access code internally).
Security Enhancements
- We will simplify the following user management tasks for XAF-powered Blazor apps: MFA, Forgot Password, and potentially Sign Up.
- We will enhance our built-in Tenant Resolvers (a part of our Multi-Tenancy module) so they work more effectively with OAuth2 providers such as Google or Microsoft Entra ID (example).
- We will enhance XAF Blazor and Web API Service project templates to enable angiforgery protection by default. Even though CSRF tokens aren't involved in the server-side Blazor circuit by default, our customers can add custom code to XAF Blazor apps where CSRF will make sense (for instance, complex client-side code, which can consume external web services).
Performance Enhancements
We will refactor our internal code to use CriteriaCompiler instead of ExpressionEvaluator by default (wherever possible). This should enhance performance in certain implementation scenarios (Security System, Object Space, etc).
We expect to modify default indices for Audit Trail business classes and enhance read performance for specific usage scenarios.
- We expect to optimize Notifications Module performance when an app includes multiple scheduler appointments.
ASP.NET Core Blazor UI
We expect to release the following XAF Blazor UI features/capabilities in our v24.2 release cycle (December 2024).
List and Property Editor Enhancements
- XAF Blazor UI will include a built-in TreeListEditor (powered by the DevExpress Blazor TreeList).
- We will support storage of HTML-formatted documents within the Rich Text Property Editor (learn more).
- We want to support DataSourceXXX attributes for Enumeration Property Editors (much like the attributes available for Lookup and Link List Views).
Error Handling Enhancements
- We will extend XAF's Blazor error handling engine (to closely mirror XAF WinForms/WebForms counterparts): non-critical exceptions will not crash the entire app and redirect to an error page but will instead be isolated in regions or notification messages. We hope to leverage ASP.NET Error Boundaries to address our requirements.
- We hope to output more useful error information to developers during debug/development (currently, it requires using web browser tools - F12).
Performance Enhancements
- We will optimize page rendering for a variety of common Blazor-specific usage scenarios (logon form, grid, and main menu toolbar rendering, etc.).
- We hope to optimize tab close operations when Tabbed MDI is enabled (to avoid execution of unnecessary logic when disposing off related Views).
- We will support ServerView and InstantFeedbackView data access modes for ListView with EF Core, at least at the core level (additional integration for XAF Blazor UI and DxGridListEditor with EF Core and XPO may be pursued in future versions).
Usability Enhancements
- We will introduce tab context menus (Close, Close All But This, Close All), middle-mouse click, and potentially other usability enhancements.
We will add VisibleInCustomizationForm or similar attributes in the Application Model to hide certain properties or fields from ListView and DetailView customization forms much (without the need for manual code-based solutions).
We hope to make it easier for end-users to add/remove tabs during DetailView layout customization at runtime (this is a quite complicated task, which we researched in the past, but we want to give it another try).
Deployment Enhancements
We will publish a few examples and demonstrate how .NET Aspire can simplify development/deployment of XAF Blazor and Web API Service-based apps, especially for non-Windows production environments.
Our ultimate goal is to fully automate manual steps documented in the following help topics: Deploy an ASP.NET Core Blazor Server Application to Azure App Service | Deploy an ASP.NET Core Blazor Server Application to Linux with Nginx.
And Much More in Blazor Components...
For even more enhancements in XAF Blazor UI, please check out Blazor — Year-End Roadmap (v24.2) - many of these component features (not all) will be available in XAF Blazor automatically.
Your Feedback Matters
Your response to the following questions will help us refine plans for our next major release:
If you have yet to review the features/capabilities introduced in our most recent major update (v24.1), please visit the following webpage and let us know what you think of this release by responding to our online XAF v24.1 survey.Thanks,
Dennis Garavsky
Principal Product Manager
dennis@devexpress.com