What's New in Visual Studio 2017 15.8
New features in Visual Studio 2017 15.8 focus on productivity and performance.
Here's a rundown of four new features the Visual Studio team pointed out in announcing the new release, which shipped yesterday (Aug. 14).
Multi-Caret Editing Improvements
This makes it easier to simultaneously edit code located in multiple locations in a file. Developers can create insertion points and selections at multiple locations and then add, edit, or delete text at the same time.
Microsoft detailed the two-step process:
- Insert carets with Ctrl + Alt + LeftMouseClick
- Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
To see further available actions, developers can use the menu, Edit > Multiple Carets.
Implementation of this feature illustrates the effectiveness of contributing feature ideas via Visual Studio's UserVoice site, as this functionality was requested in this issue, which said:
Multiple selections/cursors in Sublime Text is by far the most useful editor feature I have in my toolbox. Using search and replace in Visual Studio is slow and unwieldy in comparison and I find myself frequently copying blocks of text into Sublime Text just to perform versatile edits using multiple cursors, after which I copy the result back into Visual Studio.
A future version of Visual Studio would win huge points with this feature alone.
It took some time doing (the issue was raised September 2013), but Microsoft completed the request with v15.8 Preview 3, replying last month:
"We have introduced native support for Multi-Caret editing and selection. You can find all features/actions under the Edit > Multiple Cursors menu when you have focus in the editor. Currently, you can insert multiple carets, add a selection on the next match, and add selections on all matches. We look forward to hearing your feedback as we continue to improve this feature!
Faster Git Branch Switching
The new version provides much faster Git branch checkout and branch switching for Chttps://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes#, VB and C++ projects, Microsoft said, because large solutions no longer require reloads.
Faster Unit Test Execution
Test performance, Microsoft's John Montgomery said in a blog post yesterday, received a big boost. "We significantly improved performance when running a few tests in a large solution with multiple test projects," he said. "In our lab, a solution with over 10,000 MSTests executed a single test up to 82 percent faster!
TypeScript 3.0 Support
While Visual Studio 2017 15.8 Preview 3 released in June supported TypeScript 2.9, the new v15.8 supports TypeScript 3.0, which just shipped last month.
In announcing TypeScript 3.0, Microsoft's Daniel Rosenwasser highlighted new project reference functionality, designed to better support various project scenarios, such as multiple folders with a variety of interdependent and shared code strategies.
"Project references allow TypeScript projects to depend on other TypeScript projects -- specifically, allowing tsconfig.json files to reference other tsconfig.json files," Rosenwasser said. "Specifying these dependencies makes it easier to split your code into smaller projects, since it gives TypeScript (and tools around it) a way to understand build ordering and output structure. That means things like faster builds that work incrementally, and support for transparently navigating, editing, and refactoring across projects. Since 3.0 lays the foundation and exposes the APIs, any build tool should be able to provide this."
Now, of course, those build tools include Visual Studio 2017 15.8.
Full details of the new release, as explained in the release notes, include this lengthy list:
- The installer now offers the option to download all files before starting installation.
- We improved performance during project unload/reload and branch switching.
- Solution load times can be improved by disabling automatic document restore.
- We made significant test performance improvements while running large solutions with multiple test projects.
- Visual Basic now provides you with a significant performance improvement.
- Performance Profiling now offers the ability to pause/resume data collection and a new .NET Object Allocation Tracking tool has been added.
- We made improvements to the CPU Usage tool for Performance Profiling.
- We added new productivity features, such as code cleanup, invert-if refactoring, Go to Enclosing Block, Multi-Caret support, and new keyboard profiles.
- You can choose your target instance when debugging extensions.
- Launch the Snapshot Debugger directly from the publish summary page.
- We introduced F# 4.5, a new language version that fully supports
Span<'T> and contains significant improvements to stack traces for async code.
- We improved performance and added new features in F# tools, such as Ctrl+Click to Go to Definition.
- Enhancements to C++ toolset include improvements to the SSA optimizer and linker.
- C++ cross-platform development additions include ClangFormat updates, and configuration templates in CMake and Open Folder for MinGW, Linux, and Windows.
- Changes to C++ productivity include Template IntelliSense, Quick Info tooltips on macros, convert to constexpr lightbulbs, in-editor code analysis squiggles, and more.
- C++ debugging improvements include Just My Code updates and new data breakpoints.
- You can now manage client-side libraries in your web projects.
- We've added a new single project Docker container experience for ASP.NET Core web projects.
- You can now customize the tag for a Docker image with the publish improvements made in this release.
- Xamarin improvements include support for Xcode 9.4 and smarter Android incremental builds.
- You can use Google's Android emulator side-by-side with Hyper-V on Windows 10 April 2018 Update.
- We added a split-view editor for the Xamarin.Android designer.
- The Xamarin.Forms Previewer now has toolbox support.
- You can now use cross-language debugging with Python 3.7.0rc1.
- The Migrate local Azure Function settings to Azure now displays new values.
- With added support for Azure Functions, you now have a new target host in the Configure Continuous Delivery to Azure dialog.
- Test Explorer summary pane improvement now provides more informative test status.
- .NET Test Adapter Extensions: breaking change and deprecation.
- We added native support for the Language Server Protocol.
- You now have secrets support for ASP.NET .NET Framework projects.
- Visual Studio now offers .NET Framework 4.7.2 development tools to supported platforms with 4.7.2 runtime included.
- Async autoload packages are delayed until startup and solution load complete.
- The Build Tools Visual Studio 2017 now support Workflow and includes the VSSDK.
- Git and TFS status now updates properly for external file changes in .NET Core projects.
- .NET Core SDK 2.1.400 is included.
Visual Studio 2017 15.8 can be downloaded here.
David Ramel is the editor of Visual Studio Magazine.