Microsoft Releases .NET 5.0 RC 1
SEP 16, 2020 by Arthur Casals
Earlier this week,Microsoft released .NET 5.0 RC1, the first "go live" release of .NET 5 before its official debut in November. .NET 5 is a unified platform for the .NET ecosystem, wrapping together all of its components into one cross-platform package. The new release includes many improvements from .NET Core 3, including new language versions (C# 9 and F# 5) and support for Windows ARM64. .NET 5 is feature-complete since Preview 8, and it can already be used in production.
.NET 5 was announced last year as the next step forward with .NET Core. One of the project's main goals is to provide a single, cross-platform .NET runtime and framework with uniform runtime behaviors and developer experiences. At the time of its first announcement, Richard Lander, program manager for the .NET team, highlighted the importance of the project:
There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly, and more. We will introduce new .NET APIs, runtime capabilities, and language features as part of .NET 5. [...] Additionally, we wanted to clearly communicate that .NET 5 is the future for the .NET platform.
Image source: https://devblogs.microsoft.com/dotnet/introducing-net-5/
A few things have changed since then, mostly due to technical challenges and slowdowns caused by the COVID-19. As a result, some of the features initially announced were bumped to .NET 6. Among the delayed features is native ahead-of-time (AOT) compilation, which was recently identified as a critical feature for further .NET adoption.
Even with a reduced set of features, .NET 5 still includes many important improvements from .NET Core 3, including new language versions (C# 9 and F# 5) and support for Windows ARM64. Other important features are improved JsonSerializer APIs, single-file applications, a complete set of nullable reference type annotations, and many performance improvements for libraries, the garbage collector (GC), and the just-in-time compiler (JIT).
In the original RC1 announcement, Lander also focused on records in C# and System.Text.Json.JsonSerializer, which "are separate features, but also a nice pairing, particularly if you spend a lot of time crafting POCO types for deserialized JSON objects." Records are immutable data types (one of the most critical features in C# 9), and the improvements on System.Text.Json allow JSON objects to be deserialized to records.
With the new release candidate marked as "go-live," .NET 5 is officially ready to be used in production. Another Release Candidate is expected before the official debut of .NET 5 in November. All current and future releases of .NET 5 can be found here. The current release is supported on Linux, macOS, and Windows. You need the last preview version of Visual Studio (v16.8, Preview 3) to use .NET 5 RC1 on Windows. At the time of this publication, the latest preview version of Visual Studio for Mac (v8.8 Preview 3) supports only the previous (Preview 8) .NET 5 release.