What’s New in Visual Studio 2017

[Updated for the 15.3 release]

In March this year we’ve got a brand new and shiny Visual Studio. To many of us the favorite development environment.

Here is a high-level recap of the changes made:

  • Redefined fundamentals. A new setup experience means that you can install more quickly and install what you want when you need it. Whether you want to load large solutions and projects, or work on folders of code, or even a single file of code, Visual Studio starts faster. And, Visual Studio helps you stay focused on the big picture, especially for teams embracing DevOps.
  • Performance and productivity. Microsoft has focused on new and modern mobile, cloud, and desktop development capabilities. Also the overall acquisition, performance, and general developer productivity experiences have been improved . Visual Studio starts faster, is more responsive, and uses less memory than before.
  • Cloud app development with Azure. A built-in suite of Azure tools enable you to easily create cloud-first apps powered by Microsoft Azure. Visual Studio makes it easy to configure, build, debug, package, and deploy apps and services on Azure.
  • Mobile app development. In Visual Studio 2017, you can innovate and get results fast with Xamarin, which unifies your multi-platform mobile requirements by using one core codebase and set of skills. Go mobile with your existing teams, technology investments, and C# code to deliver consumer-grade experiences ahead of schedule and under budget. Accelerate every step of the mobile lifecycle to deliver world-class consumer experiences or a portfolio of productivity apps to empower your workforce.
  • Cross-platform development Seamlessly deliver software to any targeted platform. Extend DevOps processes to SQL Server through Redgate Data Tools and safely automate database deployments from Visual Studio. Develop and release multiplatform games by using Visual Studio Tools for Unity. Or, use .NET Core to write apps and libraries that run unmodified across Windows, Linux, and macOS operating systems. (And new in 15.3: Get side-by-side support for .NET Core 2.0 SDKs.)

NOTE: For a complete list of new features and functionality in Visual Studio 2017, see the Release Notes.

Here is more detailed information about some of the most notable improvements and new features in Visual Studio 2017.

Redefined fundamentals

A new setup experience

Download Visual Studio 2017 or Check Visual Studio system requirements

Visual Studio makes it easier and faster to install just the features you need, when you need them. And, it uninstalls cleanly, too.

The most important change to note when you install Visual Studio is its new setup experience. On the Workloads tab, you’ll see installation options that are grouped to represent common frameworks, languages, and platforms. It covers everything from .NET desktop development to C++ application development on Windows, Linux, and iOS.

Choose the workloads you need, and change them when you need to.

Visual Studio 2017 setup dialog

Want to pick your own components instead of using workloads? Select the Individual components tab from the installer. Want to install Language Packs without also having to change the Windows language option? Choose the Language packstab of the installer.

To learn more about the new installation experience, including step-by-step instructions that walk you through it, see the Install Visual Studio page.

Performance and productivity

Sign in across multiple accounts

New identity service has been introduced in Visual Studio that allows you to share user accounts across Team Explorer, Azure Tools, Windows Store publishing, and more.

You can stay signed in longer, too. Visual Studio won’t ask you to sign in again every 12 hours. To learn more, see the Fewer Visual Studio Sign-in Prompts blog post.

Start Visual Studio faster

The new Visual Studio Performance Center can help you optimize your IDE start-up time. The Performance Center lists all the extensions and tool windows that might slow down the IDE startup. You can use it to improve startup performance by determining when extensions start, or whether tool windows are open at startup.

Decrease solution load time

Working on solutions that contain large numbers of projects doesn’t mean you have to work with all the files or projects at one time. Now you can edit and debug without waiting for Visual Studio to load every project. To try this out with managed projects, turn on the Lightweight Solution load from Tools -> Options -> Projects and Solutions.

Options dialog box in Visual Studio 2017

Faster on-demand loading of extensions

Visual Studio is moving its extensions (and working with third-party extensions too) so that they load on-demand, rather than at IDE startup. Curious about which extensions impact startup, solution load, and typing performance? You can see this information in Help -> Manage Visual Studio Performance.

Options dialog box in Visual Studio 2017

Manage your extensions with Roaming Extensions Manager

It’s easier to set up each development environment with your favorite extensions when you sign in to Visual Studio. The new Roaming Extension Manager keeps track of all your favorite extensions by creating a synchronized list in the cloud.

To see a list of your extensions in Visual Studio, click Tools > Extensions & Updates, and then click the Roaming Extension Manager.

