Visual Studio

Visual Studio 2019 version 16.0.1

Install

IDE

  • Collaborate with others using Visual Studio Live Share, which is installed by default. Additional language support for C++, VB.NET, and Razor gives guests a solution view and sharing of source control diffs.
  • Open code you recently worked on or start from one of the most commonly used flows like clone, open, or create a project through the new start window.
  • Create new projects with an improved search experience and filters using the new list of templates sorted by popularity.
  • Have more vertical room for your code and a modernized look and feel through a set of new visual changes in the shell.
  • View a sharper version of your IDE regardless of your display configuration and/or scaling, as we have improved support for per monitor awareness.
  • Use an improved search capability in Visual Studio for menus, commands, options, and installable components.
  • Quickly understand your code file's 'health' with a document indicator. Run and configure through a one-click code cleanup from the indicator.
  • Easily manage the preview features you are opted in to with a new Preview Features page in the Options dialog.
  • Create new projects with improvements in tag-based search and an easily accessible "Recent project templates" list.
  • Create new items directly from Visual Studio Search and find results faster with improved relevance.
  • Stay informed of important information, such as Visual Studio Live Share requests, with a new notifications experience.
  • Save a collection of code cleanup fixers as a profile to easily select the fixers you want run during code cleanup.
  • Trigger new .NET refactoring and code fixes.
  • Configure .NET Core projects more easily with first-class project files.
  • See the status of your extensions with Preview, Paid, and Trial tags in the Extensions and Updates dialog.
  • Check and configure which Preview features you want active since the defaults have been reset in this Preview.
  • Keep your extensions up-to-date by excluding certain Test Window APIs that have been marked as deprecated in this release.
  • Sign in, browse, and one-click clone or connect to your hosted repositories from Azure DevOps through the start window.
  • Install extensions for other source control hosts to view repositories owned by you and your organization.
  • Experience an improved Blue theme experience that addresses feedback by dialing down the luminosity, improving overall contrast and addressing other usability issues.
  • Apply code style preferences from the command-line with the dotnet format global tool.
  • MSBuild and Visual Studio now target .NET Framework 4.7.2 by default.
  • We have removed Azure App Service-related features from Server Explorer; equivalent functionality is instead available in Cloud Explorer.

Performance

General Debugging and Diagnostics

  • Search keywords within the Watch, Autos, and Locals windows while debugging to improve your ability to find objects or values.
  • View a dropdown of format specifiers in the Watch, Autos, and Locals windows when inspecting data.
  • Use a custom visualizer, now compatible with .NET Core.
  • Debug very large applications with large numbers of modules and PDBs.
  • Launch Google Chrome with custom arguments and debug your JavaScript applications all within the Visual Studio IDE.
  • Use Hot Path Highlighting for CPU and DotNet Object Allocation tools in the Performance Profiler.
  • Break when a specific object's property value changes in .NET Core applications using data breakpoints, a feature that was originally exclusive to C++.
  • We have updated the UI for searching in the Autos, Locals, and Watch windows with a simpler interface. The Search Deeper function has been changed to a dropdown so you can quickly select how deep you want your initial and subsequent searches to be.

Source Control and Team Explorer

  • Temporarily store changes so you can work on another task by using Team explorer's Git tools support for Git stash.
  • Check out the optional extension available on the Visual Studio Market Place, Pull Requests for Visual Studio, that integrates Pull Request reviews into Visual Studio.
  • Use the new Azure DevOps work item experience that focuses on developer workflows, including user-specific work item views, creating a branch from a work item, searching for work items with #mentions, and inline editing.

Extensibility

  • Use a single, unified Visual Studio SDK in the NuGet package Microsoft.VisualStudio.SDK.
  • Take advantage of our update to the VSIX Project to now include an AsyncPackage.
  • Experiment with a new Empty VSIX Project template that we have added.
  • Know if an extension is Free, Paid, or Trial, as it is now indicated inside the Extensions and Updates dialog.

