Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EF Core 2.2 Roadmap #308

Open
divega opened this issue Jun 25, 2018 · 1 comment
Open

EF Core 2.2 Roadmap #308

divega opened this issue Jun 25, 2018 · 1 comment

Comments

@divega
Copy link

divega commented Jun 25, 2018

EF Core 2.2 is a small release

Unlike EF Core 2.1, the 2.2 release will include a small number of new features. We are concentrating most of our efforts to add new functionality on the 3.0 release. Still, you can expect 2.2 to include lots of bugs fixes, community contributions and small improvements.

You can access the list of issues currently assigned to the 2.2 milestone using this query on our issue tracking system.

Schedule

The schedule of EF Core 2.2 will align with the schedule of .NET Core and ASP.NET Core 2.2. See the ASP.NET Core 2.2 Roadmap announcement.

Our current plan is to have three previews before we ship RTM near the end of 2018:

  • August – Preview 1
  • September - Preview 2
  • October - Preview 3
  • Before end-of-year – RTM

As usual, this post reflects our current plan, but things may change as we make progress.

New features

Reverse engineering of database views into query types (This feature was postponed. See update at #308 (comment))

In EF Core 2.1 we added query types, which allow mapping .NET objects to views and tables without keys. In 2.2, we plan to leverage this new capability to automatically map existing database views to query types.

You can track the progress of this at dotnet/efcore#1679.

Support for collections of owned entities

In EF Core 2.0 we added the concept of owned entity types, which allows modeling ownership relationship that are common between entities that are part of the same document in document-oriented databases or the same aggregate if you use Domain-Driven Design concepts in your model.

Until now, we only support reference navigation properties to owned entities. In EF Core 2.2, we plan to enhance this functionality to map collection navigation properties to owned entities.

You can track the progress of this at dotnet/efcore#8172.

Other work

There are some additional work items that are not strictly EF Core 2.2 features, but we still track as part of the 2.2 milestone because we are doing the work in the same timeframe:

Cosmos DB provider

A lot of our efforts are going into productizing an EF Core provider for the SQL API in Cosmos DB.
We have already created a prototype, which we have shown in demos such as in this this EF Core 2.1 talk we did at the Microsoft Build conference.

Due to competing priorities, releasing a preview of this provider has taken more than what we originally planned, but we are working on it now, and the current plan is to release a stable version by the end of this calendar year.

You can track our progress on this issue: dotnet/efcore#12086.

Preview of spatial support for SQL Server

We are also focusing on adding spatial support as an extension to the SQL Server provider for EF Core.
Note that the PostgreSQL provider (Npgsql) already added support in EF Core 2.1. Beside implementing this functionality for SQL Server, we are working closely with the developers of Npgsql to try to achieve a consistent and hopefully improved experience across providers.

Note that we aren't committing to having a final version of the spatial support for the end of the current calendar year. But we are actively working on this now, and as we make progress, we should be able to provide a more precise estimate.

You can track our progress on this issue: dotnet/efcore#1100.

Improve test coverage for LINQ and reduce query regressions in future releases

In the last few releases, we have seen that when we commit improvements to our LINQ implementation, we often break queries that were previously working. The main challenge is that LINQ defines a huge space of possible queries to test, and it is very complex to measure what level of test coverage we have, even for a specific query operator. In the 2.2 timeframe, we will be investing on improving test coverage for this huge space. We also plan to experiment with new approaches to add appropriate coverage, and to reduce the likelihood of introducing regressions in future releases.

You can track our progress on this at dotnet/efcore#12046.

For discussion on this roadmap, please use dotnet/efcore#12465.

@aspnet aspnet locked and limited conversation to collaborators Jun 25, 2018
@divega divega added this to the 2.2.0 milestone Jun 25, 2018
@divega
Copy link
Author

divega commented Oct 23, 2018

We recently released EF Core 2.2 Preview 3. See the complete announcement on the .NET Blog.

Preview 3 is going to be the last milestone before EF Core 2.2 RTM

So now is your last chance to try the bits and give us feedback if you want to have an impact on the quality and the shape of the APIs in this release.

Besides playing with spatial support, you can help by trying EF Core 2.2 preview 3 on applications that are using third party providers. Although we now have our own testing for this, there might be unforeseen compatibility problems, and the earlier we can detect them, the higher chances we have of addressing them before RTM.

We thank you in advance for reporting any issues your find on our issue tracker on GitHub.

Roadmap update

We have made a few adjustments to the EF Core 2.2 plan since we posted it here. The main changes are:

  1. Spatial support (Support Spatial Data Types on SQL Server and SQLite dotnet/efcore#1100.): This feature is now fully committed for 2.2. It includes support for SQL Server, SQLite and In-memory, using the spatial library NetTopologySuite, which is also used by Npgsql to enable spatial support for PostgreSQL.

  2. Reverse engineering database views into query types (RevEng: Support Views dotnet/efcore#1679): This feature is postponed to EF Core 3.0.

  3. Cosmos DB provider (Cosmos DB provider dotnet/efcore#8443): This feature is postponed to some time after 2.2. However EF Core 2.2 Preview 3 includes an updated version of the provider.

    Although we have made a lot of progress setting up the required infrastructure for document-oriented database support in EF Core, and have been steadily adding functionality to the provider, realistically we cannot arrive to a state in which we can release the provider with adequate functionality and quality in the current time frame for 2.2.

    Overall, we have found that the work necessary to complete the provider to be more than we initially estimated. Also, ongoing evolution in Cosmos DB is leading us to frequently revisit decisions about such things as how we use the Cosmos DB SDK, whether we map all entities to a single collection by default, etc.

    We intend to maintain the focus on the provider and to continue working with the Cosmos DB team and to keep releasing previews of the provider regularly. You can expect at least one more preview by the end of this year, and RTM sometime in 2019. We haven’t decided yet if the Cosmos DB provider will release as part of EF Core 3.0 or earlier.

    The best way to keep track of our progress on the Cosmos DB provider is the checklist at Azure Cosmos task list dotnet/efcore#12086.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant