.NET Core 3.0+ and .NET Standard 2.0 Support
- 3 minutes to read
Distribution
Install the DevExpress.Xpo NuGet package to add XPO assemblies to WinForms and WPF applications that target .NET Core 3.0+.
ASP.NET Core Support
Dependency Injection
XPO implements extension methods for the standard IServiceCollection interface to register XPO services for the ASP.NET Core pipeline. This follows best practices for the platform and enables automatic management of the Data Layer and Session life cycles.
Examples:
JSON Serialization
You can use XPO as a Data Access layer in an ASP.NET Core Web API service.
Example:
ASP.NET Core Web API CRUD Service
This example demonstrates how to implement an XPO-based REST service and use the Newtonsoft.Json library to serialize/deserialize XPO objects.
Tutorials
Documentation
- Getting Started with .NET Core - describes how to create an XPO-based console application with .NET Core 3.0+.
- Scaffold API Controllers and Views for DevExtreme-based controls
Tutorials on GitHub:
- How to Implement OData v4 Service with XPO (.NET Framework | .NET Core)
- OData v4 Service with XPO + XAF’s User Authentication and Group Authorization API
- Xamarin CRUD Application (Android, iOS)
ASP.NET Core and Blazor tutorials
These tutorials illustrate how to use the extension methods to register XPO services for the ASP.NET Core pipeline and use JSON to save and load data to/from the data source.
Limitations
Platform Limitations
.NET Core 3 misses a part of APIs that are present in the .NET Framework. Use the .NET Portability Analyzer tool to determine whether your application uses such APIs.
You can refactor your code to reduce the number of calls to missing APIs. Look for an alternative API with the required functionality.
Useful resource: .NET Framework technologies unavailable on .NET Core.
XPO for .NET Core 3 has the following limitations:
ImageValueConverter is not supported. Instead, change your image property type from
System.Drawing.Image
tobyte[]
as shown in the Delayed Loading topic.XpoDefault methods that allow you to create WCF data store clients from connection strings are not supported because dependencies to System.ServiceModel.Http and other NuGet packages were not added. For more information, refer to the WCF client in .NET Core Support Center ticket.
Certain features specific to database vendors are not supported. For example, the latest version of System.Data.SqlClient does not support SQL Server 2000.
Service classes listed in the Transferring Data using WCF Services topic are not supported in .NET Core 3.0+ and .NET Standard 2.0. You can connect client classes for these platforms to the service classes hosted in .NET Framework applications.
Design-Time Limitations
The following design-time features rely on IDE capabilities and are not available in .NET Core 3 projects developed in Visual Studio 2019.
- Design-time support for XPCollection and other data source components.
- ORM Data Model Designer and Wizard, Item and Project Templates, and LINQPad context driver.