Filthy Microsoft opens its .NET Core 3 trench coat for the sixth time

Microsoft has continued its quickfire pace of .NET Core 3 updates, flinging preview 6 at developers keen on the open-source platform.

Program manager Richard Lander also took time to report on the company's progress in shovelling the source behind the venerable Windows Presentation Framework (WPF) into GitHub. It's safe to say that the work has involved a tad more than removing all the swears.

On the .NET Core 3 front, the framework now supports multiple Event Pipe sessions, allowing scenarios such as consuming events with EventListener in-proc and simultaneously having out-of-process event pipe clients.

Unsurprisingly, the gang has added a number of Perf Counters to keep track of things, including values for ThreadPool Work Items and Lock Contention rate.

Lander also highlighted the ReadyToRun (R2R) format, aimed at speeding the startup time of a .NET Core app by cutting back on what the Just In Time (JIT) interpreter has to do while the app is firing up.

Yes - we're talking about another take on Ahead Of Time (AOT) compilation.

Since there is less for JIT to do, things are snappier to load. However, the downside is a bloating of the binary since the old Intermediate Language (IL) code is still needed as well as the native version.

AOT has been around for a while. .NET developers doubtless remember the joy of NGEN, which insisted on compiling on the client machine, rather than as part of the application build. Core enjoys crossgen, which will pump out R2R images as part of the build process. Client machine involvement is not needed.

However, there are some downsides. While an IL assembly will run pretty much anywhere there is a runtime that supports its target framework, R2R is a bit more sniffy and compiled for a specific .NET Core runtime version and environment. Lander cites the example of compiling a R2R for .NET Core 3 and x86 Linux, which will subsequently only work in a compatible environment, such as .NET Core 3.1 or, whisper it, .NET 5, on something friendly to penguins.

In addition to what might seem the slightly retrograde step of creating a format that narrows the range of target environments in pursuit of performance, the team added HTTP/2 support to HttpClient. The ASP.NET Core and Blazor also issued updates, including authentication and authorisation support for Blazor apps and static assets in Razor class libraries.

The team has also added Alpine Docker images for .NET Core and ASP.NET Core on ARM64 having previously remained faithful to x64.

And as for the publishing of the codebase for WPF? Lander reported that the WPF team had got most of the source into GitHub with a view to getting everything done before .NET Core 3 hits General Availability.

When will that be? While, according to Lander, "we're focused on getting a final release in your hands" there could well be a few more previews between now and .NET Core 3 day. ®

Software News

Nov 20
C# and XAML devs get path to what UWP promised but never delivered
Nov 20
Linux was a 'cancer' but Microsoft is now defending it
Nov 20
Coalition aims to help users spot and remove covert trackers
Nov 19
As well as managed nodes for K8s and new FireLens container logging service
Nov 18
Who, Me?... thanks to today's entrant in the Who, Me? hall of shame
Nov 16
The case that just won't die
Nov 15
Change rolled back, but it's not a good look for Google