Unified .NET 5 Unveiled: 'Just One .NET Going Forward'
Microsoft announced .NET Core 3.0 will arrive in September, after which the company is switching to one unified .NET platform, called .NET 5, which will debut in November 2020.
Microsoft-centric developers have long clamored for one unified development platform to target all aspects of the ecosystem, and Microsoft is delivering with .NET 5, which will consolidate separate efforts such as .NET Core., .NET Framework, Xamarin and Mono.
Describing the new direction as a "game changer," Microsoft announced .NET 5 at the opening of the company's big Build developer conference, stating it aims to improve .NET in ways such as:
- 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.
While features of .NET Core will be maintained -- such as cross-platform functionality, side-by-side installations and Visual Studio integration -- .NET 5 will offer new functionality and capabilities:
- Developers will have more choice on runtime experiences.
- 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.
As part of the scheme, Microsoft is skipping .NET Core 4 to avoid confusion with the traditional, Windows-only .NET Framework, which is already in 4.x versioning. It's also dropping the "Core" designation.
"We wanted to clearly communicate that .NET 5 is the future for the .NET platform," said Richard Lander, .NET program manager, in a blog post today (May 6). "Calling it .NET 5 makes it the highest version we've ever shipped."
"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."
With .NET 5, developers will have the choice of runtimes: Mono (the original, open source cross-platform .NET implementation, now used in Xamarin); or CoreCLR, the .NET Core runtime used for cloud, Windows desktop, Internet of Things (IoT) and machine learning applications.
He noted there is still much to be worked out in the new, unified approach.
"Moving to a single .NET implementation raises important questions," Lander said. "What will the target framework be? Will NuGet package compatibility rules be the same? Which workloads should be supported out-of-the-box by the .NET 5 SDK? How does writing code for a specific architecture work? Do we still need .NET Standard? We are working through these issues now and will soon be sharing design docs for you to read and give feedback on."
Stay tuned for more on those issues.
David Ramel is an editor and writer for Converge360.