XPO ORM – It’s Free and Will Remain Free
A quick reminder: XPO ORM is available free-of-charge. To obtain your free copy, point your browser to: https://www.nuget.org/packages/DevExpress.Xpo (and feel free to share this link with friends/colleagues).
Before I describe our near-term plans for XPO ORM, I’d like to quickly mention a few enhancements of note for the ever-evolving .NET world:
- CriteriaOperator.FromLambda (for LINQ-like criteria syntax)
- XPO Dependency Injection Extensions (for ASP.NET Core)
- An ASP.NET Core Web API CRUD Service (for WebAssembly & Xamarin/MAUI development & System.Text.Json Support)
As you probably know, XPO is available for use across all major .NET UI platforms including WinForms, WPF, ASP.NET, Xamarin, MAUI, and XAF (GitHub tutorials).
XPO is also at the core of many commercial DevExpress products including BI Dashboard, DevExpress Reports, XAF and its security module.
Visual Studio 2022 Support for the ORM Data Model Designer Coming Soon (in v21.2.4)
As you may already know from our recent announcement, we will support XPO's Data Model Designer in v21.2.4 (we awaited stable versions of the Modeling SDK and other tooling - available in the official Visual Studio 2022 release). In the meantime, you can:
- continue to use design-time functionality in Visual Studio 2019;
- reuse our prebuilt CodeRush templates in Visual Studio 2022 to quickly generate your XPO data model in code.
.NET 6 Support
XPO already supports .NET 6 (because XPO assemblies target .NET Standard 2.0). Many users have successfully incorporated XPO in their .NET 6 projects already - please let us know if you encounter any issues in this regard.
1-Click Solution to Create Secure OData v4 API Services from an XPO Data Model
Problem
As I noted above, XPO includes APIs to generate CRUD or OData v4 services (powered by ASP.NET Core Web API). These services, however, do not include any data protection or authorization functionality by default. Authorization and authentication need to be implemented on their own (just like with any other .NET ORM, including Entity Framework).
But let's be honest: for most (myself included), creating a robust security system is a serious and costly undertaking. This is especially true if your enterprise requires field-tested Role-Based Access Control (RBAC) and advanced authentication based on JWT + OAuth2 for Azure AD. Yes, too many acronyms and SDK to master, too many `principals`, `access tokens`, and `claims` to remember (brrr…my apologies to ASP.NET Core Identity creators and experts, but I personally hate this complexity. If people reading this are the same down-to-earth .NET developers like I am, please add "+1" in the comments section below).
A long-term customer and MVP, Joche Ojeda, explained the complexity problem much better than I can:
One of the things I ask my customers is 'do you really want to develop a security system from scratch?' Experience tells me that when someone really wants to build a security system from scratch, it is because they have never had to build one before. Fact is that if you have built a security system from scratch, you'll definitely want to avoid it.
Solution
XAF's Solution Wizard v21.2 includes a "1-Click" solution to create ASP.NET Core Web/HTTP API services (via OData v4 and Swagger/OpenAPI). This service allows developers to reuse ORM-based application data, logic, and modules (like CRUD, security authorization and authentication) within non-XAF apps. You can use OAuth2, JWT or custom strategies for authentication and tools like Postman or Swagger for API testing.
How It Works
To test this automatic API scaffolding, XPO users can:
1. Register a free offer at https://www.devexpress.com/security-api-free. When you register for a free DevExpress product, you can use your registered product for as long as your needs dictate. Should an update be made available free-of-charge, you will be notified via email or this website. Updates that are issued free-of-charge can also be used indefinitely.
2.Download and run the DevExpress Unified Component Installer to register XAF's Solution Wizard within Visual Studio 2019 (Visual Studio 2022 support will be available soon - v21.2.4+);
3. Create a new application with the Web API using XAF's Solution Wizard, and register your XPO classes for interoperability needs. Run the service and it will display the Swagger UI for API testing automatically.
Future Plans
- Our Web API Service project template (for XPO users) ships as a preview in v21.2. We plan to officially release this functionality for XPO in May, 2022 (v22.1). The next major version (v22.2) should also support EF Core 6 for data access. Finally, we expect to support new .NET 6-related features and optimize assembly dependencies in 2022.
- We also want to publish this Web API Service template as VSIX in Visual Studio Marketplace for everyone who registered for our free offer (we will eliminate the need to download and run the DevExpress Unified Component Installer).
- We will keep XPO connection providers up to date with the latest database engine versions (Oracle, SQL Server, MySQL, PostreSQL, Firebird, etc.) and extend support based on user feedback. We will also expand XPO connection provider support with SAP HANA.
Your Feedback Matters
Thank you for your continued support and your commitment to XPO. Feel free to post your thoughts/comments below and let us know what you think of XPO and where you’d like to see us take XPO in 2022.