Visual Studio 2019 v16.9 Preview 3 is Available Today

Jacqueline Widdis

Jacqueline

First of all, Happy New Year! We hope everyone had a safe and enjoyable time ushering in 2021. As a team, we are looking ahead with strong optimism for what is coming this year. While we work on planning our next series of releases, we are extremely excited for what we hope to deliver to the developer community as a whole. Closer to the heart, we cannot wait to add more value to those of you who turn to Visual Studio as a primary productivity tool.

Today the Visual Studio team welcomes Visual Studio 2019 v16.9 Preview 3 as our first preview release of 2021. We hope the new additions to C++, .NET Productivity, Test Explorer, Accessibility, and XAML Tools will please you. As you download our latest version, we hope this summary of features will build anticipation to try each of them.

Meanwhile, we encourage you submit any feedback or suggestions to our thriving online Developer Community.

What’s New in this Release?

C++

Opening this section, we are excited to mention additional command line tools. First, you can now target the LLVM version of the OPenMP runtime with the command line switch /openmp:llvm. Included in this item is added support for the lastprivate clause on #pragma omp sections and unsigned index variables in parallel for loops. Please keep in mind this switch is currently only available for the AMD64 target, and we do still consider this experimental.

Next, Visual Studio CMake projects now have first class support for remote Windows development. This includes configuring a CMake project to target Windows ARM64. Subsequently, you can also deploy and debug the project on a remote Windows machine from Visual Studio 2019.

Speaking of CMake, we have shipped binaries for Ninja and CMake with Visual Studio for quite some time. As promised we continue to upgrade them so you can make the most of recent versions of those tools. In this release, we have upgraded Ninja to v1.10 and CMake to v3.19.

Finally, we have marked many of the lock and guard types in our Standard Template Library (STL) implementation as nodiscard. This gives you better compiler errors if you use them incorrectly. You can take a look at the details in this pull request on GitHub.

IntelliSense in C++

Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so keep them coming! While we were working on stability, we also added extra functionality. Consequently, we can highlight Go-to-definition on module imports, indexing support for export {…}, and more accurate module reference for modules with identical names.

As implementation of a top-voted Developer Community suggestion ticket, we added completion for make_uniquemake_sharedemplace and emplace_back. These provide completion based on the specified type parameter.

Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3
Additional IntelliSense Completion in Visual Studio 2019 v16.9 Preview 3

We have also added improved language compliance of C++ by implementing some standards defects reports.

Address Sanitizer

After announcing ASan support for Windows last year, we have been continuously working on the experience and implementation.

The IDE integration for ASan-reported exceptions(vcasan.lib) now handles the complete collection of reportable ASan exceptions. Like other ASan libraries, this specific library, vcasan, is found automatically when you pass the /fsanitize=address. The compiler and linker will also suggest emitting debug information if they detect you’re building with ASan but not receiving debug information. As we approach our Visual Studio 2019 v16.9 generally available release, more details will be provided in the full ASan documentation.

As a final point, we have made some extensions and fixes to the Windows support.

Use Audio Cues with Test Explorer

We love to implement user suggestions, and this is one of them! Test Explorer can now play a customizable sound when a test run completes. You can select two different sounds. The first one is for indicating the test run succeeded with passing test results. The second chosen sound would indicate a test with at least one failure. What makes this even more exciting is the added accessibility of the Test Explorer by adding an audio cue for developers with visual impairments.

When you first use this feature, the sound selection is the default Windows 10 sound dialog which has many preset sounds. Rest assured, you can use any audio file from your computer! We had some fun with this, and hope you do too.

The Group By menu has also been made friendlier with screen readers as we have changed it to more concise wording and more efficient word order.

High Contrast Improvement

Speaking of accessibility, as part of the Visual Studio team’s commitment to such experiences, the IDE has the capability to detect if you have High Contrast settings enabled in Windows. If those options are enabled, Visual Studio 2019 will honor those settings.

Again, this suggestion has come from user advice that the Visual Studio themes should meet their needs better than the ones provided by the operating system. We have added a checkbox to give you control over whether you want Visual Studio to use Windows High Contrast mode.

To activate this feature, go to Tools > Options. Note the new option Use Windows High Contrast Settings. When this option is checked, the default setting will match the detected Windows High Contrast settings. If this box remains unchecked, you are free to choose any of the themes included with Visual Studio 2019. This theme choice will continue to persist even if Windows reports that a High Contrast color theme is in use.

.NET Productivity

The .NET Productivity team has been busy adding additional IntelliSense improvements. This release, we can highlight completion for preprocessor symbols. To see this in action, start typing the #if directive to see the new completion options available for symbols currently defined in scope.

IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3
IntelliSense Completion for Preprocessor Symbols in Visual Studio 2019 v16.9 Preview 3

You may notice a new change in Solution Explorer as it will now display the new .NET 5.0 Source Generators underneath the Analyzer node. This will allow you to easily navigate and view the generated code.

.NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3
.NET 5.0 Source Generators in Visual Studio 2019 v16.9 Preview 3

 

Go To All will no longer display duplicate results across netcoreapp3.1 and netcoreapp2.0 as well as results for partial types that exist to wrap another nested type. This will help declutter the results so you can easily find and navigate through your code. The results also now include the filename for partial symbols.

Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3
Go To All Easier Code Navigation in Visual Studio 2019 v16.9 Preview 3

XAML Tools (WPF, WinUI, UWP, & Xamarin.Forms)

As a quick highlight to end out this post, we have expanded MVVM Tooling for XAML. The functionality is the introduction of lightbulbs to generate commands and new view-models.

MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3
MVVM Tooling Support in Visual Studio 2019 v16.9 Preview 3

Happy New Year & Happy Developing

We sincerely hope these new features and additional stability give you reason to smile this new year. Thank you for your constant engagement in our virtual Developer Community. This is the best place to submit feedback and suggestions as we have teams looking out for new and up-voted issues.

Wrapping up this post, we wish you the happiest in 2021 and hope it is your most productive development year yet!

0 comments

Comments are closed. Login to edit/delete your existing comments

  • Avatar
    Christophe MOMMER

    Nice version with a bunch of intersting stuff.

    Any news about the next VS Version (maybe VS 2021 ?)
    Or VS 2019 will be updated constantly and there will not be new version of VS ?

    • Avatar
      Serhiy Malokhatko

      Honestly, what’s wrong with the VS2019? Are you expecting any new features?
      We really don’t want to spend extra money on just the next version.

  • Avatar
    Max Mustermueller

    Honestly I would love to see two things:

    1. Using machine learning to analyze and detect performance improvements in your code. It can start with some really easy stuff like using CHAR overload instead of string if its actually just a char. string.IndexOf(“a”) => string.IndexOf(‘a’). And then move over to more complex scenarios. You introduced intellisense suggestions based on machine learning for our projects, great. Why not expanding the machine learning thing?!

    2. Create and run a project that is not (permanently) saved on your disk. Too often I’ve only created a console/Winforms/WPF project to test some small stuff and then I had to delete it from hard drive. Why not “create” a project that is temporarily stored and when you close it, it’s automatically deleted from disk?! Maybe add a checkbox on create project dialog “Save project”?

  • Avatar
    Mark Quennell

    When you say “You may notice a new change in Solution Explorer as it will now display the new .NET 5.0 Source Generators underneath the Analyzer node.”, what conditions make this happen?

    I’m running the new preview and looking at my Analyzers list, I still just get the basic generator name, with no generated content beneath it…

    • Mika Dumont
      Mika DumontMicrosoft employee

      Hi Mark! This is a new C# compiler feature that lets C# developers inspect user code and generate new C# source files that can be added to a compilation. You may not notice it because of the following open bugs:
      1. If you have a multi-targeting project, it only appears under one which you can track here.
      2. In certain cases where you name your project in certain ways, it won’t appear which you can track here.

  • Avatar
    Neill Clift

    How do you install? Link in this page just creates a new window to the same page for me!

  • Avatar
    khuntias2002

    Thank You Microsoft for Visual Studio 2019.

    Any news about Python 3.8 support in Visual Studio. It would be great to use Visual Studio as a Python IDE

    • Avatar
      Savannah OstrowskiMicrosoft employee

      Python 3.8 is not planned for Visual Studio 2019 and is planned to be supported in the next major release of Visual Studio but we don’t have details to share on that release yet.

  • Avatar
    Alexandros Pappas

    We have a lot of business logic in .NET 4.0 which reads a message from an IBM MQ, does some processing, and writes to the database all in one transaction (coordinated by MSDTC). Is there some way to do this in .NET 5? As far as I know, .NET 5 does not support distributed transactions.

  • Avatar
    Premek VysokyMicrosoft employee

    I was waiting for the de-clutter of multiple targets for so long, thanks!

    However, can you also do the same for `Ctrl+F12` – Go To Implementation?
    So that navigating through the codebase is fast too?

  • Avatar
    Anand Arumugam

    How can I “upgrade” my existing VS2019 16.8.6 to this preview? Is it possible? Or should I do a fresh install?