Visual Studio 2017 RC New and Improved Features

Visual Studio 2017 RC is here! Pete Gallagher gives us a detailed walkthrough of the changes that come with it, and what they mean for developers.

By Pete Gallagher

At Connect(); // 2016, Microsoft let loose the Release Candidate of the 15th version of their newest premier IDE; Visual Studio 2017 (VS2017).

As with every new release, Microsoft has crammed in a host of new features, which they hope will make the lives of us developers better and get us churning out software at a higher rate of knots. Of course, I can’t list every single new feature here, but I will try to at least give you an overview of some of my personal highlights… However, if you'd like to read the full release notes, you can see them here.

Hint: If you’re only interested in the new features, simply do a search for “New in RC”!

#1 – Go To Menu: 01-goto-menu

Navigating your way around a large code base can be quite a chore. To make your job easier, VS2017 has added a new Go To menu. This new menu effectively wraps up links with keyboard shortcuts to a new dialog (See #2 below!), allowing you to search for a keyword in;

  • All – Ctrl+T
  • Files – Ctrl+1, Ctrl+F
  • Types – Ctrl+1, Ctrl+T
  • Members – Ctrl+1, Ctrl+M
  • Symbols – Ctrl+1, Ctrl+S

#2 – Go To All Dialog: 02-goto-all

The new Go To All dialog will save you heaps of time trying to find that method or file that you know the name of, but can’t seem to remember where exactly it is.

You can either leave this dialog set to search for all, or you can narrow the selection to;

  • Line – 2-1-line
  • Files – 2-2-files
  • Types – 2-3-types
  • Symbols – 2-4-symbols
  • Members – 2-5-members

Each match that’s found while you’re typing will automatically open up in the File Preview area.

#3 – Filtered IntelliSense: 03-filtered-intellisense

Quite often, the list of results for any given IntelliSense list can be huge. With the addition of IntelliSense Filtering, it should now be simpler to drill down to the results you’re specially interested in.

You can filter the IntelliSense list by;

  • Locals and Parameters – 3-1-locals-and-parameters
  • Constants – 3-2-constants
  • Properties – 3-3-properties
  • Fields – 3-4-fields
  • Methods – 3-5-methods
  • Interfaces – 3-6-interfaces
  • Classes – 3-7-classes
  • Modules – 3-8-modules
  • Structures – 3-9-structures
  • Enums – 3-10-enums
  • Namespaces – 3-11-namespaces
  • Keywords – 3-12-keywords

#4 – Predictive IntelliSense: 04-intellisense-likely-property

The IntelliSense list is now more careful about selecting which item you are actually intending to type, by predicting and selecting the most likely item you would like based on your current context.

#5 – Find All References: 05-find-all-references

The Find All References results have had a complete makeover, resulting in a far more useable experience all round. The results are now colour-coded and grouped, also allowing you to search and filter the results to find exactly the matches you’re interested in.

#6 – Run-To-Click: 06-run-to-click

A nice improvement to debugging comes in the form of Run-To-Click. Now, instead of needing to right click and select Run To Cursor, simply hovering over any subsequent line while in a paused state will show the new Run-To-Click icon – 6-run-to-click. Hitting this will automatically run the code on to this position and stop again.

#7 – Run-To-Click Perf Tips: 07-perf-tips

Like Visual Studio 2015, Performance Tips are automatically shown once execution is completed. These are also shown for the new Run-To-Click feature, indicating how long has elapsed since the previous breakpoint was hit – 7-perf-tips.

As always, clicking the Performance ToolTip will open the diagnostics panel with all the relevant information.

#8 – Live Unit Testing: 08-live-unit-testing

This is one of my favourite new features, but sadly right now it’s only available in the Enterprise Edition… Sorry Pro and Community users!

Live Unit Testing visualises unit test and code coverage results live in the editor. Turning this feature on is as simple as going to Test>Live Unit Testing>Start.

The code will be analysed, any unit tests invoked, and the results shown along the margin.

Another feature parcelled along with Live Unit Testing is the ability to scaffold unit tests simply by right clicking on a function name and selecting “Create Unit Tests”. Visual Studio will then offer a set of options and once you’re happy, it’ll go ahead and scaffold out a basic unit test for the function and automagically run it, showing the result right there in the editor.

#9 – Visual Studio 2017 is up to 4x Faster than Visual Studio 2015.

09-speed-comparison

Thanks to a whole raft of optimizations and loading mechanisms, Visual Studio can be up to 4x Faster than Visual Studio 2015 Update 3 at starting up, loading projects and building… All of this while actually consuming less memory!

Visual Studio 2017 is roughly 3x faster to open from a cold start and 2 to 4x faster at loading solutions.

At start up VS2015 scans installed components, initialises default settings and initialises caches. VS2017 either defers or eliminates a lot of those actions, resulting in a far faster start up time. Further, VS2017 has a feature called Light Weight Solution Load which only loads individual projects when you actually need them, making VS2017 usable in roughly half the time of VS2015.

#10 – Open Folder: 10-open-from-folder

Sometimes, whether for simplicity or speed, all you want to do is open a collection of files, rather than a whole solution full of projects. VS2017 has added the functionality, which is easily accessed either from the Open Folder link on the welcome page, or using the “File>Folder” menu item.

#11 – XAML Rename:

11-xaml-rename

Some useful editor features normally only found in the code editor have made it onto the XAML editor, the first of which is Rename. Just like the code editor counterpart, this new feature allows multiple namespaces and items to be renamed simultaneously.

#12 – XAML Edit and Continue:

12-xaml-live-edit

Edit and continue has been around in Visual Studio for a good long time, and is obviously a well-loved feature, allowing for a very quick development cycle.

VS2017 now expands this functionality to allow for front end developers to make modifications to the XAML layout of WPF and UWP apps while the application is running, with modifications being reflected immediately in the running application.

#13 – XAML Namespace Completion:

13-xaml-resolve-references

Another feature migrated across from the code editor is the ability to resolve references in XAML. Namespace completion simplifies adding controls in other namespaces to XAML. Simply type the name of the control, and using the lightbulb click the prompt to generate and insert the missing namespace.

#14 – XAML Filtered and Predictive IntelliSense: 14-xaml-filtered-intellisense

Along with the Code Editor, the XAML Editor also inherited the new Filtered and Predictive IntelliSense features, which will make adding XAML properties quicker and more intuitive.

Attributions:

Thanks to John Montgomery and Jon Chu, whose videos I use to create the GIFs used in this post. Their original videos can be found here;

About me: bioimage

My name is Pete Gallagher and I’m a Freelance IT Consultant and owner of PJG Creations Ltd. I’m happy in just about any language, however I’m most at home in VB.net, XAML, HTML, PHP and Javascript.

I help various companies in a range of sectors move their companies forward with bespoke applications and systems.

Website/Blog: https://www.pjgcreations.co.uk

Twitter: @PJGCreations

YouTube: https://www.youtube.com/PJGCreations

LinkedIn: https://www.linkedin.com/in/pjgcreations

Facebook: https://www.facebook.com/pjgcreations