Today we are releasing the first preview of Visual Studio 2017 version 15.5. You can either download it from here, or if you already have Preview installed, you’ll receive a notification that the update is available. This latest preview contains new features, improvements to key fundamentals such as performance and productivity, and other enhancements to address customer feedback. Read the feature highlight summary below, and check out the Visual Studio 2017 version 15.5 Preview Release notes for a more detailed description and how to use the new goodness contained in this Preview.
Debugging
Stepping Back: IntelliTrace’s new “step back” debugging feature automatically takes a snapshot of your application on each breakpoint and debugger step, enabling you to go back to a previous breakpoint or step and view the state of the application as it was in the past. To enable this feature, go to Tools > Options > IntelliTrace settings > and select ‘IntelliTrace events and snaphots’. Want to learn more? Check out this blog post from Deborah – Step back while debugging with IntelliTrace.
Live Azure App Debugging: Snappoints and Logpoints allow you to debug against live applications running in Azure App Services with minimal impact to any end users hitting the site. Snappoints capture a snapshot of your app’s state without stopping the app from running, and Logpoints enable you to insert new logging statements in your app on-the-fly.
Performance
Large .NET C# and VB Solutions Load Much Faster: It takes 10 seconds or less for Visual Studio to open the smallest 50% of all solutions. Large solutions take longer to open because there are so many projects that need processing. Over the last six months we have made investments and improvements to this space, and now, Visual Studio 2017 version 15.5 Preview loads C#/VB projects 50% faster than before. Please install this update and load your solution. If you have any feedback or would like us to review your solution load time, please email on vssolutionload@microsoft.com.
Several C++ IDE Operations Run Much Faster: Several C++ operations that use the IntelliSense engine for refactoring and code navigation run much faster:
Feature | Performance Improvements |
Rename | 5.3x |
Change Signature | 4.5x |
Find All References | 4.7x |
Tested on Chromium solution (3500 projects).
C++ Code Generation: Visual C++ runtime performance continues to improve due to better generated code quality. This means that you can simply recompile your code, and your app just runs faster. Some of the compiler optimizations are brand new, such as the vectorization of conditional scalar stores, the combining of calls sin(x) and cos(x) into a new sincos(x), and the elimination of redundant instructions from the SSA Optimizer. Other compiler optimizations are improvements to existing functionality such as vectorizer heuristics for conditional expressions, better loop optimizations, and float min/max codegen. The linker has a new and faster /OPT:ICF implementation which can result in up to 9% link time speedups, and there are other perf fixes in “incremental linking“.
Productivity
Selection Expand and Contract: With Visual Studio 2017 version 15.5 Preview, there are new editor commands to expand/contract your VB, C# and JSON syntactic selection quickly and easily. When you pair these commands with the Alt+Up/Down arrow, then moving, copying, and pasting blocks of code becomes a breeze.
C++ Development: C++ now supports Ctrl+Click GoTo Definition, making mouse navigation to definitions easy. The Structure Visualizer from the Productivity Power Tools pack is now also included in the product by default. The Visual C++ compiler supports about 75% of C++17 features, including structured bindings, `constexpr` lambdas, `if constexpr`, inline variables, fold expressions, and adding `noexcept` to the type system. These are available under the /std:c++17 switch. The /permissive- conformance mode includes partial support for two-phase name lookup. The Linux workload has added support for rsync as an alternative to sftp for synchronizing files to remote Linux machines.
We are shipping new C++ Core Guidelines checks in C++ code analysis. These checks cover smart pointer correctness, correct use of global initializers, and flagging uses of constructs like `goto` and bad casts.
C# Development: With this Preview, you’ll also notice we’ve added a handful of new quick actions and code suggestions for C# developers. We have a quick fix to resolve your merge conflicts, letting you choose which (or both) changes to take. For those of you looking to embrace C# 7.0, we now offer to convert lambdas into local functions and provide pattern-matching assistance. For the cutting-edge language adopters, you’ll notice that we offer to simplify inferred tuple names in projects supporting C# 7.1.
Creating ASP.NET Web Applications: We’ve rearranged the ASP.NET project creation menu items a little bit to improve discoverability and increase the likelihood that you’ll choose the right project type for what you’re trying to do. Now, the commands to create a Web Applications or a Web Site are visually next to each other in the File->New Project dialog. This should help the majority of people discover the Create a New Web Application path correctly the first time.
Colorful Icons: Based on feedback, we re-introduced colorized icons to the toolbox and view menu. This change will help you be better able to swiftly scan and identify the function you need. The use of color within function icons especially important for dense, high complexity apps like Visual Studio that make extensive use of iconography in the UI.
Team Explorer: We’ve made a number of improvements to the Team Explorer Git functionality (Submodules, Worktrees, Fetch –prune, and Pull –rebase), and almost all of the changes were inspired by your feedback in UserVoice. So, thank you for your engagement there! For example, one improvement is that VS now recognizes submodules and worktrees and treats them like normal repos. Another improvement is that it’s now easier for you to both keep your branch list clean and up to date, and keep your commit history linear and easier to follow by being able to configure your gitconfig settings at the global and repo level.
Connected Services
WCF Client Code Generation for .NET Core Based Projects: The existing Add Service Reference feature, which generates C# client code that connects your app to a WCF Web Service, does not support the more modern .NET Core based projects. To plug this gap, several months ago we previewed a tooling extension on the VS Market Place called WCF Web Service Reference, and now we’ve included this tool directly inside Visual Studio 2017 version 15.5 Preview. With this tool, you now have the ability to generate Web Services client code for .NET Core, .NET Standard and ASP.NET Core projects just like you did for .NET Framework projects.
Easy Connectivity of ASP.NET Core Projects to Azure Storage: Developers using ASP.NET Core projects based on .NET Framework know that it’s always been easy to install the Connected Service Provider for Azure Storage. With Visual Studio 2017 version 15.5 Preview, you can now also easily add this provider to ASP.NET Core projects based on .NET Core. Now, no matter what flavor of .NET the ASP.NET Core project is based on, it’s easy to install a Connected Service Provider for Azure Storage.
And Wait, There’s More…
Xamarin: Developers could already build, debug, and test mobile apps using only Visual Studio and a mobile device using the Xamarin Live Player. This release adds even more functionality that allows you to see your XAML UI updated instantaneously on device as you type or even switch between different XAML documents in Visual Studio. Watch the video below!
Data Science Workload: RTVS now supports Remote R execution on Linux. There are also numerous improvements around RMarkdown editing, Roxygen colorization and Intellisense, Linting, and Plot multi-selection.
.NET Framework 4.7.1 Easy Acquisition: Visual Studio 2017 version 15.5 Preview now offers a streamlined acquisition experience for the recently released .NET Framework 4.7.1 development tools to all supported platforms. The .NET Framework 4.7.1 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.
Try it out today!
If you’re not familiar with Visual Studio Previews, take a moment to read the Visual Studio 2017 Release Rhythm. Remember that Visual Studio 2017 Previews will install side by side with released bits, so they should not impact your machine. Previews provide an opportunity for you to receive fixes faster and try out upcoming functionality before it becomes mainstream. Similarly, the Previews enable the Visual Studio Engineering team to validate usage, incorporate suggestions, and detect flaws earlier in the development process. We are highly responsive to feedback coming in through the Previews and look forward to hearing from you.
Please Install the Visual Studio 2017 Preview today, exercise your favorite workloads, and tell us what you think. You can report issues to us via the Report a Problem tool in Visual Studio or you can share a suggestion on UserVoice. You’ll be able to track your issues in the Visual Studio Developer Community where you can ask questions and find answers. You can also engage with us and other Visual Studio developers through our Visual Studio conversation in the Gitter community (requires GitHub account).