XPO - Miscellaneous Updates (v18.1)

In this blog post, I will cover a few XPO features that should simplify your development process.

XPO is available through Nuget.org

https://www.nuget.org/packages/DevExpress.Xpo/ - it is now there for anyone to use, free-of-charge.

We are a bit late with this announcement - a third-party reserved the XPO name in the past. So, skip the stats for versions earlier 18.1.3.

BTW, to avoid long legal proceedings with Nuget packages, consider Nuget's Package ID prefix reservation feature. We will be using it from now on;).


Nullable columns

Our core APIs now include properties that allow columns to accept Null values:

You can also use the ColumnDefaultValue, ColumnDbDefaultValue, Nullable, NullableBehavior attributes and specify the required behavior declaratively.

Refer to the following topics to learn more:

For the best experience, we recommend that you install these hot fixes:

  • T638325 - InvalidCastException is thrown when updating the database schema if a default column value is invalid;
  • T642096 - FormatException ("String was not recognized as a valid DateTime") occurs when a nullable datetime column uses an empty string as a default value.


Template Gallery integration

With this release, XPO item and project templates are available through the DevExpress Template Gallery. Select a required platform and look for the XPO group:

Previously, these items were available through the "Add New Item" and "Add New Project" dialogs only.


XPO + .NET Core DB Provider for SAP ASE = LOVE

If you would like to implement a custom XPO connection provider for AdoNetCore.AseClient, please refer to our published example on GitHub. This is another good example of XPO extensibility. 

Currently, XPO for .NET Core / .NET Standard 2.0 officially supports SQL Server, MySql, PostgreSQL, FireBird, SQLite and Oracle for .NET Core. As we noted in our introductory post, the lack of support for other providers is not a limitation of XPO - only a function of support from RDBMS vendors. Once these RDBMS vendors support .NET Standard 2.0, we will test XPO against these backend providers and will add them to our supported list once our internal qualification requirements have been met.


Your feedback is needed!

Which features did you like? Please let our team know in comments.

Love XPO and want to help us promote it? Add the package through Nuget.org instead of DevExpress Nuget!



  Yekaterina K.
  Technical writer
  XPO team

6 comment(s)

Keep up the great work!

Could you update the status on XPO.Core? If I remember correctly the roadmap stated v18.2 would be the RTM of XPO.Core while v18.1 is still in beta.

Is v18.1 stable enough to use it with SQLite in a Xamarin environment for production?

6 June, 2018

@Daniel: Thank you for your interest! Yes, v18.1 and even v17.2 are stable enough. Note that it is almost 99% port of XPO for the full .NET Framework.

We look forward to hearing from you once you have had an opportunity to use XPO for .NET Core in production. Hope our demos and tests at github.com/.../XpoNetCoreDemos will help you get started.

6 June, 2018

I do like XPO :-)

A missing feature is the support for MS SQL Datetimeoffset data type. But there is a solution by converting to and from string, even for XPO over WCF scenario.

6 June, 2018

@Peter: Thanks! Yes, we remember your Support Center ticket:-)

We also described this solution at documentation.devexpress.com/.../Data-Types-Supported-by-XPO

6 June, 2018

Please add support for spatial data, I hate to go back to EF just for this...

6 June, 2018

@Sigurd: Please let us know how the community.devexpress.com/.../xpo-sql-server-and-spatial-data-revisited.aspx solution works for you.

7 June, 2018

Please login or register to post comments.