Are you having a hard time following what Microsoft is trying to do with .NET 5.0? You're not the only one
(2020/06/12)
- Reference: 1591956067
- News link: https://www.theregister.co.uk/2020/06/12/net_5_preview_5/
- Source link:
Microsoft kicked off [1]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 [2]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.
[3]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 [4]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. ®
Sponsored: [5]The Forrester Wave™: Streaming Analytics, Q3 2019
[1] https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/
[2] https://www.theregister.com/2019/05/16/will_net_5_really_unify_microsoft_development_stack
[3] https://github.com/dotnet/runtime/issues/37269
[4] https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/#comment-6553
[5] https://go.theregister.com/tl/1956/-8460/the-forrester-wave-streaming-analytics-q3-2019?td=wptl1956
.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 [2]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.
[3]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 [4]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. ®
Sponsored: [5]The Forrester Wave™: Streaming Analytics, Q3 2019
[1] https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/
[2] https://www.theregister.com/2019/05/16/will_net_5_really_unify_microsoft_development_stack
[3] https://github.com/dotnet/runtime/issues/37269
[4] https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/#comment-6553
[5] https://go.theregister.com/tl/1956/-8460/the-forrester-wave-streaming-analytics-q3-2019?td=wptl1956
Re: I can help.
Archtech
Thanks... yes, that was helpful!
Stop Press! Linux nerds confused by Windows tech
Anonymous Coward
Next exclusive, bear shits in woods.
kill the beast...
steamnut
"Single file apps remain an ambition" - is that with, or without, the gargantuan over-bloated monolith called .Net? The many, often and massive, .NET upgrades convinced me a long time ago that .NET is not for me. As it gets ever larger, the number of potential CVE's grows.
How many of us have downloaded a small Windoze app only to be told that it needs a certain version of .NET and then you wait for a 400Mb+ download to finish before you can continue. for those of us in rural areas served by slow broadband speeds it is no joke.
I can help.
Here's the current tech stack from high-level to low-level. There is a separate implementation of a scroll bar in every level, except the BIOS.
.net 5.0
.net 5.1
.net 4
.net 3
.net 8
C++ForC++
C++BindingLayer 5.8
GNU/StdC++ 6.0
Common/Net
Net/CommonRuntime++
Common/Runtime/Net 8.0
Uncommon/Net
.Net
.NetNet++
WPS 6.5
WPS 9.8++
Com++
Com+
JavaForNet
NetForWPS
WPSForJava++
Net/Java/Common/Runtime/CLR++
CLR/Net/WPS++
CLRForNet
WindowsFoundationAPI
WindowsOpenFoundationAPI++
COM++
Foundation/COM 3.0
COMFoundationComponentsForWPF++
WPFFoundationComponentsForCOM 4.0
WPFFoundationComponentsForCOM 3.1
WPFFoundationComponentsForCOM 6
WindowsFoundation
WindowsKernelFoundation
Wow64
Win32
Win16
TeamsFoundation++
MSDOSForLinux.
Linux.
BIOS.
.net 5