After more than a year in development, Microsoft released its .NET 5 software development platform on Tuesday, November 10, emphasizing unification of the platform and introducing the C# 9 and F# 5 programming languages.
Described as the first release in Microsoft’s .NET unification journey, .NET 5 was built to enable a larger group of developers to migrate .NET Framework code and apps to .NET 5. The platform combines elements from the .NET Framework, .NET Core, and Mono to create a single platform for all modern .NET code. Work has been done so Xamarin developers can use the .NET Platform when .NET 6.0 is released in a year.
- Windows ARM64 support.
- Windows desktop development enhancements.
- Improved JSON serializer APIs.
- Nullable reference type annotations.
- Web and cloud investments.
- Single file applications and smaller container images.
- Improved performance, with gRPC performance said to exceed Go, C++, and Java.
- Full-stack .NET apps with the Blazor web UI framework, supporting Blazor Server and Blazor WebAssembly, which supports .NET Core framework libraries and has been made faster in .NET 5.
- A new model is featured for supporting WinRT APIs, including calling APIs, marshaling of data between the two type systems, and unification of types intended to be treated the same across the type system or ABI boundary. The existing WinRT interop system has been removed from the .NET runtime.
C# 9, meanwhile, focuses on program simplicity, data-oriented classes, and more patterns. F# 5, an upgrade to Microsoft’s functional programming language, adds interpolated strings and open type declarations. Also, the ASP.NET Core web development platform in .NET 5 has improvements for MVC model binding, Azure AD authentication, and SignR Hub filters and parallel Hub invocations.
Microsoft’s vision for .NET calls for a .NET 5 to .NET 6 “wave,” featuring a single SDK, a cross-platform native UI, and cloud-native investments. Plans call for major .NET releases each November, with every other version to be a Long Term Support release. The next LTS release is NET 6.0. Minor releases will be offered as needed.