XPO ORM 2019 Roadmap – Your Vote Counts

18 December 2018

As we make our plans for 2019 we would love to get your feedback, help us determine the features you would like to see for the DevExpress eXpress Persistent Objects (XPO) ORM library.

EDIT: Here is our final roadmap: eXpress Persistent Objects – 2019 Roadmap.

Housekeeping

There are a number of housekeeping tasks that need to be carried out during every release cycle. The following outlines what we have planned for 2019.

  • Enhance our async/await method support and apply it to the underlying ADO.NET drivers where applicable (not all drivers provide async methods). Currently, asynchronous execution is implemented at the XPO layer and XPO connection providers use synchronous versions of IDbConnection, IDbCommand, IDataReader, and other ADO.NET APIs.
  • Support .NET Core 3.0 and .NET Standard 2.1 specification when they are officially released.
  • Test and expand .NET Core connection providers support as and when RDBMS vendors provide it.
  • Add support for Visual Studio 2019. We have identified updating and testing our extensions for Item and Project Templates (ORM Data Model Designer, Persistent Object, OData Service). There is currently some work scheduled for the minor update of v18.2.4, other tasks such as support for AsyncPackage will be completed with the official release of Visual Studio 2019.
  • Keep XPO connection providers up to date with the latest database engine versions and extend their support according to user feedback. This is a repetitive task that sees enhancements being made numerous times each release for example in 2018: one, two, three, four.
  • Introduce more demos and enhance the learning materials for the main platforms where XPO is used (WinForms, ASP.NET Core, ASP.NET WebForms, WPF, Xamarin).

These items along with fixing bugs and support will keep our team busy for approximately 5 months.

Your Vote Counts!

In addition to the above housekeeping we will focus on introducing some important features based on user feedback. The following list represents the most important items we have identified.

Feature Group #1

1.1. XPServerModeDataView and XPInstantFeedbackDataView are mixtures of XPServerCollectionSource/XPInstantFeedbackSource and XPView for use with our grids. These are new read-only server mode components offering:

  • Handle large data sources with less memory (no entire persistent object instance load);
  • Customize SELECT statements to exclude unused data columns;
  • Include reference property data in the root query to avoid the 1+N problem;
  • Include custom (virtual) properties calculated on the server side (similar to ViewProperty).

1.2. XPBindingSource is a lightweight data source for WinForms and WPF (runtime only) applications. This enhances usability in the following scenarios:

  • XPO data sources on visually inherited Windows forms and user controls (T121952);
  • Easy persistent object and collection reload (A643);
  • Immediate data-bound control refresh (T685021);
  • Binding to nullable properties (S33566) and object references without complex or full custom property descriptors (T319505).

Feature Group #2

2.1. First class support for custom database column types beyond the default set. Initially, users will still need to create custom connection providers, but generic APIs will make this extension much easier. Once the new infrastructure is established, we will consider built-in support for Microsoft SQL Server datetimeoffset, datetime2, spatial and other popular database types.

2.2. Various ORM Data Model Designer enhancements:

  • Detect use in XAF projects and automatically enable DevExpress.Persistent.BaseImpl.BaseObject in the base class selector (T686856);
  • Optionally generate XAF RuleRequiredField, RuleValueComparison or RuleCriteria validation attributes based on NOT NULL and size of underlying database columns (S172157);
  • Remove ambiguity between the connection string users specify in the XPO designer, its ConnectionHelper class and XAF data store settings (T686307);
  • Generate plain XPO data model code without the visual designer (ORMDataModel.xpo). We are thinking of a new wizard option or even some CLI for this.
  • Handle the "Could not load type Npgsql.NpgsqlConnection" and similar errors due to improperly installed database providers better.

Feature Group #3

XPO Migrations: a simpler process to incrementally update the database schema and preserve existing data after XPO data model changes (AS4684). Currently we handle initial database creation and schema tuning along with basic data model changes only (create tables and columns for new classes and properties). For more complex sync tasks, developers need to create database scripts or specialized helper methods. For instance, XAF's ModuleUpdater ships with the DropColumn, RenameTable, DropConstraint and other APIs for Microsoft SQL Server for that purpose. Our goal is to make this process easier and more efficient than that of our main competitor (EF Core Migrations).

If you vote for this feature, please tell us your requirements:

A) update schema automatically via a special command in the ORM Data Model Designer or some CLI;
or
B) generate diffs between the latest data model and existing database schema so that you can apply the SQL script manually.

Please note, this feature may be optimistic due to the size of the work required and the fact that we support more than 14 database engines.

Your Feedback Is Needed!

The above features have been intentionally grouped into three choices, each estimated approximately 5 months to research, implement, test and document.

As always we welcome your comments and specific usage-scenarios, the more you share, the better we can understand your business needs now and into the future.

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

18 comment(s)
HICHAM SBAGHI

I hope for devexpress in 2019 asp mvc:

1-facebook red notification and facebook menu.

2- Xp theme : royal blue,olive,metallic

3- supertooltip like facebook with image,database,theme....

4-Report and dashbord server with 15 cals inclued in UNIVERSAL SUBSCRIPTION.

THANK YOU AND HAPPY CRISTMAS

18 December, 2018
Martin Pelletier

If I may add, would be cool to have some WPF or Winform Scaffolding wizard that would create the necessary code files if we choose XPO instead of EF.

By the way, I would have chosen the 3 options ;)

18 December, 2018
Kiryl Y.

Option 1 is my choice. Please add 2.1 if possible.

Thank you

18 December, 2018
Nate Laff

1 but also 2.1

18 December, 2018
Manuel Grundner [DevExpress MVP]

1!

2 wouldn't be nice, but as you mentioned, it is already possible for users Them self today.

3 would be cool, and increase devs productivity.

1 on the Otherhand is getting value directly into the end Users hand!!

I Tried to implement 1 my self, and failed miserably 😅

Greetings,

Manuel

18 December, 2018
Neven

Regarding demos in Housekeeping, please provide MVVM demo with XPO.

19 December, 2018
Gustavo Marzioni

my vote to 1)

19 December, 2018
Clinton Dale

Thank you for asking us!  For custom data types over SQL Server, I like to use Date rather than DateTime, and I've had trouble making a custom one.

19 December, 2018
Eric Upton 1

I definitely vote for 1.

If possible, also include 2.1

19 December, 2018
jerome crevecoeur

Vote 1

19 December, 2018
renejdm

My vote for Group #3 - XPO Migrations

19 December, 2018
Norbert Kustra

Vote 1

20 December, 2018
Dusan Pupis

1. *****

2.1 ***

20 December, 2018
Nicolas Zaragoza 2

My vote for group #1

9 January, 2019
Dennis (DevExpress Support)

Thank you for your feedback!

9 January, 2019
SUDIANSYAH NOVI

Vote no 1

13 January, 2019
SUDIANSYAH NOVI

Vote no 1

13 January, 2019
Miro Mz

vote 1 but also 2.1

24 January, 2019

Please login or register to post comments.