What’s new in Microsoft’s Visual Studio 2017

Highlights in Visual Studio 15.9 include improvements for Universal Windows Platform development and C++ debugging

What’s new in Microsoft's Visual Studio 2017
Thinkstock

Visual Studio 2017 version 15.9, the final minor update to Visual Studio 2017, is now available from Microsoft as a production release.

Where to download Visual Studio

You can download Visual Studio 2017 version 15.9 from the Visual Studio website.

Current version: What’s new in Visual Studio 15.9

Microsoft has released Visual Studio 2017 Version 15.9, with improvements for Universal Windows Platform (UWP) development and C++ debugging.

For UWP, the Windows 10 Insider Preview SDK now is included as an optional component for the UWP workload; UWP developers can use this SDK to access the latest APIs for Windows 10. Also, developers can create MSIX packages either through the UWP packaging tool or via the Windows Application Packaging Project template.

Microsoft also has optimized its F5 build and deployment tool for to improve productivity with UWP. And developers should see fewer XAML designer crashes for UWP, when building with a target version of Fall Creators Update build 16299 or higher.

Also new in the second Visual Studio 2017 Version 15.9 beta:

  • The Step Back capability for C++ development lets developers return to a previous state while debugging without needing to restart the process. It is turned off by default but can be enabled by choosing Tools > Options > IntelliTrace and selecting the IntelliTrace Snapshots option.
  • It is now easier to keep installation settings consistent across multiple installations of Visual Studio. The IDE’s installer now can export a .vsconfig file for a given instance of Visual Studio. This file contains only information about workloads and components installed. This file then can be imported to add to workload and component selections to a new or existing installation.
  • Changes have been made to how Visual Studio tools use the .Net Core SDK, to clear up confusion. For stable releases of Visual Studio, the latest stable release of an SDK will be used by default. Previously, the tools would use whichever version was present on the developer’s machine, without regard to stability. The use of the .Net Core SDK will become more predictable with this change.
  • Templates have been added for SharePoint 2019, allowing developers to create new projects that are empty, that contain a visual web part, or that are based on an existing SharePoint 2019 package. Developers also can migrate existing packages to SharePoint 2019.

Where to download Visual Studio 2017 Version 15.9

You can download Visual Studio 2017 version 15.9 from the Visual Studio website.

Previous version: What’s new in Visual Studio 15.8

In Version 15.8, a single project Docker container experience is offered for ASP.Net Core web projects. This builds on the existing Docker container tools to simplify the building and debugging of Docker containers from the IDE. Developers can add Docker support when starting a project or add it to an existing project.

Visual Studio 2017 15.8 also includes improvements for C++ and management of web apps. New features include:

  • New keybinding profiles are included for Visual Studio Code and the ReSharper productivity tool.
  • Git branch checkout and branch switching for C#, Visual Basic, and C++ projects has been made faster for large solutions. Solution reload is no longer necessary.
  • Developers now have the option to not reopen documents from previous sessions.
  • The .Net object allocation tracking tool collects a stack trace for every .Net allocation occurring in the target application. Memory activity is revealed when this data is combined with object type and size information.
  • F# 4.5 is included. Also, F# Tools for Visual Studio have been improved with IntelliSense performance, transactional brace completion, and an experimental CodeLens implementation.
  • TypeScript 3.0 is included.
  • js library support has been improved, especially support for .vue files.
  • ESLint support has been reimplemented. JavaScript files will be linted as they are edited. ESLint 4 is used by default.
  • For TypeScript and JavaScript, support for the Vue.js framework and the ESLint pluggable linter.
  • Contextual menu productivity improvements.
  • For C++, enhancements for IntelliSense editing, code analysis, and Just My Code debugging.
  • Better performance for Visual Basic integer manipulation as well as configuring of C# code cleanup.
  • Improved tools to understand application performance.
  • Improvements for mobile development, including faster incremental builds for Android applications and inclusion of Xamarin.Essentials for building native apps.
  • For the Azure cloud development, continuous delivery for Azure Functions, improved management of project secrets via the Key Vault, and the ability to configure Application Insights application performance management while creating a site.
  • Faster loading of projects.
  • New Library Manager features for management of web projects’ client-side library files.
  • Multicaret support, in which developers can create multiple insertion points or selections at arbitrary places in a file or additional selections that match a current selection. Developers can add, delete, or select text in multiple places at once.
  • LibMan, a tool to manage client-side libraries. Intended as a replacement for the Bower tool, LibMan lets developers manage static, client-side libraries for a web project from multiple sources, including Cdnjs. The tool was shown in the Visual Studio 15.7 Preview 4.0 beta.
  • C++ Quick info tooltips on macros, which show what they expand to and not just their definition. This can be useful for macros that reference other macros.

Previous version: Visual Studio 15.7’s new features

Version 15.7’s key new feature is compliance with the C++ 17 standard, with five C++ 17 features added to the compiler, as well as IntelliSense coding capabilities.

As a result of the enhanced C++ 17 support, developers no longer need to specify arguments when constructing a class template. Public base classes are featured in aggregate types, so they can be initialized via aggregate initialization syntax without boilerplate constructors. And parallel algorithms conforming to C++ 17 have been implemented.

Version 15.7 also has a complete implementation of the C++ 11 expression SFINAE (substation failure is not an error). This acronym was derived from an arcane process used by C++ compilers during overload resolution.

