At Build 2019, Microsoft announced the next major version of their .NET Framework. .NET 5 will be a cross-platform product and will be able to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.
.NET 5 is expected to be released in November 2020, with the first preview available in the first half of 2020. It will be supported with future updates to Visual Studio 2019, Visual Studio for Mac and Visual Studio Code.
The project aims to add the following improvements to .NET:
- Produce a single .NET runtime and framework that can be used everywhere and that has uniform runtime behaviors and developer experiences.
- Expand the capabilities of .NET by taking the best of .NET Core, .NET Framework, Xamarin and Mono.
- Build that product out of a single code-base that developers (Microsoft and the community) can work on and expand together and that improves all scenarios.
Here are some new features.
- You will have more choice on runtime experiences (more on that below).
- Java interoperability will be available on all platforms.
- Objective-C and Swift interoperability will be supported on multiple operating systems.
- CoreFX will be extended to support static compilation of .NET (ahead-of-time – AOT), smaller footprints and support for more operating systems.
Microsoft will ship .NET Core 3.0 this September, .NET 5 in November 2020, and then the company intends to ship a major version of .NET once a year, every November.
The official blog post states the following regarding .NET Core:
We’re skipping the version 4 because it would confuse users that are familiar with the .NET Framework, which has been using the 4.x series for a long time. Additionally, we wanted to clearly communicate that .NET 5 is the future for the .NET platform.
We are also taking the opportunity to simplify naming. We thought that if there is only one .NET going forward, we don’t need a clarifying term like “Core”. The shorter name is a simplification and also communicates that .NET 5 has uniform capabilities and behaviors. Feel free to continue to use the “.NET Core” name if you prefer it.