The dust hasn't even settled properly after the release of .NET Framework 4.8, that Microsoft decided to announce the coming of .NET 5 (planned release date is November 2020). Classic Microsoft! But, I have anticipated this move quite some time ago already. It just makes sense.
What Makes Sense?
Well, for the past few years different technology spectrums have been edging closer to fusion. Since the beginning of the .NET Framework, it has grown exponentially with every release. Mobile devices entered the fray, thus broadening the scope of the .NET Framework. It didn't just deal with desktop and the Web anymore; mobile has been added as well. Then, much later, Open Source became a huge influence in Microsoft's products. This gave us the ability to run .NET programs on other platforms—not only on Windows. Now, the next big thing is Internet of Things. Any device can communicate with Wi-Fi these days.
.NET 5 brings the .NET Framework, Xamarin, Mono, and .NET Core together. One Framework, containing all the libraries for all environments and platforms. NET will be improved in a few ways:
- Single .NET runtime and framework
- Expand .NET by adding the best of .NET Core, .NET Framework, Xamarin, and Mono
- Build a product out of a single codebase
Some new features will include:
- We will have more choice on runtime experiences.
- Java interoperability will be available on all platforms.
- Swift and Objective-C interoperability will be supported on multiple operating systems.
- CoreFX will be extended to support static compilation of .NET.
CoreCLR (.NET Core runtime) and Mono (cross-platform) are both .NET runtimes with their own capabilities, but they are also quite similar, mostly due to the underlying .NET Framework. With .NET 5, you will be able to pick the runtime experience that you want.
Most .NET 5 workloads will be using the JIT (Just in Time)-based CoreCLR runtime. iOS and Blazor, on the other hand, would require AOT (Ahead of Time) native compilation. AOT solutions are split up in two different solutions:
- Solutions requiring 100% AOT compilation
- Solutions comprising of mostly AOT compiled code, but a JIT compiler is available for code which is not AOT-friendly
At this time, there is not much detailed information available, unfortunately. But, it is quite exciting to know that one platform will be able to cater to "everything." Isn't that worth the wait?
As more information becomes available, I will update this article.