For XAML, Microsoft’s XML-based visual presentation language, the XAML editor will offer IntelliSense for writing conditional XAML, which provides a way to use the API Information Class method in XML markup. When using a type not present in the target min version of an app, the editor can provide options to fix it.

Visual Studio 2017 15.7 reduces the installation size on a system drive by directing the download cache, shared components, and some SDKs and tools to various locations. Other new features in Visual Studio 15.7 include:

  • Easier usage of the C++ CMake tool.
  • The IntelliTrace step-back debugging feature, which takes snapshots of applications on each breakpoint and debugger step, is now supported for .Net Core.
  • For mobile development, the Android Oreo SDK is being distributed, along with Android emulators that have Quick Boot enabled. The IDE also detects when a different version of the Android SDK is installed and downloads the necessary components.
  • For iOS mobile development, apps now feature a static type system, offering smaller size, reduced memory usage and faster startup.
  • Noncontainerized applications can be deployed to the Azure App Service on Linux.
  • For Universal Windows Platform development, the Windows 10 April 2018 Update SDK, Build 17134 is the required SDK for the UWP workload.
  • Automatic updates for sideloaded UWP apps are supported. With the sideloading mechanism, applications can be distributed without the Microsoft Store. When coupling the Version 15.7 beta with the most-recent Windows 10 beta SDK, developers can configure automatic update settings for UWP apps.
  • For JavaScript and TypeScript development, the IDE features improvements powered by TypeScript 2.8; Microsoft recommends users upgrade to TypeScript 2.8, which is still in beta. Among the improvements that Version 2.8 offers to Visual Studio developers is the ability to fix all occurrences of a problem in a document, such as removing unused variables. Also, there are fixes for premature triggering of snippets, uncancellable refactorings, and incorrect TypeScript version selection.
  • To improve performance for JavaScript and TypeScript developers, background analysis of closed files is now optional.
  • Support for json.config.json, which is analogous to tsjsonconfig.json, has been added for fine-tuning the language service experience for TypeScript developers.
  • Net and .Net Core developers on Windows beta builds can set breakpoints and debug JavaScript files using Microsoft’s Edge browser.
  • A new web development capability provides diagnosis of runtime application permission problems.
  • A beta version of Visual Studio 2017 Build Tools is available to support project types that include Azure, Office, SharePoint, and mobile development with Xamarin.

Previous version: Visual Studio 2017 15.6’s new features

Released in March 2018, Visual Studio includes several foundational changes to the F# language and core library to make the tuple and System.Tuple types synonymous, as well as to make several adjustments related to .Net Core.

Oustide of the F# changes, Visual Studio 2017 15.6’s features include:

  • Faster load times for .Net Core.
  • Notifications about extensions that could cause the UI to become unresponsive. Developers are given an option to disable the extension and disable future notifications pertaining to that extension.
  • For diagnostics, the debugger’s threads window is significantly faster. The window also is now asynchronous, so users can interact with Visual Studio while data is processed in the background.
  • For C++ development, developers can choose whether to automatically generate the CMake cache when opening CMake projects. CMake is a tool for defining build processes that run across multiple platforms.
  • C++ linker improvements involve changes to the PDB (program database), which has reduced latency and enabled a 30 percent reduction in heap memory consumption with the Visual Studio Debugger.
  • Compile-time improvements have been made for C++, via improved optimizations of pre-incremented loops and better propagation of constant global data in link-time code generation.
  • Build tools in Visual Studio now support TypeScript and Node.js project types.
  • A limited, private preview is being offered for Visual Studio Live Share, which provides for real-time collaboration among teams. Interested developers can sign up on the Visual Studio Live Share website.
  • Improved solution load performance, focused on scenarios where a project already has been opened.
  • The design time build cache has been optimized, with project data loading now done in parallel. Visual Studio thus can use the disk and CPU with greater efficiency. Microsoft has found that large C# and Visual Basic solutions will “warm-load” twice as fast as before.
  • For productivity, the beta lets developers navigate to decompiled sources.
  • For diagnostics, the CPU usage tool now displays logical call stacks for asynchronous code when used during post-mortem profiling with the Alt-Z Performance profiler. Asynchronous code running on behalf of a parent function or task appears as a child in Call Tree and Caller/Callee views. This view makes it easier to navigate asynchronous code and understand performance.
  • For Azure cloud development, continuous delivery can be configured for solutions with ASP.Net Core projects.
  • The Test Explorer capability, for running tests, has added a hierarchy to organize tests by project, namespace, and class.
  • Test Explorer has changed real-time test discovery so it is now on by default, rather than require a flag be set.
  • The CPU Usage tool shows source-line highlighting based on consumption of specific lines of code.
  • Using Intellisense capabilities for Python code no longer requires a completion database.
  • The Team Explorer collaboration tool improves Git tags functionality, with the Tags tile available for viewing all tags in a repo. Developers also can delete and push tags and build a new branch from tags.
  • Access to the App Authentication Extension, for configuring a device to use protected settings when working with the Azure cloud, has been moved into the main setup.
  • Real-time test discovery, used for projects using the Roslyn compiler to find tests and populate the Test Explorer, is on by default. It had been available via a flag in the Version 15.5 release.
  • For Azure cloud development, Visual Studio supports configuring continuous delivery to Azure for Team Foundation Version Control, Git SSH remotes, and web apps for containers.
  • The WCF Web Service Reference connected service provider now supports an existing service reference, simplifying the process of regenerating client proxy code for an updated web service.

Version 15.6 also offers new capabilities for C++ developers:

1 2 Page 1
Page 1 of 2