XAF — Enhanced Navigation & Grid in Blazor, Audit Trail & Download Report / Media Data in Web API (v22.2)

XAF Team Blog
03 August 2022

If you followed our XAF plans for the first half of the year (v22.1), I hope you will agree that v22.1 was a meaningful release as we've implemented almost everything planned. In this post, I’ll discuss plans for our XAF v22.2 release. 

EDITXAF 2023 Roadmap Is Here

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.

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

As you may know from my recent post, everyone can (for free) create an OData v4 Web API Service with integrated authorization & CRUD operations with a few clicks using our Solution Wizard in v22.1. Yes, these basic capabilities are available free-of-charge. For more information, check out this overview video below. In addition, watch our video series where we built a mobile app (powered by .NET MAUI and DevExpress UI components) from scratch using EF Core and our Web API Service as a backend. 

v22.2 will extend Web API Service capabilities for active DevExpress Universal Subscribers only (in other words, the following features will not be free):

  • Download BLOB data stored in databases using service endpoints (aka File Attachments Module). With the api/MediaFiles/DownloadStream endpoint, you can download data from FileData, MediaDataObject, Image or byte array properties declared in your data models. Of course, this endpoint respects your security permissions. Available in v22.2. 

  • Download PDF from report templates and filtered data in databases using service endpoints (aka Reports Module). With the api/Reports/DownloadPDF endpoint, you can download data from the ReportDatav2 containers stored in your database. Each ReportDatav2 links to an XtraReport, and report data sources and data models that you designed in Visual Studio. You can pass a report container identifier, data source criteria, and other parameters just like you do with the SetupBeforePrint method in code. Of course, this endpoint respects your security permissions. Available in v22.2. 

  • Log database history changes using service endpoints (aka Audit Trail Module). No data changes made via your ORM in Web API endpoints will be unnoticed. You can view this log history in your RDBMS or XAF's administrative UI for WinForms, Blazor, or ASP.NET WebForms. Available in v22.2. 

  • If you are an active Universal subscriber (or planning to become one) and want to check the state of input data in our Web API Service with 10+ of built-in and unlimited custom validation rules (aka Validation Module), please contact us via the DevExpress Support Center or vote in this short survey. We will share our implementation considerations and even working samples for the current version. In other words, it is already possible to validate data using our Web API Service - we simply want to finalize this for production using your feedback.

ASP.NET Core Blazor UI

Enhanced Accordion & Tree-like Navigation

v22.1 ships with a new DevExpress Blazor Accordion component. XAF v22.2 we will integrate this component and support common control options (images, view variants, open items in separate browser tabs, etc). The final design will change a bit, but the following image should give you a sense of our implementation. Available in v22.2.

Inline Row Editing in the DxGridListEditor

We expect to enable inline row editing in our v22.2 release cycle (described here: Blazor Grid — Inline Row Editing (v22.1). We don’t think it makes much sense to support the edit form (popup or inplace) since it is not much different from XAF's built-in Detail View. Please share your project requirements if grid edit forms are a preferred data editing mechanism for your enterprise (you can submit your feedback via the DevExpress Support Center). Available in v22.2. 

Split View like Outlook (aka MasterDetailMode = ListViewAndDetailView)

This feature is available in XAF’s WinForms & WebForms UI. The ListView displays a DetailView for a focused record alongside the same window (called "Compact View" in Microsoft Outlook). XAF’s implementation will be driven by the release of the DevExpress Blazor Grid focused row option (expected in our v22.2 release cycle). In the meantime, you can consider this workaroundAvailable in v22.2.

Other Blazor Component Enhancements

Some of you may be asking - will XAF benefit from other enhancements expected in the DevExpress Blazor Grid (v22.2)? XAFers will get most of these features automatically (for instance, New Render & Size Mode Support), because XAF uses the same underlying Blazor components. Certain features will require us to write integration code:

  • Grid Export to Excel: we will extend our ExportController that includes Export To... Actions in List Views. Available in v22.2. 
  • Form Layout OnDemand mode (lazy tab loading): we will have to customize XAF's Blazor Layout Manager to load the content of View layout tabs when a user selects them. Available in v22.2. 

Chances are high that we will finish integration and testing of these features in v22.2 as many of them where prioritized based on XAF customer feedback.

Cross-Platform Enhancements

Entity Framework Core 6 for Data Access in WinForms, Blazor & Web API Services

Support for Entity Framework Core 6 (EF Core 6) is expected in our v22.2 release cycle. EF Core 6 is the latest version of Entity Framework and has a number of advantages over EF Core 5: https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-6.0/whatsnew. Unfortunately, Microsoft introduced a number of breaking changes that we will need to address. We may also automatically support EF 7 in 2022, because it is compatible with EF Core 6. Available in v22.2. 

New Database Connection Providers in XPO

We will keep XPO connection providers up to date with the latest database engines and extend support based on user feedback. Available in v22.2.

  • We will support the latest version of Microsoft SQL Server 2019 and 2022.

New Pre-Built Code & Project Error Diagnostics

We enabled XAF/XPO error diagnostics (shipped as part of the DevExpress.ExpressApp.CodeAnalysis NuGet package) in v22.2.3+ using the Project Converter (Breaking Change). We hope this will save you time in Visual Studio or validate your build quality using your CI/CD workflows. We also want to extend our default diagnostic set with the following:

  • Internal ShowViewStrategy.ShowView calls instead of the recommended ShowViewInPopupWindow, ShowMessage, or using Actions. Available in v22.2.
  • UI platform-dependent references in cross-platform projects or UI platform-dependent reference mixing (for instance, WinForms in ASP.NET projects).
  • Detect redundant NonPersistentAttribute for readonly properties (non-public or missing setters). Available in v22.2.
  • Detect redundant ExplicitLoadingAttribute for XPCollection properties. Available in v22.2.
  • Detect redundant IObjectSpaceLink in XPO classes (because there is already the Session property). Available in v22.2.
  • Detect redundant IXafEntityObject in XPO classes (because there are already the AfterConstruction, OnSaving, OnLoaded methods). Available in v22.2.
  • Incorrect XAF Controller instantiation like 'new DialogController()'; Available in v22.2.
  • Missing default/display properties for business classes.
  • Missing change notifications inside XPO data model properties (SetPropertyValue, OnChanged or INotifyPropertyChanged).
  • Avoid creating a new Session/UnitOfWork with parameterless constructors in XPO-based XAF projects. Available in v22.2.

Your Feedback Matters

Principal Product Manager

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.