Extensions and Updates dialog” src=”https://github.com/MicrosoftDocs/visualstudio-docs/raw/master/docs/ide/media/vs2017ide-extensions-and-updates.png” alt=”Visual Studio 2017 – Extensions and Updates dialog”>

The Roaming Extension Manager tracks all the extensions you install, but you can choose which ones you want to add to your Roaming list.

Visual Studio 2017 - Extensions and Updates dialog

When you use the Roaming Extension Manager, there are three icon types on your list:

  • Roamed icon Roamed: An extension that is part of this Roaming List, but not installed on your machine. (You can install these by using the Download button.)
  • Roamed & Installed icon Roamed & Installed: All extensions that are part of this Roaming List and installed in your dev environment. (If you decide you do not want to roam, you can remove these by using the Stop Roaming button.)
  • Installed icon Installed: All extensions that are installed in this environment, but are not part of your Roaming List. (You can add extensions to the Roaming List by using the Start Roaming button.)

Any extension that you download while you are signed in is added to your list as Roamed & Installed and is part of your Roaming list, which gives you access to it from any machine.

Experience live architecture dependency validation and live unit testing

As you type code in the text editor, Visual Studio notifies you in real time of architectural dependency rule violations by using Dependency Validation diagrams (a.k.a. Layer diagrams).

Errors appear in the Error List and squiggles appear in the text editor showing you the precise location of the violation. You are now less likely to introduce unwanted dependencies.

Live Architecture Validation

Live unit testing

In Visual Studio Enterprise 2017, live unit testing gives you live unit test results and code coverage in the editor while you are coding. It works with C# and Visual Basic projects for both the .NET Framework and .NET Core, and it supports three test frameworks of MSTest, xUnit, and NUnit.

Live Unit Testing

For more information, see the Live Unit Testing in Visual Studio 2017 Enterprise blog post.

Set up a CI/CD pipeline to run automated tests efficiently

Automated testing is a key part of any DevOps pipeline. It allows you to consistently and reliably test and release your solution on much shorter cycles. CI/CD (Continuous Integration and Continuous Delivery) flows can help make the process more efficient.

For more information about automated tests, see the CI/CD pipeline for automated tests in DevOps blog post.

And, for more information about what’s new in the Continuous Delivery Tools for Visual Studio DevLabs extension, see the Committing with Confidence: Commit Time Code Quality blog post.

A focus on accessibility

In 15.3, 1,700 targeted fixes to improve compatibility between Visual Studio and the assistive technologies have been made. There are dozens of scenarios that are more compatible with screen readers, high contrast themes, and other assistive technologies than ever before. The debugger, editor and shell have all gotten significant improvements, too.

For more information, see the Accessibility improvements in Visual Studio 2017 version 15.3 blog post.

Visual Studio IDE enhancements

Use new refactorings

In 15.3, a handful of new refactorings has been added, to include:

  • Resolve merge conflict
  • Add parameter (from CallSite)
  • Generate overrides
  • Add named argument
  • Add null-check for parameters
  • Insert digit-separators into literals
  • Change base for numeric literals (for example, hex to binary)
  • Convert if-to-switch
  • Remove unused variable

For more information, see the Refactoring, Code Generation, and Quick Actions in Visual Studio page.

Interact with Git

When you are working with a project in Visual Studio, you can set up and quickly commit and publish your code to a Git service. You can also manage your Git repositories by using menu clicks from buttons in the bottom right-hand corner of the IDE.

Visual Studio 2017 interacts with the Git dialog

View and navigate code with Structure Visualizer

The Structure Visualizer draws structure guide lines (a.k.a. indent guides) on your code. You can use them to visualize and discover what block of code you’re in at any time without having to scroll. Hovering on the lines shows you the tooltips that let you see the opening of that block and its parents. It’s available for all the languages supported via TextMate grammars as well as C#, Visual Basic, and XAML.

Visual Studio 2017 structure visualizer

Experience improved navigation controls

Navigation experience has been refreshed to help us get from A to B with greater confidence and fewer distractions.

  • Go To (Ctrl+F12) – navigate from any base type or member to its various implementations.
  • Go To All (Ctrl+T or Ctrl+,) – navigate directly to any file/type/member/symbol declaration. You can filter your result list or use the query syntax (for example, “f searchTerm” for files, “t searchTerm” for types, etc.).

