在 1.0 中,ASP.NET Core 本身就是一个“包”,并且像任何其他 NuGet 包引用一样出现在项目中。这有利有弊,随着时间的推移,这个模型有了新的发展,在 2.1 中,ASP.NET Core 最终演变为可作为 .NET Core 的“共享框架”。而 ASP.NET Core 3.0 则持续朝这个方向进行改变 —— 将从 3.0 中的 ASP.NET Core 共享框架中删除一些子组件:
Json.NET (Newtonsoft.Json)
Entity Framework Core (Microsoft.EntityFrameworkCore.*)
由于 .NET Framework 未来从 .NET Core 获得的新平台和语言特性将会变少,且因为 .NET Framework 的更新策略,这将使已有的应用程序受到影响。为了确保 ASP.NET Core 能够充分利用 .NET Core 的改进,从 3.0 开始,ASP.NET Core 将只支持在 .NET Core 上运行,目前仍在 .NET Framework 上使用 ASP.NET Core 的开发者,可以使用 2.1 LTS 版本以继续获得完全的支持,微软对 2.1 的支持将持续到 2021 年。
关于 ASP.NET Core 3.0 只支持运行在 .NET Core 上的计划,ASP.NET Core 项目的高级软件工程师在 GitHub 发布了一个公开 issue 为大家提供讨论的渠道。