ASP.NET Core Ditching .NET Framework, Will Be 'Part of .NET Core' Going Forward
While the big news in the .NET Core ecosystem is coming support for WinForms and WPF in .NET Core 3.0 on Windows, there are also some notable changes coming in ASP.NET Core 3.0.
Microsoft yesterday (Oct. 29) said that going forward, ASP.NET Core 3.0 -- the Web framework part of the "Core" platform offerings -- will only run on the base NET Core 3.0 platform, not the traditional .NET Framework that has been a Windows-only mainstay for some 16 years.
"To ensure ASP.NET Core can fully leverage the improvements coming to .NET Core moving forward, ASP.NET Core will only run on .NET Core starting from 3.0," said Microsoft's Damian Edwards in a blog post. "Moving forward, you can simply think of ASP.NET Core as being part of .NET Core."
That is part of Microsoft's plan to provide fewer new platform and language updates to .NET Framework, due to its tight integration with Windows and the resulting in-place updates that can break existing applications.
"Customers utilizing ASP.NET Core on .NET Framework today can continue to do so in a fully supported fashion using the 2.1 LTS release," Edwards said. "Support and servicing for 2.1 will continue until at least August 21, 2021 (3 years after its declaration as an LTS release) in accordance with the .NET Core support policy."
Also on tap is more focused integration with third-party open source offerings.
"We're drawing a clearer distinction on what constitutes the 'platform' in 3.0, and in doing so removing 3rd party components from that layer, we recognize that many higher-level scenarios are best assisted by established, capable, and well supported open-source components, and that we can provide support and assistance to the community and our customers by helping to ensure these components integrate as well as possible into ASP.NET Core applications," Edwards said.
He said that support will come in different forms, including:
- First-class integration APIs and packages built by Microsoft
- Contributions made to existing libraries by Microsoft engineers
- Project templates in the default experiences that utilize the above libraries
- Documentation that lives on the official ASP.NET Core docs site
- Processes for dealing with critical issues and bug fixes, including security
Furthermore, citing ASP.NET Core's maturation from "just packages" to a "shared framework" that resulted in some issues faced by developers, Edwards announced the upcoming removal of Json.NET (Newtonsoft.Json) and Entity Framework Core (Microsoft.EntityFrameworkCore) sub-components in order to reduce those issues.
In ASP.NET Core 3.0, Entity Framework Core will ship as "pure" NuGet packages.
In the JSON story, Microsoft detailed a three-prong approach to change the JSON support scheme:
- High-performance JSON APIs
- Removal of the dependency from ASP.NET Core to Json.NET
- Provision of an ASP.NET Core integration package for Json.NET
"For places in ASP.NET Core that rely on Json.NET feature today (e.g. the JSON formatter in MVC), we'll continue to ship packages that provide that integration moving forward, however the default experiences will change to use the upcoming in-box JSON APIs," Edwards said.
David Ramel is the editor of Visual Studio Magazine.