Now that Microsoft has shipped .NET Core 3.1, the next stop on the .NET Core roadmap is just plain old .NET 5 with no "Core" and no "Framework" -- it's all just .NET from here on.
Due in November 2020, .NET 5 will mark the company's transformation from the aging, proprietary, Windows-only .NET Framework to a modern, open-source, cross-platform .NET.
Microsoft has said the first .NET 5 preview is expected in the first half of next year, combining separate source code streams such as .NET Framework, the existing .NET Core and Xamarin/Mono and including components such as ASP.NET Core and Entity Framework Core.
"From the inception of the .NET Core project, we've added around fifty thousand .NET Framework APIs to the platform," Microsoft said in May after .NET Core 3.0 shipped. ".NET Core 3.0 closes much of the remaining capability gap with .NET Framework 4.8, enabling Windows Forms, WPF and Entity Framework 6. .NET 5 builds on this work, taking .NET Core and the best of Mono to create a single platform that you can use for all your modern .NET code."
Describing the new direction as a "game changer," Microsoft announced .NET 5 at the opening of the company's big Build developer conference, stating it aims to improve .NET in ways such as:
- Produce a single .NET runtime and framework that can be used everywhere and that has uniform runtime behaviors and developer experiences.
- Expand the capabilities of .NET by taking the best of .NET Core, .NET Framework, Xamarin and Mono.
- Build that product out of a single code-base that developers (Microsoft and the community) can work on and expand together and that improves all scenarios.
Called Blazor WebAssembly, the client-side effort wasn't ready for .NET Core 3.0 as planned, though Microsoft said earlier this year that it's being targeted for general availability in May 2020.
Another problem area is desktop development support for Windows Forms and Windows Presentation Foundation (WPF) projects, another big milestone mostly -- but not totally -- achieved in .NET Core 3/3.1.
For example, one particularly egregious sticking point in porting .NET Framework code to .NET Core is the WinForms designer, described as "a huge technical challenge" by Microsoft developers.
"We know that you've noticed: although the Windows Forms .NET Core designer Preview has basic functionalities, it is not mature enough for providing the full Windows Forms experience and we need a little more time to get there," program manager Olia Gavrysh said recently.
She said feature parity is expected by May 2020 and project completion is expected by the end of that year.
While .NET 5 will debut next November, it won't be a long-term support (LTS) release, which are eligible for free support for three years. The brand-new .NET Core 3.1 is an LTS release, and they will ship every other year, so .NET 6 will be the next LTS offering, scheduled for November 2021. Going forward, Microsoft plans to ship major .NET releases every year in November, with even-numbered releases being LTS versions.
Highlights of .NET 5 include:
- Developers will have more choice on runtime experiences.
- Java interoperability will be available on all platforms.
- Objective-C and Swift interoperability will be supported on multiple operating systems.
- CoreFX will be extended to support static compilation of .NET (ahead-of-time – AOT), smaller footprints and support for more operating systems.
"The .NET 5 project is an important and exciting new direction for .NET,," Microsoft said. "You will see .NET become simpler but also have broader and more expansive capability and utility. All new development and feature capabilities will be part of .NET 5, including new C# versions.
"We see a bright future ahead in which you can use the same .NET APIs and languages to target a broad range of application types, operating systems, and chip architectures. It will be easy to make changes to your build configuration to build your applications differently, in Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps or at the command line."