Microsoft’s forking of the .NET development platform into the Windows-only .NET Framework on one side, and the cross-platform .NET Core on the other, has caused considerable confusion. Which should you target? What is the compatibility story? And where does Mono, the older cross-platform .NET fit in? Xamarin, partly based on Mono, is another piece of the puzzle.
Now Microsoft has announced that .NET 5, coming in November 2020, will unify these diverse .NET versions.
“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,” says Microsoft’s Rich Turner.
Following the release of .NET 5.0, the framework will have a major release every November, says Turner, with a long-term support release every two years.
Some other key announcements:
- CoreCLR (the .NET Core runtime) and Mono will become drop-in replacements for one another.
- 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 and support for more operating systems.
A note of caution though. Turner says there are a number of issues still to be resolved. There is room for scepticism about how complete this unification will be.
More details in the official announcement here.
Update: having looked at these plans in a little more detail, it is wrong to say that Microsoft is unifying .NET Framework and .NET Core. Rather, Microsoft is saying that .NET Core is the replacement for .NET Framework for new applications whether on Windows or elsewhere. Certain parts of .NET Framework, including WCF, Web Forms, and Windows Workflow, will never be migrated to .NET 5. .NET Framework 4.8 will still be maintained and is recommended for existing applications.