.NET 6 LTS and VS 2022: Major releases spoilt by continuing concern about Microsoft's commitment to open source
Both bring new features and better performance
Microsoft has released .NET 6.0 with long-term support, and Visual Studio 2022, its all-purpose Windows IDE.
The roll-out is a big one for Microsoft's development platform as .NET 6.0 is the first LTS release since .NET Core 3.1 in December 2019. LTS releases are scheduled to come every two years, with short-term releases in between. The current .NET 5.0 will go out of support in mid-2022.
Developing with .NET 6 is not supported in Visual Studio 2019. Visual Studio developers wishing to use .NET 6 must upgrade immediately to Visual Studio 2022. Users of the cross-platform Visual Studio Code have an easier time – it is just a matter of downloading the .NET 6.0 SDK.
The relationship between .NET and these two varieties of Visual Studio (there is also a Mac version) has been contentious recently since Microsoft planned to remove a key feature, Hot Reload, from the open-source SDK to make Visual Studio more compelling. The decision was reversed after an outcry, but with damage to Microsoft's open-source credentials, especially after the .NET Foundation was revealed to be legally bound to Microsoft and not truly independent, despite its claims.
In a post marking today's release, Microsoft bragged of "massive gains in performance" such that they have already reduced "the cost of hosting cloud services at Microsoft." We looked at some of those gains here.
There is a lot more fresh stuff, as you would expect, especially for those who skipped .NET 5.0. The C# language is now at version 10 with a global using directive, value type structs, interpolated strings, and more new features, while F# is at version 6.0 and includes task support and more.
The aforementioned Hot Reload allows editing of source code while an app is running, with the result showing without full rebuild. Blazor WebAssembly now has ahead-of-time compilation: this technology enables C# to be used to code browser applications running on the client as well as on the server. HTTP/3 support has been added to ASP.NET Core. Apple Silicon is supported. Single file applications, described as "a single-file binary that has exactly one file on disk and does not need to extract any of the core runtime assemblies to temporary directories," are now supported on Windows and macOS as well as Linux.
Visual Studio 2022 is the first 64-bit release of the IDE itself – though it has been able to compile 64-bit applications for years – and includes "AI-assisted code completion" called IntelliCode, though there is no news yet about GitHub's more advanced Copilot in Visual Studio, it is likely to appear at a future date. Copilot for Visual Studio Code is still in invitation-only preview. Find in Files is claimed to be "as much as 3x faster." The team said that the IDE is "more lightweight" than before, perhaps learning from its VS Code cousin.
- GitHub CEO forks off: Nat Friedman to quit this month, replacement will report to exec behind .NET Hot Reload fiasco
- Microsoft under fire again from open-source .NET devs: Hot Reload feature pulled for sake of Visual Studio sales
- Amid drama at .NET Foundation, Microsoft's De Icaza reveals it was meant to be like GNOME Foundation
- Microsoft .NET updates include C and C++ code in Blazor WebAssembly, release date for Visual Studio 2022
Other new features in Visual Studio 2022 range from support for solutions that include projects in multiple Git repositories, to a revamped user interface with a new font for code called Cascadia, and refreshed icons.
Visual Studio comes in three editions. Community is free and supported for individuals, or for up to five users in "non-enterprise organisations," defined as organisations with fewer than 250 PCs or under one millions US dollars in revenue. Enterprises are not licensed to use the community edition for developing and testing applications except in limited circumstances, such as for open-source software. Professional is paid-for and unrestricted. The Enterprise edition adds features such as IntelliTrace debugging (record and trace code execution history), Code Coverage, and other test and performance tools.
While that all sounds good, there are some disappointments for .NET developers. One is that Microsoft confirmed recently that .NET 6 is not coming to UWP (Universal Windows Platform) apps. Windows desktop developers are being directed towards WinUI 3 and the Windows App SDK, or may continue developing with the old Windows Forms and Windows Presentation Foundation, though if the latter path is chosen, they will not get the full Windows 11 look and feel using what Microsoft calls Fluent Design. Another issue is that the cross-platform MAUI (Multi-Platform App UI), based on Xamarin technology, is not ready yet and is still in preview, set for release next year. MAUI enables mobile and desktop apps to be built for iOS, Android, macOS and Windows, from one code base.
Perhaps the biggest concern is that Microsoft's internal debate about the future of .NET and the balance between Microsoft's commercial interests and those of the open-source community does not yet seem resolved, despite the backtrack over Hot Reload.
One might have thought that Microsoft's commercial interests are well aligned with open-source users since the company benefits when .NET applications are hosted on Azure, and the success of VS Code along with the continuing popularity of GitHub has great potential to attract developers to the platform.
It is now apparent that some within the company do see Visual Studio as in competition with VS Code, and worry about giving too much away with open-source .NET, and this may continue to be corrosive for the framework.
The .NET Foundation held a discussion on YouTube with its community last week, which .NET developer George Stocker described as inconclusive, along with GitHub-hosted discussions. "There's been no followup from the Board to the questions asked, or even a timeline for when the questions will be answered... the discussions seem to be an outlet valve for the community's frustration rather than a means to get the .NET Foundation and its community back on the same page," he said.
Still, .NET 6.0 and Visual Studio 2022 are replete with new features, performance is improved, and developers will be glad to be able now to code for an LTS runtime while also moving on from .NET Core 3.1. ®