.NET 5 Now 'Feature Complete' with Preview 8, Go Live Release Candidates Up Next
The milestone .NET 5.0 release is now feature complete with the new Preview 8, Microsoft announced, with a couple of go-live release candidates on tap ahead of the official November ship date.
.NET 5 was planned to be the culmination of Microsoft's transition from the old Windows-only .NET Framework to a cross-platform, open source offering intended to wrap up all .NET components into one package, so "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."
However, while that was Microsoft's original vision for .NET 5, it won't be realized completely with the November release as development delays have hampered the project such that some functionality has been put off until next year's .NET 6.0.
"Last year, we presented a vision of a unified .NET platform, with one set of libraries and tools for all .NET app types," said Richard Lander, program manager for the .NET team, in an Aug. 25 blog post.
"The benefits of this change are a single development experience for .NET, much higher compatibility between the various .NET app types and maintaining and improving just one code base. The change we made with WebAssembly, to use the .NET libraries, is a down-payment on that vision. We expect to deliver the rest of the vision, largely focused on Xamarin (iOS and Android), with .NET 6.0."
Lander's WebAssembly reference was in regard to .NET 5 supporting WebAssembly -- the foundation of the Blazor WebAssembly client-side component of Blazor -- with Mono runtimes and .NET libraries instead of Mono libraries, which were used in Blazor 3.2.
One factor that will cause .NET 5 to be incomplete, missing features that were originally planned, is the COVID-19 crisis.
"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," Lander said earlier. "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."
Another factor causing the delay were development problems with the aforementioned Blazor WebAssembly, which lagged behind the server-side Blazor Server component. Some of those problems could be attributed to the foundational WebAssembly project being quite new itself, not far removed from the experimental stage.
Yet another delaying factor was the "huge technical challenge" involved with transferring .NET Framework desktop components to the new cross-platform framework.
"We've made the relatively late decision to delay the Windows Desktop component (Windows Forms, WPF)," Lander said yesterday. "Windows Forms is near ready, but WPF is not, and we don't want to release only half the Windows Desktop component, in part because we don't test it in a split configuration. We hope to add the Windows Desktop component back as part of a 5.0 servicing update."
As for what did make it into .NET 5, Lander's post yesterday listed:
More about the above can be found in the blog post and .NET 5.0 Runtime Epics. Those are described as "a collection of features that together form a step-function level improvement in .NET, and typically requires the epic owner (a single developer or a small team) to go on a journey to satisfy the epic goals."
Going forward, Lander said, "The team is focused on closing out all of remaining 5.0 issues and getting the final bug fixes and improvements into the release. Even the 5.0 Runtime Epics issue has been closed.
"We're working on some deep-dive posts that we plan to publish before the final release on various topics. Look out for those. You can also expect an even longer post for the final release that covers a much broader set of improvements and features."
David Ramel is an editor and writer for Converge360.