Improved Go To All

  • Find All References (Shift+F12) – with syntax colorization, you can group Find All Reference results by a combination of project, definition, and path. You can also “lock” results so that you can continue to find other references without losing your original results.

New Find All References tool

  • Indent Guides – dotted, gray vertical lines act as landmarks in code to provide context within your frame of view. You may recognize them from the popular Productivity Power Tools.

For more information about the new productivity features, see the Productivity in Visual Studio 2017 blog post by Mark Wilson-Thomas.

Visual C++

You’ll see several improvements in Visual Studio, such as distributing C++ Core Guidelines with Visual Studio, updating the compiler by adding enhanced support for C++11 and C++ features, and adding and updating functionality in the C++ libraries.

For complete details, see the What’s New for Visual C++ in Visual 2017 page.

Debugging and Diagnostics

Run to Click:

Now, you can more easily skip ahead during debugging without setting a breakpoint to stop on the line you want. When you are stopped in the debugger, just click the icon that appears next to the line of code. Your code will run and stop on that line the next time it is hit in your code path.

Visual Studio 2017 debug - Run To Click

The New Exception Helper:

The new Exception Helper helps you view your exception information at-a-glance. The information is presented in a compact form with instant access to inner exceptions. When you diagnose a NullReferenceException, you can quickly see what was null right inside the Exception Helper.

The New Exception Helper dialog in Visual Studio

For more information, see the Using the New Exception Helper in Visual Studio blog post.

Cloud app development with Azure

Azure Functions Tools

As part of the “Azure development” workload, a lot of tools have been included to help us develop Azure functions by using pre-compiled C# class libraries. Now we can build, run, and debug on your local development machine and then publish directly to Azure from Visual Studio.

For more information, see the Azure Functions Tools for Visual Studio page.

Mobile app development


As part of the “Mobile development with .NET” workload, developers familiar with C#, .NET, and Visual Studio can deliver native Android, iOS, and Windows apps by using Xamarin. Developers can enjoy the same the power and productivity when working with Xamarin for mobile apps, including remote debugging on Android, iOS, and Windows devices—without having to learn native coding languages like Objective-C or Java.

For more information, see the Visual Studio and Xamarin page.

Entitlements editor

New in 15.3: For your iOS development needs, a stand-alone Entitlements editor has been added. It includes a user-friendly UI that can be easily browsed. To launch it, double-click your entitlements.plist file.

Entitlement editor for Xamarin

Cross-platform development

Redgate Data Tools

To extend DevOps capabilities to SQL Server database development, Redgate Data Tools are now available in the following editions of Visual Studio 2017.

Included with Visual Studio 2017 Enterprise:

  • Redgate ReadyRoll Core helps you develop migration scripts, manage database changes using source control, and safely automate deployments of SQL Server database changes alongside applications changes.
  • Redgate SQL Prompt Core helps you write SQL more quickly and accurately with the help of intelligent code completion. SQL Prompt autocompletes database and system objects and keywords, and offers column suggestions as you type. This results in cleaner code and fewer errors because you don’t have to remember every column name or alias.

Included with all editions of Visual Studio 2017:

  • Redgate SQL Search increases your productivity by helping you quickly find SQL fragments and objects across multiple databases.

To learn more, see the Redgate Data Tools in Visual Studio 2017 blog post.

Visual Studio Tools for Unity

As part of the “Games development for Unity” workload, a lot of tools have been included to help you develop cross-platform to create 2D and 3D games and interactive content. Create once and publish to 21 platforms, including all mobile platforms, WebGL, Mac, PC and Linux desktop, web, or consoles by using Visual Studio 2017 and Unity 5.6.

For more information, see the Visual Studio Tools for Unity page.

.NET Core

.NET Core is a general purpose, modular, cross-platform, and open source implementation of the .NET Standard and contains many of the same APIs as the .NET Framework.

The .NET Core platform is made of several components, which include the managed compilers, the runtime, the base class libraries, and numerous application models, such as ASP.NET Core. .NET Core supports three main operating systems: Windows, Linux, and macOS. You can use .NET Core in device, cloud, and embedded/IoT scenarios.

And, it now includes Docker support

New in 15.3: Visual Studio 2017 version 15.3 supports .NET Core 2.0 development. (In 15.3, using .NET Core 2.0 requires downloading and installing the .NET Core 2.0 SDK separately.)

For more information, see the .NET Core Guide page.