To help us deliver the best possible features for the eXpress Persistent Objects (XPO) ORM library in 2020, please take a moment to review the list below and share your opinions with us.
Housekeeping
There are a number of housekeeping tasks that need to be completed during each release cycle. The following list summarizes our plans for 2020.
- Introduce support Visual Studio vNext, .NET 5 and C# 8.0 features like Nullable Reference Types (features that will affect every .NET developer in 2020).
- Keep XPO connection providers up to date with the latest database engines and extend support based on user feedback. We will also expand .NET Core connection provider support when more RDBMS vendors join the fray (for instance, we will support Microsoft.Data.SqlClient in the coming weeks).
- Introduce more demos and extend learning materials for the main platforms wherein XPO is used (see https://github.com/DevExpress/XPO/tree/master/Tutorials for more info in the coming months). Note: we will soon demonstrate CRUD XPO operations with the DevExpress WinForms MVVM library.
SQL Server "Always Encrypted"
We hope to refactor our core to introduce typed query parameters (for instance, null parameters with type information or additional information such as ping). This will help us support Always Encrypted - a very important feature for enterprise customers. Batch updates and operations on slow connections will also benefit from this refactoring.
Database Schema Migrations
We want a simpler process to incrementally update database schema and preserve existing data after changes are made to XPO’s data model (AS4684). At present, 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 this purpose. Our goal is to make this process better than that found in EF Core Migrations. Expect a Beta in v20.1 and a final release in v20.2.
Your Opinion Counts
We’d love to hear your thoughts on this proposed roadmap.
Q1. What is the ideal solution for XPO Database Schema Migrations? We are considering the following solutions:
- Update schema automatically via a special command in the ORM Data Model Designer or some CLI.
- Generate diffs between the latest data model and existing database schema so that you can apply the SQL script manually.
Q2. Is it difficult to implement and maintain JSON serialization (example) and OData (example) helpers in ASP.NET Core projects with XPO? We’ve thought about reducing boilerplate code for such projects with the help of the new DevExpress.Xpo.AspNetCore.Extensions assemblies (for various versions of ASP.NET Core). Unfortunately, this will increase our maintenance costs. We are also not certain whether this is a real issue in your current ASP.NET Core project. Your feedback/thoughts on this matter are much appreciated.