Microsoft has announced that the latest release of .NET is now generally available, with the version number being 5.0. This release is a major update for the platform, and Microsoft has already been using it internally for many purposes, including running the .NET website on .NET 5.0 since the first preview was released, with Bing also using the new platform. Surprisingly, the schedule for this release was set back in May of last year, and Microsoft actually managed to meet it.
This release is the first of two that place a big focus on the unification of .NET. With this version. Microsoft wants .NET Framework developers to migrate their code and apps to .NET 5.0, and some of the groundwork has been laid for Xamarin developers to transition to the new unified platform when .NET 6.0 releases next year. The goal is for all .NET components to be unified under one product, where users can then pick and choose which parts of .NET they want to use, instead of downloading and installing everything separately.
Aside from that, .NET 5.0 brings a ton of improvements to the table, and Microsoft has highlighted some of the more notable changes, including some performance improvements, which Microsoft previously explored here. Here are all the highlights of this release:
- .NET 5.0 is already battle-tested by being hosted for months at dot.net and Bing.com (version).
- Performance is greatly improved across many components and is described in detail at Performance Improvements in .NET 5.0, Arm64 Performance in .NET 5.0, and gRPC.
- C# 9 and F# 5 offer new language improvements such as top-level programs and records for C# 9, while F# 5 offers interactive programming and a performance boost for functional programming on .NET.
- .NET libraries have enhanced performance for Json serialization, regular expressions, and HTTP (HTTP 1.1, HTTP/2). They are also are now completely annotated for nullability.
- P95 latency has dropped due to refinements in the GC, tiered compilation, and other areas.
- Application deployment options are better, with ClickOnce client app publishing, single-file apps, reduced container image size, and the addition of Server Core container images.
- Platform scope expanded with Windows Arm64 and WebAssembly.
A noteworthy change is that .NET 5.0 apps can run natively on ARM64 Windows devices, removing some performance barriers that came from emulation. However, Windows Desktop components aren't available for ARM64 devices in this release - that's planned for a servicing update for .NET 5.0. If you'd like to dive deeper into the changes in this release, you can read the full blog post. The full release notes can be found here.
.NET 5.0 is available to download now, and you can get it in a multitude of ways depending on your preferred platform - installers and binaries are here, container images are here, and Linux packages are here. You'll need to have Visual Studio 16.8 on Windows or the latest release on macOS to use .NET 5.0 with it. Going forward, Microsoft plans to release a major new version of .NET every year in November.