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.

#.net core #.net #architecture & design #development #news

Microsoft Releases .NET 5.0 RC 1
1.55 GEEK