Microsoft has released Visual Studio 17.8 as part of its .NET 8 release wave, with hundreds of new features including stronger Git pull request support, IntelliTest test generation for modern .NET, and tools for cross-platform developers including MAUI (Multi-platform App UI).
There are hundreds of new features though most will be familiar to developers from preview versions. Seemingly minor changes can make a big difference to coders, like case-preserving Find and Replace, already a feature of VS Code, which replaces “oneThing” with “anotherThing” and “OneThing” with “AnotherThing” in a single operation.
Microsoft’s Adrian Murphy, Senior Lead Technical Program Manager, makes a point of the “emphasis on community-driven enhancements.” While there is truth in this, developers may wonder why features take so long to deliver. Case-preserving Find and Replace is an issue from 2019.
Another feature, adding IntelliTest support for .NET Core as well as .NET Framework goes back to 2018. IntelliTest is a feature of the Enterprise edition that generates unit tests for C# applications. The new release adds support for modern .NET as well as x64 applications, though in preview.
Git pull request support is now both integrated into Visual Studio and out of preview, following another long-running issue which saw this key feature previewed, removed, and then re-introduced.
Murphy writes that using GitHub Copilot “gets a lot easier in the newest release of Visual Studio” though this is based on it now being an optional component in the installer, rather than improvements to the Copilot extensions themselves. There are two Copilot extensions, one for Copilot auto-complete and one for Copilot Chat. Neither are well-rated by developers, and leaving aside complaints about the cost of a subscription, a common refrain is that it works much better in VS Code. “This is a very useful tool, but I have used it on both VS Code and JetBrains Rider and those implementations are much better than this version in Visual Studio,” said a recent comment.
Developers of cross-platform Windows applications may want to look again at MAUI, which is now in its third major release with updated tooling in the new Visual Studio. Principal Product Manager David Ortineau enthuses about the update which he says “turns the corner from our unifying of the Xamarin platform with .NET into pushing forward .NET as one.” The main emphasis is on quality rather than new features, addressing complaints that MAUI has suffered from too many bugs and deficiencies in the past. There are some new features though, including the ability to publish as an unpackaged application for Windows.
MAUI is one among many approaches to cross-platform applications, and developers have noticed that Microsoft itself does not appear to use it much. Visual Studio Code, Office, and Teams are all cross-platform, but none use MAUI. Office uses React Native in places, while VS Code is built in TypeScript with Electron, a desktop wrapper for Google’s Chromium browser. Teams is written in React hosted by Edge WebView2, though an older Electron-based version remains supported.
There is a way to get the packaging benefits of MAUI without committing deeply to the framework, and that is via an option called Blazor Hybrid, also improved in this release. This is the closest thing to an official cross-platform GUI for .NET 8 and wraps an ASP.Net Blazor application, using a MAUI component called BlazorWebView. Apps can be deployed to Android, iOS and Mac Catalyst as well as Windows. Unlike some varieties of Blazor, this approach does not use WebAssembly. It allows code-sharing between desktop and ASP.NET Core applications using Razor Class Libraries.
Despite the attractions of web and cross-platform, there are still plenty of developers who turn to Visual Studio for rapid development of Windows desktop applications. What framework will they use? Often, it is the venerable Windows Forms, because, as noted in the comments to Murphy’s post, “still no visual designer for MAUI (XAML) or Blazor (HTML/CSS). Only WinForms has a solid, mature, time-saving GUI designer.”
Windows Forms though is out of date and minimally maintained. The Windows App SDK, the official modern GUI framework for the platform, still has no visual designer.
Visual Studio is huge, capable, and near-essential for developing native Windows applications, but always struggles to catch up with where developers want it to be.