Programming Languages

C#

Experience a preview of the 8.0 language features that the C# compiler now supports, including:

  • Nullable reference types: When the feature is turned on (for example, with #nullable enable or at the project-level with <NullableContextOptions>enable</NullableContextOptions>), reference types are treated as nullable if annotated with ?, and as non-nullable otherwise. The compiler then analyzes where null values flow and warns about likely unsafe usages.
  • switch expressions: Offers switch-like semantics in an expression context.
  • Recursive pattern matching: New patterns allow testing fields/properties and positional elements (from tuples or deconstruction).
  • Support for Range and Index types being used in CoreFX for slicing, including the x..y literal syntax for ranges.
  • Asynchronous streams represented by IAsyncEnumerable<T> can be enumerated asynchronously with await foreach and can be produced with async IAsyncEnumerable<T> iterator methods.
  • using declarations: Dispose at the end of the current block, without increasing the level of nesting. ref structs can be disposed by implementing a public Dispose() method.
  • static local functions: Local functions marked with static cannot reference this or variables in the enclosing functions.
  • Local functions and lambdas can now declare parameters and locals that shadow names of variables of the enclosing functions.
  • Null-coalescing assignment: x ??= y; only assigns y to x if x was null.

Find out more in Mads' overview of C# 8.0.

See the C# language feature status and breaking changes for more details.

Additionally, you can use more modern C# language features in Visual Studio by default.

C++
  • Save time when writing C++ and XAML code by using Visual Studio IntelliCode, an optional extension that gives AI-assisted recommendations for your code.
  • Experience in-editor code analysis warnings. Code analysis runs automatically in the background and warnings display as green squiggles.
  • Try the new Template Bar, which uses the Peek Window UI and supports nested templates.
  • Run the new, updated implementation of the C++ Lifetime profile checker.
  • Configure your CMake projects using the new CMake Settings Editor, which provides an alternative to CMakeSettings.json.
  • Try out a host of backend improvements including OpenMP SIMD vectorization, link-time speedups, and more aggressive inlining.
  • Open existing CMake caches generated by external tools, such as CMakeGUI, or customized meta-build systems.
  • Improve analysis with /Qspectre for providing mitigation assistance for Spectre Variant 1 (CVE-2017-5753). For more information, see the Visual C++ Team Blog post.
  • Quickly switch between your previous sample arguments now that the Template Bar for Template IntelliSense has a Most Recently Used dropdown.
F#
  • F# 4.6 is released, along with various other compiler improvements.
  • Experience performance improvements for larger solutions and various bug fixes for F# and the F# tools.
  • Learn about some of the awesome work done by open source contributors to the F# language and tools.
JavaScript/TypeScript
Python
  • Easily add Python virtual and conda environments using the Python Add Environment dialog.
  • Work more easily with Python environments, including improved support for Open Folder workspaces using a new Python environment selector toolbar.
  • Create Visual Studio Live Share sessions and collaborate on Python code with other Visual Studio users.

Web Technologies

Container Tools

Mobile Development with Xamarin

Universal Windows Platform (UWP)

  • Preserve comments, spacing, namespaces, and any other text changes when making edits from the designer. The package manifest designer now maintains strict fidelity to xml changes in the Package.appxmanifest file.
  • Use the Windows Application Packaging project for .NET Core projects to produce MSIX packages.
  • Use the Package Creation Wizard for direct Microsoft Store submissions.
  • Deployment to Windows Mobile devices is no longer supported in Visual Studio 2019. Attempts to deploy to a Windows 10 Mobile device will result in an error saying "Deployment to Windows Mobile devices is not supported in Visual Studio 2019". If you need to continue working on an application for Windows 10 Mobile devices, continue to use Visual Studio 2017.

SQL Server Data Tools

  • Experience an updated SSDT and DacFX that now includes UTF-8 collation support.