January 18th, 2023

Visual Studio 2022 17.5 Preview 3 is here!

Anthony Cangialosi
Group Product Manager, DevDiv

Visual Studio 2022 17.5 Preview 3 is out and ready to install! This release continues to bring new productivity improvements for all developers and enhances many of the capabilities that shipped in 17.5 Preview 2.

Several of these changes in this preview came from asks in the community and are highlighted below. These and many other threads on Developer community are full of discussions, design ideas. We’d love to hear your suggestions and learn about any bugs or issues using report a problem.

General IDE Shell, Git, Editor, Debugger, and Diagnostics

.NET

C++

Setup

IDE

Accessibility Checker

Visual Studio now has an integrated Accessibility Checker that detects many common accessibility issues for XAML based desktop applications. The Accessibility Checker uses the same axe-windows engine as Accessibility Insights, which is the same accessibility testing tool the Visual Studio team uses for our own accessibility testing. The Accessibility Checker supports WPF, UWP, WinUI and MAUI (through WinUI). To access the Accessibility Checker, make sure XAML Hot Reload is enabled in the option page, then press the “Scan for Accessibility Issues” button in the XAML Live Visual Tree toolbar.

The Live Visual Tree in Visual Studio with the "Scan for Accessibility Issues" button circled.

When the Accessibility Issues button is clicked, the axe-windows engine will scan the running application for accessibility issues and present them in the Accessibility Checker window. The window will list the Automation ID, Rule, Description and a brief explanation of how to fix the particular issue for each item the axe-windows engine detects.

The Accessibility Checker panel in Visual Studio showing a variety of accessibility issues that were detected during a scan of an application.

 

Spell checking

Developers take pride in their code, and a misspelled word can be embarrassing. 17.5 Preview 3 has the first preview version of our spell checker for code documents which will help folks identify misspelled words in comments, strings and identifiers for C#, C++ and Markdown files. The feature is on by default, but can be disabled by unchecking the “Text spell checker” under “Manage Preview Features”. There is also a “Toggle Text Spell Checker” button on the main toolbar, as well as a “Toggle Text Spell Checker” in the main menu under Edit\Advanced.

The Visual Studio Editor showing the spell checker experience. On the editor, a string identifier is named "DetailChekkForIssues". A context menu indicates that 'Chekk' is misspelled and offers to either rename it to "DetailCheckForIssues", ignore the error or disable the spell checker.

When an error is found in a comment or a string, the spell checker offers to correct the given instance, but when the error is in an identifier, the correction will be refactored, ensuring that the resulting code gets the code correction across the solution. The spell checker will use the EN-US dictionary as well as the dictionary that matches the display language of Windows that you’re using.

Learn more about how to configure spell checker using .editorconfig.

 

External Source Debugging improvements

We have been doing a lot of updates to improve the performance of the decompilation scenarios. As a result, decompilation is significantly faster in 17.5.

Consider an example where we hit an exception in a WPF application, and we would like to decompile a few framework methods on the stack for debugging. The example shows a comparison of the same decompilation in 17.4 and 17.5. As you can see, we were able to decompile multiple modules on the stack in 17.5 in less time than it took single module decompilation in 17.4.

Decompilation Performance Comparision

 

Markdown now available as the default editor

The Markdown editor that we made available in 17.5 preview 2 is now available for all users and is now enabled by default.

The markdown experience in Visual Studio, with the raw markdown displayed on the left and a preview of the rendered HTML displayed on the right.

 

VS Intent based Suggestions

Introducing VS Intent based Suggestions – a new feature in Visual Studio that provides inline suggestions in the editor based on recent changes. This feature uses Machine Learning algorithms to understand the context of your code and suggests relevant changes based on the changes you are making. It helps coding more efficiently and accurately. Try it out and experience the power of intent-based suggestions in your development workflow today! Image shows an inline suggestion in the editor with [Tab] to accept. On the left side the text that will be changed, and on the right side the text that will be inserted.

 

Connect to SQL Server using Microsoft.Data.SQL.Client data provider

With Visual Studio 2022 17.5 preview 3 you can now connect to SQL Server databases in Server Explorer and the Data Source Configuration Wizard using the Microsoft.Data.SqlClient Data Provider. When adding a connection, you can use the new provider by selecting Microsoft SQL Server from the list of available Data Sources and Microsoft SqlClient Data Provider for SQL Server from the list of Data providers on the Choose Data Source dialog.

 

.NET

Support for HTML Code Actions in Razor Files

You can now view HTML, CSS, and JavaScript-related code actions in your code files, including your Razor files! New code actions include the following:

  • Remove tag (and leave contents)
  • Encode image in Base64
  • Insert image height and width

A GIF demonstrating new code actions for HTML code

 

Razor and Roslyn Performance Improvements

