What’s new in Microsoft’s Visual Studio 2017 Version 15.7

The beta Version 15.7 provides full support for C++ 17, as well as IntelliSense support for XAML and better support of TypeScript

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

The production of the Version 15.6 update to Microsoft’s Visual Studio 2017 IDE is now available, as is a beta version of Version 15.7.

Where to download Visual Studio

You can download Visual Studio 15.6 from the Visual Studio website. And you can download the Version 15.7 beta from the Visual Sudio website.

Next version: New features in Visual Studio 15.7

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 will 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 will also have 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. 

Other improvements in Visual Studio 2017 Version 15.7 include:

  • 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.

Current 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:

  • For C++ standards conformance, the preview implements more of the C++ 17 standard library, including APIs such as stable_sort and partition.
  • Missing include files are automatically discovered for C++ Open Folder if under the workspace root.
  • Debug options are now available for embedded ARM GCC development.
  • Five new checks have been added to enforce rules around integer overflow and additional rules for C++ guidelines.
  • CMake projects are now automatically listed in Test Explorer.

Where to download the Visual Studio 15.6

You can download Visual Studio Version 15.6 at the Visual Studio website.

Previous version: Visual Studio 2017 15.5 features

Visual Studio 2017 15.5 was released on December 4, featuring faster load times for C# and Visual Basic.

Visual Studio 2017 15.5’s compiler and standard library gained the following new support for the C++ 17 standard:

  • The compiler supports about 75 percent of C++ 17 features, including structured bindings, constexpr lambdas, inline variables, and float expressions.
  • C++ code generation has been improved.
  • New C++ Core Guidelines checks should ensure the quality of C++ code.
  • Support for the Google Test Framework assists with writing Google Test C++ unit tests
  • The Linux C++ workload supports cross-compilation for ARM microcontrollers.

Also new in Visual Studio 15.5:

  • For Angular 2, the platform supports inline and .ngml template files, via the Angular 2 language service. This assists with TypeScript and JavaScript development.
  • For the TypeScript and JavaScript language service, an issue causing more memory to be used than intended has been fixed. This same issue also could have caused loading of the wrong version of TypeScript in multiproject efforts. To improve performance and reliability in large projects, the Only Analyze Projects Which Contain Files Opened in the Editor checkbox has been added in the JavaScript/TypeScript Text Editor Project Options page.
  • The IntelliTrace stepback debugging capability adds support for ASP.Net applications that are running in IIS (Internet Information Services) Express. Stepback debugging, introduced in the first beta, takes a snapshot of an application on each breakpoint and debugger step, helping with the development review process.
  • The remote tasks capability lets developers run a command on a remote system defined in the Visual Studio Connection Manager. Developers also can copy files to the remote system.
  • The F# Language Support checkbox in the .Net desktop development workload has been renamed to F# Desktop Support, reflecting that it includes just F# and .Net Framework templates.
  • F# language support is installed by default with a workload that requires .Net Core 2.0. F# .is included in the .Net Core 2.0 SDK.
  • It supports the beta version of the Language Server Protocol, which lets developers use languages for which Visual Studio does not provide native support. The Language Server Protocol beta is available as an extension on Visual Studio Marketplace.
  • Secrets management, for identifying secrets such as database connection streams and web service keys.
  • Xamarin Live Player, for continuously deploying and debugging mobile apps using Visual Studio and an iOS or Android device.
  • The ability to use .Net Core, the cross-platform version of .Net, with the Azure Functions serverless computing platform.
  • Support for Git submodules and work trees in Team Explorer.