Breaking changes to Microsoft.AspNetCore.App in 3.0 #325
Labels
3.0.0
Announcements related to ASP.NET Core 3.0
Announcement
Breaking change
Documented
The breaking change has been published to the .NET Core docs
Migrated
Milestone
This change is one of several which were announced earlier today on the ASP.NET blog.
Starting in 3.0, the ASP.NET Core shared framework (
Microsoft.AspNetCore.App
) will only contain first-party assemblies that are fully developed, supported, and serviceable by Microsoft. You can think of this as constituting the ASP.NET Core “platform.” It will be fully source buildable by anybody via GitHub and will continue to bring all the existing benefits of .NET Core shared frameworks to your applications moving forward (smaller deployment size, centralized patching, faster startup time, etc.).As part of this change, some notable breaking changes will be made in Microsoft.AspNetCore.App 3.0.
Removal of some sub-components
As part of this change, some notable sub-components will be removed from the ASP.NET Core shared framework in 3.0:
Entity Framework Core will ship as “pure” NuGet packages in 3.0. This makes its shipping model the same as all other data access libraries on .NET, and allows it the simplest path to continue innovation while providing support for all the various .NET platforms customers enjoy it on today. Note, Entity Framework Core moving out of the shared framework has no impact on its status as a Microsoft developed, supported, and serviceable library, and it will continue to be covered by the .NET Core support policy.
Json.NET or Entity Framework Core will continue to work with ASP.NET Core, but they will not be "in the box" with the shared framework.
See "The future of JSON in .NET Core 3.0" for details on our plans to remove the dependency from ASP.NET Core to Json.NET and replace it with high-performance JSON APIs.
We have separately posted a complete list of exact binaries that are being removed. This list may fluctuate as we continue to work on ASP.NET Core 3.0.
Removal of the PackageReference to Microsoft.AspNetCore.App
Starting in ASP.NET Core 3.0, references to Microsoft.AspNetCore.App will no longer be a
<PackageReference>
element in the project file. The .NET Core SDK will support a new item called<FrameworkReference>
which will replace the use of PackageReference. Changes to support this new item type are already under way.See aspnet/AspNetCore#3612 for more details.
Reducing the duplication between NuGet packages and shared frameworks
As result these changes, it will not be necessary for projects to consume assemblies in Microsoft.AspNetCore.App as NuGet packages. To simplify the way in which consumers target and use the ASP.NET Core shared framework, we will stop producing many of the NuGet packages that we have been shipping since ASP.NET Core 1.0. The API those packages provide are still available to apps by using a
<FrameworkReference>
to Microsoft.AspNetCore.App. This includes commonly referenced API, such as Kestrel, Mvc, Razor, and others.This will not apply to all binaries that are pulled in via Microsoft.AspNetCore.App in 2.x. Notable exceptions include:
For more details, see the complete list of packages that will only be obsolete in favor of
<FrameworkReference>
. This list may fluctuate as we continue to work on ASP.NET Core 3.0.See the blog post from earlier today for more details on the motivation for this change.
You can use aspnet/AspNetCore#3757 for discussion.
[This announcement has been migrated to: dotnet/docs#14948]
The text was updated successfully, but these errors were encountered: