Microsoft takes a major step toward .NET unification with .NET 5.0 release

Microsoft's .NET 5 developer platform, key to the company's work to unify its different .NET flavors, is generally available as of today, November 10.

dotnet5layers.jpg

Credit: Microsoft

On November 10, Microsoft released .NET 5.0, the next big release in the .NET developer platform. .NET 5 is key to Microsoft's promise of unifying the different .NET flavors across operating systems, the Web and a variety of form factors. Microsoft officially announced the general availability of .NET 5 on day one of the .NET Conf 2020 virtual event.

.NET 5 provides developers with tools, programming interfaces, runtime features and new languages. It's what Microsoft is advocating developers use to build front-end Web UIs and back-end services. 

.NET 5 includes C# 9, F# 5, and the corresponding ASP.NET Core release. Microsoft is encouraging developers to use new application programming interfaces (APIs) in .NET 5 to integrate with other tools like its Power Platform low-code/no-code platform. It also provides native (not just emulated) support for Windows Arm64, as well as performance improvements in the .NET libraries and Garbage Collector; smaller container images; and single-file applications.

In 2019, Microsoft announced that .NET 5 would be its first major deliverable on the road toward unifying .NET. It's the successor to .NET Core 3.X. In May 2019, Microsoft officials said to expect the company to deliver a new major release of the unified .NET every November, going forward, with alternating major releases (including next year's .NET 6.0) designated as Long-Term Servicing (LTS) ones. 

The existing .NET Framework remains a supported Microsoft product and will continue to be supported with each new version of Windows even though Microsoft announced last year that it had stopped adding new features to .NET Framework as of 4.8 and finished adding .NET Framework APIs to .NET Core. Microsoft also has no plans to release a new version of .NET Standard, but .NET 5 and all future versions will continue to support .NET Standard 2.1 and earlier, officials have said.

"We had intended to deliver the entirety of the unification vision with .NET 5.0, but in the wake of the global pandemic, we had to adapt to the changing needs of our customers.," said officials in today's blog post announcing the .NET 5 release.

The .NET 5.0 software development kit (SDK) does not currently contain the Windows Desktop components -- Windows Forms and WPF -- on Windows Arm64, officials noted. Microsoft is hoping to add the Windows desktop pack for Windows Arm64 in a servicing update at some point in the future. For now, the SDK, console and ASP.NET Core applications are supported on Windows Arm64, they added.

Additionally, Xamarin developers won't be able to take full advantage of the unified .NET platform until .NET 6.0 next year. .NET MAUI, the multi-platform native UI designed to be deployed to mobile devices across mobile and desktop using a single project and codebase -- and an evolution of Xamarin.Forms -- will be part of the first .NET 6 previews later this year.

The Windows team is working on its own unification project, known as Project Reunion. The .NET team has been working with the Reunion team to make sure .NET 5.0 and later will work with WinUI and WebView2, officials said today. As part of this work, the .NET team has moved to a new model to support WinRT APIs as part of .NET 5. This entailed removing the existing WinRT interop system from the .NET runtime as part of .NET 5. This means apps using WinRT with .NET Core 3.X will need to be rebuilt and won't run on .NET 5 as-is, officials said.  

Developers, as of today, can download .NET 5.0, for Windows, macOS, and Linux, for x86-64, and Arm32/64.