The version of .NET formerly called .NET Core is crawling closer to its November launch with .NET 5.0 Release Candidate 2 packing updates for key frameworks ASP.NET Core and Entity Framework Core, and a go-live licence.
Confronting the confusion of .NET Framework (Windows only) versus .NET Core (cross-platform), Microsoft is calling the upcoming release plain .NET and adding support for Windows Forms and Windows Presentation Foundation, though there is still plenty to be confused about as the GUI options still only run on Windows.
It appears that ASP.NET and Entity Framework are retaining the Core designation, for reasons best known to Microsoft's hard-pressed branding department.
RC2 is not the moment to introduce new features and Microsoft Principal Program Manager Richard Lander said the team wants reports of any "remaining critical bugs", which sits uncomfortably alongside the fact that customers are "supported using it in production."
Lander added that Microsoft is already using .NET 5.0 internally. "At least one large team I know of is running on RC1 in production," he said. We hope it is not running Azure Active Directory, but it does, he said, run Microsoft's .NET site – as indicated by the "Powered by .NET 5.0.0-rc.2.20475.5" small type in the footer.
One of the side-effects of extending .NET Core to Windows desktop applications is that the .NET team is in theory now giving this some attention, though developers have complained that Windows Presentation Foundation remains neglected.
Lander noted that .NET 5.0 will include ClickOnce, a handy setup tool for deploying desktop applications via a web link or network share, with automatic prompts to update when new versions are published. There had been doubts about whether this would make it to the initial release. ClickOnce has been updated to support framework-dependent applications, which means that the .NET runtime is automatically installed if needed. Lander said "we also intend to support self-contained and single file apps," which suggests this part might not be ready for next month's official release.
"Thank God ClickOnce is back," said a developer. "The last ClickOnce for .NET 4.8 was damaged on Windows 10."
The .NET 5.0 runtime has an installer for Windows on 64-bit ARM, though on this platform Microsoft will be unable to deliver desktop application support for the first release. "We are hoping to add the desktop pack for Windows Arm64 in a servicing update," said Lander.
.NET 5.0 replaces both .NET Core and .NET Framework – though in reality it is the next version of .NET Core and the old .NET Framework is consigned to legacy
The new ASP.NET Core is also RC2 and also supported in production. The list of what is new since RC1 is short, but does include tweaks to the way CSS files are bundled for Blazor application and fixes for debugging Blazor WebAssembly. The .NET 5.0 core framework libraries have been annotated to indicate what works in the WebAssembly runtime, so developers now get a warning in the code editor when attempting to call an unsupported method. Entity Framework Core 5.0 RC2 has no documented new features since RC1, but also has a go-live licence.
Although there are quite rightly few new features in RC2 versus RC1, there is a huge list of what's new in .NET 5.0 versus its predecessor, .NET 3.1. This includes C# 9, F# 5.0, single file applications, smaller container images, and ARM64 support. Blazor Web Assembly (.NET running in the browser) will use the .NET 5.0 libraries in place of the Mono libraries used in the current release, though it will still use the Mono runtime.
WinUI 3.0, a key component of Project Reunion, Microsoft's attempt to unscramble multiple frameworks for desktop development, is planned to hit Preview 3 next month but will not be supported in production until sometime in 2021.
Despite Lander's push for production use of .NET 5.0, this is not a long-term support (LTS) release. For that we await next year's .NET 6.0. This will also include full unification with Xamarin, with Xamarin Forms becoming .NET MAUI (Multi-platform App UI). Microsoft always gives you plenty to wait for. ®