XAF - Improved .NET 5 Support, EF Core, OAuth2-based Security and Other Solution Wizard Enhancements (v21.1)

XAF Team Blog
25 May 2021

As you may already know from our 2021 roadmap, we planned to simplify .NET 5 and Blazor development in v21.1 with XAF, our award-winning cross-platform application UI framework

XAF's Solution Wizard v21.1 enhancements include the following:

  • Notice the new DevExpress v21.1 XAF Template Gallery item instead of the old DevExpress v20.2 XAF Solution Wizard one (v21.1 includes multiple project templates to better distinguish between different application types).
  • Create solutions that combine WinForms and Blazor .NET 5 for Microsoft Entity Framework Core (EF Core) or DevExpress XPO ORM.
  • If you are already using EF Core, do not miss the Security System (role-based data access control) and Audit Trail (log and track data changes) functionality for your XAF or non-XAF .NET apps.

  • Add new .NET 5 Modules to an existing WinForms or Blazor solution.

  • Create a solution with OAuth identity providers without writing custom code.

  • Extend a security user class with additional properties.
  • Add Item Templates for XAF's .NET Core/.NET 5 projects (WinForms and Blazor) using the "Add DevExpress Item" menu.

We encourage our Entity Framework 6 (EF 6) users to consider Entity Framework Core (EF Core) for new XAF's Blazor and WinForms .NET Core projects.

Microsoft has moved EF 6 into maintenance mode, and as such, EF 6 will not mirror XAF's .NET Core offering. At present, EF Core supports key XAF technologies/capabilities including advanced security and comprehensive audit trail support. EF Core also offers better performance when compared to EF 6. For more information, see Porting from EF 6 to EF Core.

Future Plans for the Solution Wizard

First, I want to assure our existing .NET Framework XAF users (Windows Forms and ASP.NET Web Forms) that they are safe regardless of .NET Core/.NET 5 development - you can stay on .NET Framework as long as your business dictates. We will do our best to support you and address your needs along the way. 

XAF's Solution Wizard v21.2 will include one the following capabilities by the end of 2021:

  • A separate Web API backend service project (or extended Blazor project) with Swagger (OpenAPI). This should help XAF users reuse application data, logic and modules in Non-XAF apps (examples) much more easily. Many XAF customers have already created such backend services for their XAF production systems, for instance, Martin Praxmarer of PraKom for his mobile Xamarin companion app or this gentlemen on YouTube  - we simply want a "1-Click" solution for everyone using XAF's Solution Wizard.

  • A solution with unit/functional testing and CI/CD infrastructure for Azure DevOps (example).
  • A solution that targets a database per tenant for SaaS scenarios (example).
  • A solution with pre-built error diagnostics using Roslyn Analyzers. XAF/XPO users will see a detailed error report locally or make this "best practice" analysis a part of their CI system. For this, I collected more than 35+ common errors made by XAF/XPO users in their projects (also thanks to Alex Miller for his contribution). Common errors include missing INotifyPropertyChanged, XPO attributes on non-persistent classes, or unhandled unusable nodes.

  • Dependency Injection (DI) for security, modules and other WinForms .NET Core project configurations like in MAUI or XAF's ASP.NET Core Blazor Server (see the black screenshot above). As you may recall from our roadmap, we want to move away from Application and Module Designers - most XAF users do not use them and favor the Solution Wizard and simple code changes (confirmed by our roadmap survey). Note: please do not confuse these designers with the Model Editor - - the main XAF visual designer that is well-supported for .NET Core/.NET 5.

Your Feedback Matters

As always, we look forward to your feedback on these XAF enhancements and how we can better address your development needs going forward with the Solution Wizard.

Need Faster Support Replies?

Once you create a new XAF ticket in the DevExpress Support Center and select XAF under the Platform/Product field, please review the following help links displayed above the Submit button. These links describe how you can collect callstacks, logs and other important diagnostic information for any .NET error. Once you collect/compile this information, forward it to us along with your support ticket. This information will ensure faster and more accurate replies from support.

Daniel K.
I would like to see more examples of the EF Core Audit Trail Module outside of Blazor. 
25 May 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@Daniel K.: Thanks for your interest. I've created a Console App to log and track object changes with EF Core and our newest DevExpress.ExpressApp.AuditTrail.EFCore NuGet package. I would appreciate your feedback on our solution in this ticket and would also love to learn more about your auditing requirements.

27 May 2021
Chris Royle (LOB)
Chris Royle (LOBS)
A separate Web API backend service project (or extended Blazor project) with Swagger (OpenAPI). 

I like the sound of this Dennis.
28 May 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@Chris: cool!
28 May 2021
S. Wald
Sascha Wald
  • A solution that targets a database per tenant for SaaS scenarios (example).'

  • That will boost to absolutely new target audiences! Waiting for that, thank you!

6 June 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@Sascha Wald: At this stage, we are just talking about the automation of E1344-like implementations using the Solution Wizard. If your requirements are different, please email me at dennis@devexpress.com to elaborate on your database storage, security, performance, administrative UI, and other important SaaS requirements.

9 June 2021
Klaus Künzli 1
Klaus Künzli 1

I have a XAF ASP.NET Web Forms application. If I want to use .NET 5 I have to migrate my project to Blazor? 

What is the future of XAF ASP.NET Web Forms applications ? 

10 July 2021
Achmad Mulyadi
Achmad Mulyadi
I have just deployed a full XAF Blazor Server application to a linux server with MySQL as database server. So far so good, and for your info this was my old win XAF apps and successfully ported to XAF Blazor. It's not just a demo app, this is a full ERP application running on linux server on cloud now. I'm happy with with my new toy "XAF Blazor" so far, and eagerly waiting for the next update. Too bad we need to halt the implementation due to the pandemic, but hopefully we'll be back in a month or so.  
10 July 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)

@Klaus Künzli:
Our primary focus will be on XAF’s new Web & Mobile UI for Blazor. This notwithstanding, we will do our best to address the needs of existing WinForms and ASP.NET WebForms UI users. We will focus on making it easier to migrate existing .NET Framework apps to .NET 5 or use existing apps alongside new Blazor projects.

Microsoft does not support .NET Core/.NET 5+ for ASP.NET WebForms. You can use our .NET 5 migration-related documentation for Blazor and WinForms (such as onetwo). 

@Achmad Mulyadi: Thank you for letting us know!

15 July 2021

Please login or register to post comments.