One Month to GA: .NET 7 Release Candidate 2 Ships
The next stop for .NET 7 is General Availability, one month out, as Microsoft today shipped .NET 7 Release Candidate 2.
For a while now, all major new features have been introduced, and everything is getting polished up and finalized ahead of a GA debut during next month's Net Conf 2022, which begins Nov. 8.
The debut of .NET 7 will mark a long and winding unification effort undertaken by Microsoft, which in a years-long undertaking has supplanted the old, proprietary, Windows-only .NET Framework with a cross-platform, open source framework (starting out as .NET Core before becoming just .NET 5, .NET 6 and so on). .NET 7 will finally unify all the disparate .NET dev tooling components, enabling developers to build all types of apps -- desktop, mobile, web and more -- on the same Base Class Library (BCL), runtime and compilers. That was supposed to happen with .NET 5, and then .NET 6, but schedules slipped.
The huge delay was caused by myriad problems -- including a global pandemic -- but with the finalization of .NET MAUI this past summer, all the moving parts have taken shape and are coalescing into final GA form to finalize the full transformation.
.NET 7 is ready for production, but Microsoft advises it has been tested with with Visual Studio 17.4 Preview 3 (for which release notes were just published today) and recommends that developers turn to preview channel builds to try .NET 7 with Visual Studio.
With no major new features to tout, Microsoft instead used today's announcement post to highlight the core themes of .NET 7 and summarize new developments in C#, libraries, the SDK and so on, specifically discussing topics including "how to re-enable reflection fallback for System.Text.Json source generation" (regarding an intentional breaking change) and "new analyzers that help you consume APIs the right way."
As far as those major themes, they are conveniently detailed in Microsoft's Themes of .NET site, which breaks things down into categories for the runtime, libraries, application models, tooling, acquisition and deployment, and infrastructure.
That site also provides a customizable roadmap with which developers can see progress on various work items across those major themes. The screenshot above, for example, shows that the work item "Developers can confidently generate single file apps that work for the supported target platforms" in the runtime category was checked off in .NET 7.0 Preview 7, while "Mobile developers will experience improved app startup time when targeting .NET 6" was completed in RC1.
.NET 7 will be released with Standard Support (which used to be called Current), meaning that Microsoft will fully support it for 18 months, as opposed to the 36 months of support that comes with Long-Term Support (LTS) offerings like .NET 6.
For those who want to dig really deep into all of the details of .NET 7, Microsoft offered this list of announcement posts for all previous previews and RC1:
- Announcing .NET 7 Preview 1: .NET 7 builds on the foundation established by .NET 6, which includes a unified set of base libraries, runtime, and SDK, a simplified development experience, and higher developer productivity. Major areas of focus for .NET 7 include improved support for cloud native scenarios, tools to make it easier to upgrade legacy projects, and simplifying the developer experience by making it easier to work with containers.
- Announcing .NET 7 Preview 2: The second preview of .NET 7 includes enhancements to RegEx source generators, progress moving NativeAOT from experimental status into the runtime, and a major set of improvements to the "dotnet new" CLI experience.
- Announcing .NET 7 Preview 3: The third preview of .NET 7 includes enhancements to observability, startup times, codegen, GC regions, native AOT compilation, and more.
- Announcing .NET 7 Preview 4: The fourth preview of .NET 7 includes enhancements to observability in the .NET implementation of OpenTelemetry, the addition of properties to track microseconds and nanoseconds in date and time structures, new metrics for caching extensions, performance-boosting "on stack replacement, APIs" to work with .tar archives, and additional features as part of an ongoing effort to improve the performance of and add features to regular expressions in .NET 7.
- Announcing .NET 7 Preview 5: This preview of .NET 7 includes improvements to Generic Math which make the lives of API authors easier, a new Text Classification API for ML.NET that adds state-of-the-art deep learning techniques for natural language processing, various improvements to source code generators and a new Roslyn analyzer and fixer for RegexGenerator and multiple performance improvements in the areas of CodeGen, Observability, JSON serialization / deserialization and working with streams.
- Announcing .NET 7 Preview 6: This preview of .NET 7 includes improvements to type converters, JSON contract customization, System.Formats.Tar API updates, constraints to .NET template authoring, and performance enhancements in the CodeGen area.
- Announcing .NET 7 Preview 7: This preview of .NET 7 includes improvements to System.LINQ, Unix file permissions, low-level structs, p/Invoke source generation, code generation, and websockets.
- Announcing .NET 7 Release Candidate 1: This is the first of two release candidates (RC) for .NET 7 that are supported in production.
David Ramel is an editor and writer for Converge360.