We’ve heard a lot of feedback from you about performance issues, and we’ve taken steps to address several performance-based concerns in the Razor and Roslyn spaces to make you more productive. Alongside some minor Razor performance improvements, some of the Roslyn improvements include the following:

  • ProjectConfiguration switching
  • Faster code analysis
  • Typing perf improvements to reduce UI delays in Visual Studio

Build Acceleration for faster incremental builds

Build Acceleration helps complete incremental builds more quickly, making it faster to build your projects, while also speeding up other actions that depend upon builds such as debugging, running unit tests, and publishing applications.

The feature works by identifying situations where Visual Studio can copy files on disk rather than scheduling a build. For solutions with many project references, we’ve seen build times cut by as much as 80%.

Build Acceleration is currently opt-in, and it can be enabled by setting the AccelerateBuildsInVisualStudio property to true in your projects. It works best when enabled for all projects in your solution, which can be done by setting the property in a Directory.Build.props file.

C++

Brace pair colorization for C++

You can now visually distinguish each set of opening and closing braces for your C++ code making it easier to see your code’s scope or find any missing braces. This is currently only available for C++. We are also working on brace pair colorization for C#. Stay tuned for that in an upcoming release.

C++ code with three pairs of curly brackets. Each matching pair of opening and closing bracket has a different color (blue, pink and yellow).

 

Open Container in terminal

We have added the capability to open your Dev Container in Visual Studio’s integrated terminal. With your project open in a Dev Container, right click the devcontainer.json file and select “Open Container in terminal”.

Solution explorer with context menu open on devcontainer.json file under .devcontainer folder. New option focused in context menu, Open container in terminal.

This will open the integrated terminal and run the docker exec command to open an interactive shell in your Dev Container.

Visual Studio Termina Tool Window showing docker command opening container.

 

Setup

To help make the latest versions of Visual Studio available to users that deploy the IDE using winget, Microsoft is taking ownership and will officially support the Visual Studio packages that are available through the Windows Package Manager tool. The existing structure will be modified to better reflect how we ship and maintain the product, and the new packages will be automatically updated as part of our release process. If you have existing scripts or commands that depend on the existing directory structure or package identification, there may be a onetime fix to support our new publishing process. We are very grateful to the community members, especially jedieaston, for their maintenance work in the repository to date.

 

Share your feedback and help us build a better Visual Studio!

As you use Visual Studio, let us know what you love, what you like, and where you’d like us to improve. You can share feedback with us via Developer Community: report any bugs or issues via report a problem and share your suggestions for new features or improvements to existing ones.

Stay connected with the Visual Studio team by following us on YouTube, Twitter, LinkedIn, Twitch and on Microsoft Learn.

As always, we appreciate the time you’ve spent reporting issues and hope you continue to give us feedback on how we’re doing and what we can improve.

Author

Anthony Cangialosi
Group Product Manager, DevDiv

Anthony is the program manager for Visual Studio’s core IDE. Anthony joined the Visual Studio team in 2001 and has contributed experiences across the IDE including VS’s identity infrastructure the Shell, the VS SDK, Ecosystem, VSIP, mobile device development and many others.

25 comments

Discussion is closed. Login to edit/delete existing comments.

  • Ishan Mehta

    Is Endpoint Explorer part of this release?

    • AlanW

      this comment has been deleted.

  • Jonathan Laurin

    Any plans to have the Accessibility Checker for HTML / Razor as well?

  • Mike-E

    It would be super amazing and valuable to have more than “minor” performance improvements w/ Razor/Blazor. My solution has over 130k lines of C# and 35k lines of Razor. The struggle is real w/ trying to develop these days 😭
    https://github.com/dotnet/razor/issues/8096

    • Leslie RichardsonMicrosoft employee

      Thanks for the feedback Mike-E and I’m sorry that you’re experiencing those performance roadblocks. Perf is our top priority for Razor and we hope to have more performance-related updates in the upcoming VS version releases.

      • Mike-E

        Thank you for your reply, Leslie. The last we spoke you also assured me that you were going to look into Collapse Projects, which still seem to be unfinished. I am reminded of your assurance every time I would like to collapse the projects in my solution which is comprised of over 150 projects now... and counting. :) As you can probably imagine, this is quite often.

        Any update would be appreciated:
        https://developercommunity.visualstudio.com/t/Upgrade-Popular-MSFT-Extensions-to-VS202/1500844

        Read more
  • Ahmed Mohamed Abdel-Razek · Edited

    brace pair colorization for c# in the work, ah finally

  • Johan Visser

    What about a decent designer for .NET MAUI?
    It is XAML, so why is there no designer?

    And maybe a SVG editor.

    For the rest, keep up the good work. You are making my work easier with every update

  • Paulo Pinto

    Instead of caring to improve C++/WinRT tooling to achieve feature parity with the VS tooling for C++/CX XAML and component authoring development, deprecated since 2015, we get colour braces.

    And yes, I am aware of the half baked extensions that exist from community contributors.

  • ChM-TM

    How did you achieve the speed up for external source debugging?