.NET 5 Now 2 Steps Away from Feature Complete

Microsoft today shipped the sixth preview of .NET 5, saying the milestone release designed to combine all things .NET is only two steps away from becoming feature complete in Preview 8, with the final GA release scheduled for November.

In announcing .NET 5, Microsoft said, "there will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more."

.NET 5 is already pretty functional, as Microsoft announced it was already handling 50 percent of the traffic on its .NET site when Preview 2 was announced in April.

.NET 5
[Click on image for larger view.] .NET 5 (source: Microsoft).

Since then the series of steady previews have been incrementally fixing bugs, polishing existing features and adding new ones, though usually of a minor scope.

That's still the case with today's Preview 6, described by Microsoft as containing "a small set of new features and performance improvements."

The No. 1 item on the list in today's blog post deals with a Windows ARM64 update, furthering functionality introduced with preview 4. "The Preview 6 SDK now includes support for Windows Forms," Microsoft's Richard Lander, program manager, .NET Team, said. "That means you can build and run Windows Forms apps on Windows ARM64 devices, just like you would on x64. We're still working on adding support for WPF on Windows ARM64."

Also listed were:

  • Windows Forms improvements: Developers can enforce their applications are single-instanced, meaning one instance is launched at a time.
  • RyuJIT code quality improvements: A plethora of these deal with general improvements (struct handling and more), ARM64 hardware intrinsics, and ARM64 generated code improvements that greatly reduced ARM64 code size.
  • Single file apps improvements: A new option to include native binaries and any additional content (like images) in the single-file has been added. "We've been continuing to improve Support Single-File Apps in .NET 5," Lander said. "Our goal is to enable publishing an app as one file (obviously), for Windows, macOS and Linux. We're almost there."
  • Native hosted application improvements: A contributor provided a novel new model for hosting models for .NET in native applications.
  • A breaking change -- removal of built-in WinRT support: "We have replaced the built-in WinRT support with the C#/WinRT tool chain, provided by the Windows team, in .NET 5.0. This change in WinRT interop is a breaking change, and .NET Core 3.x apps that use WinRT will need to be recompiled. We will provide more information on this in coming previews."

Also, the .NET 5 – Supported OS versions page has been updated to capture Microsoft's latest plans for platform support for .NET 5.0.

"We're now past the half-way point in this release cycle," Lander said in closing today's post. "In fact, we're starting to (in our parlance) 'close down the release.' If you are watching our repos closely, you'll see that we're starting to manage the milestones of issues more carefully. Having worked on multiple .NET releases now, I can tell you that this is a great time. It's time to claim victory on the set of features we've built, and to polish them to the point that you are happy using them. That's what we're doing now, in our home workplaces."

More information is available in the Preview 6 release notes.

Although still on track for a November debut, .NET 5 won't have all the features and functionality that Microsoft originally planned. That's because of complications arising from the COVID-19 pandemic. Thus the full package will appear with .NET 6 in November 2021.

The .NET Schedule
[Click on image for larger view.] The .NET Schedule (source: Microsoft).

"Last year, we laid out our vision for one .NET and .NET 5," said Scott Hunter, director of program management, .NET, in a post published during the company's Build developer conference that announced Preview 4. "We said we would take .NET Core and Mono/Xamarin implementations and unify them into one base class library (BCL) and toolchain (SDK).

"In the wake of the global health pandemic, we've had to adapt to the changing needs of our customers and provide the support needed to assist with their smooth operations. Our efforts continue to be anchored in helping our customers address their most urgent needs. As a result, we expect these features to be available in preview by November 2020, but the unification will be truly completed with .NET 6, our Long-Term Support (LTS) release. Our vision hasn't changed, but our timeline has."

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


Subscribe on YouTube