Microsoft’s .NET team boasts that the forthcoming .NET 5 development stack will offer major performance improvements.
.NET 5 represents Microsoft’s effort to cherrypick the best of .NET Core, .NET Framework, Xamarin and Mono to create a platform that developers can use it to target all platforms, including Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly.
In other words, it’s a platform of runtime components, compilers, and languages for developing apps for the desktop, web, cloud, mobile, gaming, IoT and AI.
Microsoft started shipping previews of .NET 5 in March and plans for general availability in November. .NET 5 is important because it aims to unify .NET development as a platform for building all applications across the desktop, mobile and connected devices.
.NET 5 includes ASP.NET Core, Entity Framework Core, WinForms, WPF, Xamarin and ML.NET as well as support for Windows on Arm64.
“.NET 5 has already seen a wealth of performance improvements, and even though it’s not scheduled for final release until this fall and there’s very likely to be a lot more improvements that find their way in by then, I wanted to highlight a bunch of the improvements that are already available now,” said Stephen Toub, partner software engineer on Microsoft’s .NET team.
The sixth and newest preview of .NET 5 from June allowed developers to build and run Windows Forms apps on Windows Arm64 devices, like the Surface Pro X. Microsoft at that stage was still working on adding support for WPF on Windows on Arm.
Toub’s performance analysis covers the .NET garbage collector, the Just-In-Time compiler, ‘hardware intrinsics methods’, runtime helpers, text processing, regular expressions, threading and asynchrony, and more.
“In .NET Core 3.0, over a thousand new hardware intrinsics methods were added and recognized by the JIT to enable C# code to directly target instruction sets like SSE4 and AVX2,” Toub wrote of the hardware improvements.
“These were then used to great benefit in a bunch of APIs in the core libraries. However, the intrinsics were limited to x86/x64 architectures. In .NET 5, a ton of effort has gone into adding thousands more, specific to Arm64, thanks to multiple contributors, and in particular @TamarChristinaArm from Arm Holdings.”