.NET 6 Preview 4 Ships 'Ready for Real-World Testing'
Many features in the just-shipped .NET 6 Preview 4 are close to being in final form, Microsoft says, making it "ready for real world testing if you haven't yet tried .NET 6 in your environment."
That doesn't mean it's ready for production use, though, as "go live" builds for that aren't expected until August, ahead of a newly finalized Nov. 9 GA release date. At that time, Microsoft's massive effort to unify all .NET components under one umbrella offering will reach culmination. That unification effort was originally scheduled for .NET 5 but Microsoft missed that November 2020 target date because of the COVID-19 pandemic and other factors.
The .NET 5 unification effort was announced in May 2019, when Microsoft's Richard Lander 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."
Later, Lander explained more with GA release of .NET 5: "As part of .NET 5.0 and 6.0, we are unifying .NET into a single product experience, while enabling you to pick just the parts of the .NET platform that you want to use. If you want to target Mobile and not WebAssembly, you don't need to download the WebAssembly tools, and vice versa. Same with ASP.NET Core and WPF. You'll also have a much easier way to acquire all the .NET tools and build and runtime packs that you need from the command line. We're enabling a package manager experience (including using existing package managers) for .NET platform components. That will be great for many scenarios. Quick construction of a development environment and CI/CD will probably be the biggest beneficiaries."
Now today (May 25) he expounded more on the effort as the Microsoft Build 2021 online conference got underway.
"We've talked a lot in past posts and at conferences about .NET unification yet it is missing from the themes," he said. "Platform unification is baked into everything we do and has no need for its own theme. One can think of it as being the one mega-theme above and beyond the ones that are listed. It is interleaved through multiple of the themes and is a basic assumption of the team going forward."
Those themes he's talking about refer to the Themes of .NET site that capsulizes the development objectives of .NET, with themes described as "A top-level/overarching objective that will span the project leases. A theme will often have an associated document describing those objectives."
Lander listed those themes along with one-line descriptions:
- .NET appeals to new developers, and students -- Deliver intentionally streamlined experiences in Visual Studio products, with clear docs, simpler code models with fewer files and concepts to learn, and intuitive paths to deploying artifacts to test and production environments.
- .NET has a great client app development experience -- Deliver a cross-platform client app foundation that seamlessly caters to desktop, mobile, and web developers and that builds on and extends existing application types like Blazor, and Xamarin.
- .NET is recognized as a compelling framework for building cloud native apps -- Deliver fundamental cloud-native features primarily aimed at performance and observability, improved integration with the cloud-native and container ecosystems, and a cloud-native component (yarp) that demonstrates much of the value of .NET with a critical cloud use case.
- Enterprise and LTS -- Deliver simpler and more predictable models for using .NET with mission critical apps and better cater to the needs of large enterprise and government customers.
- Grow the .NET ecosystem through increased Quality, Confidence, and Support -- Establish a long-term community collaboration that intends to elevate community developers to a similar level as Microsoft, and (on the flip-side) delivers new features and experiences that make it easier for enterprise developers to depend on libraries from community open source projects that are not necessarily affiliated with or backed by a large company.
- Improve inner-loop performance for .NET developers -- Deliver developer productivity improvements that include improving build performance, Hot Restart and Hot Reload.
- Improve startup and throughput using runtime execution information (PGO) -- Deliver a new model for improved performance based on runtime information that can be used for faster startup, higher throughput and smaller binaries.
- Meeting Developer Expectations -- Deliver improvements across the .NET product based on feedback and to enable new scenarios with existing features.
Turning to what's new in .NET 6 Preview 4, Lander's post led off with Hot Reload, which we covered today in this article: Hot Reload Hits .NET (Kinda).
"Hot Reload is a new experience that enables you to make edits to your app's source code while it is running without needing to manually pause the app or hit a breakpoint. Hot Reload improves developer productivity by reducing the number of times you need to restart your running app," said Lander, program manager for the .NET team.
"With this release, Hot Reload works for many types of apps such as WPF, Windows Forms, WinUI, ASP.NET, Console Apps and other frameworks that are running on top of the CoreCLR runtime. We're also working to bring this technology to WebAssembly, iOS and Android apps that run on top of Mono, but this is still coming (in a later Preview)."
Other new features in Preview 4 include:
"We're well into the .NET 6 release at this point," Lander concluded. "While the final release in November still seems like a long way off, we're getting close to being done feature development. Now is a great time for feedback since the shape of the new features are now established and we're still in the active development phase so can readily act on that feedback."
More information on .NET 6 can be found in the Build presentation, .NET 6 deep dive; what's new and what's coming.
David Ramel is an editor and writer for Converge360.