Microsoft kicked off Preview 5 of its open-source framework with an admission that describing the bigger picture can prove tricky, even for its own staffers.
.NET 5.0 is the next major release of Microsoft's cross-platform, open-source framework, which was teased at 2019's Build conference before it landed into the hands of developers a few months ago.
The goal back in 2019 was to unify Microsoft's often byzantine development stack, with one .NET targeting Windows, Linux, macOS and so on. Now at the halfway point for .NET 5.0 (program manager Rich Lander reckons Preview 7 will be "very close to feature-complete") some would be forgiven for losing track of what is actually in the thing.
Enter the "epics" – the team's crack at collating most, though not all, of the upcoming toys into something digestible.
ARM64 features big in the list, with a desire to close the performance gap between it and x64 as well as supporting Windows ARM64 full stop. Single file apps remain an ambition, as does support for the WinRT APIs in .NET 5.
Earlier previews have already taken strides in these directions, but with Microsoft's occasionally scattergun approach to development technology (not least the Schrödinger-like tendencies of UWP which is alive, dead or both depending on which presentation you've seen) it can be a little tricky to follow what is happening in GitHub. "Even as the release blog writer," said Lander, "I find this difficult."
So what hope is there for the rest of us?
Preview 5 itself includes more improvements to the RyuJIT JIT compiler, including further ARM64 tweaks and a speed bump in a case affecting regular expression compilation. The gang has also begun enabling exports for native binaries that call into .NET code, with project that will also dispense with the likes of COM as well as working across platform. The
System.DirectoryServices.Protocols API has also been expanded to Linux with support for macOS arriving in Preview 6.
Less good is the advance notice of the removal of built-in WinRT support expected when Preview 6 rolls around. The breaking change comes as the support is replaced with the C#/WinRT toolchain and will necessitate a recompilation for .NET Core 3.x apps using WinRT.
The gang also added support for Alpine 3.12 in .NET 5.0 and .NET Core 3.1, with Ubuntu 20.10 likely to be the next to be tracked.
Sadly, there is unlikely to be any Java interop in .NET 5.0 after scoping due to the pandemic situation.
Visual Studio 16.7 and the latest C# extension is needed if you want to take the new preview out for a spin. Mac fans will be saddened to note that VS for Mac is yet to support .NET 5.0. ®