XPO for .NET Core (.NET Standard 2.0, Beta in v17.2)

08 November 2017

Ever since .NET Core was first released, we have had requests to support XPO, our object/relational mapping solution, on the platform. Today I can finally announce that support is available – .NET Standard 2.0 made it possible!

Getting started

We have added a special page for .NET Core to our product documentation, which you can find by following this link. You’ll see that XPO can be added to your project as a NuGet package with a simple command:

dotnet add package DevExpress.Xpo -v 17.2.2-beta -s https://nuget.devexpress.com/early-access/api

The special URL you see, with early-access in it, can be used by all during the current beta phase. If you have a personal key for our NuGet repository (all about that here), you can replace the early-access part with that key, or omit the -s parameter entirely if you have NuGet configured already on your system.

Once the package is installed, I recommend you have a look at the special .NET Standard 2.0 demos we have created. Of course the XPO API remains the same! You can apply all the information from our tutorials and examples, and even the overview I gave in my XPO webinar still applies for most of its content.

On November 21st, we offer a webinar about XPO on .NET Core. Here’s our list of webinars, where you can sign up for this event.


Even though .NET Standard 2.0 has come a long way and added lots of APIs that were previously missing from .NET Core, there are still a few pieces of XPO functionality that aren’t supported due to platform restrictions. Here’s a list that I believe to be complete at this time:

1 – Providers: The full list of XPO supported database systems will be updated soon. At this time, XPO on .NET Core supports SQL Server, MySql, PostgreSQL and SQLite. Note that this is not really an XPO limitation – as soon as RDBMS vendors begin supporting .NET Standard 2.0, we will test XPO with those RDBMS providers and add them to our supported list.

2 – OData: OData Services are not supported because our existing implementation relies on the Microsoft.Data.Services library, which only supports the .NET Framework.

3 – The WCF based IDataStore implementations DataStoreService and CachedDataStoreService are technically available, but you won’t be able to run an application that uses them on .NET Core because it lacks the ServiceHost class. However, the related DataStoreClient and CachedDataStoreClient can be used, for instance in a Xamarin app, to access XPO services hosted on full .NET.

4 –  The visual designer should not be used at this time, because it adds references to “standard” XPO into your project. Of course it is possible to use designer-generated classes, for instance by copying them from another project.
NOTE: This limitation exists only in v17.2.2. Version 17.2.3+ already supports the visual designer in .NET Standard 2.0 projects. 

Try it!

If you use .NET Core, or consider doing so, please give XPO a spin! We are very interested in your feedback or questions!

Finally, we are still interested in feedback through our survey about ORM and .NET Core!

13 comment(s)
Eric Upton 1

This is great news!

8 November, 2017
Franco Bonacchi


8 November, 2017


8 November, 2017

Please add VistaDB soon.

8 November, 2017
Dennis (DevExpress Support)

@renejdm: We have informed Gibraltar of your request. I must make it clear, though, that this does not depend on XPO much and this is not really an XPO 'limitation'.

You may also want to contact VistaDB (or any other provider) directly for this: vistadbsupport.gibraltarsoftware.com/.../4000331302 

Once more RDBMS vendors support .NET Standard 2.0, it will not be long for XPO to be tested against them and claim their support, of course, if the vendors do not rewrite everything in their .NET connectors:-)

8 November, 2017

Thanks for your comment Dennis and thanks for the link. Also, thanks for informing Gibraltar.

8 November, 2017
Manuel Grundner [DevExpress MVP]

Awesome work guys!

9 November, 2017
Michael Proctor [DX-Squad]

Hi Guys,

Amazing job, I have just accepted a full time role to come back into development full time. As part of this is bringing our XPO WCF service up to current standard. The ability to use XPO objects within Xamarin will be a massive advantage to this rewrite.

Obviously it is a beta, and I am sure there will be teething issues while the .NET Standard functions are mapped to current API implementations but it is great to see XPO not being left behind.

I think it will be time to restart my blog, yet again ;)

15 November, 2017
Dennis (DevExpress Support)

Welcome back, Michael!

15 November, 2017

when xpo for net.core will suport DB2 database ?

13 November, 2018
Dennis (DevExpress Support)

@Debeściak: Thank you for your interest. We are researching its support in XPO. I cannot promise you any time frames for now, but once we have any news, we will announce them in our team blog.

15 November, 2018
XPO Team Blog

Manage data in Windows projects, ASP.NET Core websites running on MacOS or Linux, or Mobile apps built with Xamarin or UWP

19 April, 2019
XPO Team Blog

Many times, customers have asked us how we use XPO – or if we even do it at all. We decided to sit down with developers working on and with XPO and conduct an interview, with the goal of answering the most common questions. The result makes for an interesting

19 April, 2019

Please login or register to post comments.