Microsoft has released its latest version of Visual Studio 2017, adding a host of performance, productivity and bug fixes, including multi-caret editing improvements, support for TypeScript 3.0 and faster unit test execution.
The updates were unveiled in an Aug. 14 post on The Visual Studio Blog by John Montgomery, the director of program management for Visual Studio.
One of the most helpful improvements is that multi-caret editing, or editing multiple locations in a file at once, is now easier to do in the new version, wrote Montgomery. "Start by creating insertion points and selections at multiple locations in a file with multiple caret support. This will then allow you to add, edit, or delete text in multiple places simultaneously."
Also new are the addition of a contextual navigation menu that can be accessed using the shortcut Alt + ` and new keybinding profiles for Visual Studio Code and ReSharper in Visual Studio, which allow users to keep their keybindings consistent with two new keyboard profiles.
Users who have installed more than one instance of Visual Studio 2017 can now select which instance to deploy an extension to when debugging, giving them the ability to develop in Visual Studio release channel while debugging in the preview channel.
Among the performance enhancements in the latest version is faster Git branch checkout and branch switching for C#, VB and C++ projects because solution reloads are no longer required, wrote Montgomery.
User feedback has prompted an option being added that prevents documents from a previous session from being opened by default. "We got feedback on how in some cases when Visual Studio reopened documents from previous sessions it wasn't required, and that it would cause performance delays," wrote Montgomery. "So, in this release we added an option to disable reopening documents that were open in the previous session. You can toggle this option in Tools > Options > Projects > Solutions > General."
Test performance capabilities have also been improved with faster test execution when running a few tests in a large solution with multiple test projects, wrote Montgomery. "In our lab, a solution with over 10,000 MSTests executed a single test up to 82 percent faster."
In addition, Microsoft improved the application's CPU Usage Tools. The CPU Usage tool in the Performance Profiler (ALT-F2) can now start in a paused state, which means that it will not collect any CPU usage sample stack data until it is specifically enabled. "This makes the resultant amount of data much smaller to collect and analyze, in turn making your performance investigations more efficient," wrote Montgomery. "Once you start the target application, a monitoring display will show the CPU utilization graph and will allow you to control the CPU profiling and enable/disable sample data collection as many times as you like."
A .NET Object Allocation Tracking Tool now is available from the Performance Profiler, which causes the collection of a stack trace for every .NET object allocation that occurs in the target application. This stack data is analyzed along with object type and size information to reveal details of the memory activity of an application, which allows users to determine the allocation patterns in their code and identify anomalies. When conducting Garbage Collection events, users can determine which objects were collected and which were retained, allowing them to determine object types that dominate the memory usage of applications.
Also, part of the new release is the inclusion of the new F# language version 4.5, which corresponds with the new 4.5.x family of FSharp.Core (the F# core library), wrote Montgomery. New F# tools for Visual Studio include IntelliSense performance improvements, transactional brace completion, an experimental CodeLens implementation and many bug fixes contributed by the community.
Support for TypeScript 3.0 is now provided by default, as well as improved support for the Vue.js library including .vue files, which are also known as "single file components."
Several new Visual Studio web tools are also now included, such as a library m that helps manage client-side libraries in web projects and a single project Docker container experience for ASP.NET Core web projects. This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug and build Docker containers right from Visual Studio.
Microsoft added support for Google Android Emulator, which enables users to run Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator and more. This gives mobile app developers who use Hyper-V access to a fast Android emulator that supports the latest Android APIs, works with Google Play Services out of the box and supports all features of the Android emulator, including camera, geolocation and Quick Boot.