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:
- the NullableBehavior property in the XpoDefault, XPDictionary, XPClassInfo classes;
- the IsNullable property in the XPMemberInfo class.
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