First Impressions of Visual Studio 2017 RC

The next version of Visual Studio has finally hit RC! The version formerly known as VS “15” is now called VS2017 and I wanted to take it for a spin and see what’s in store for us devs with the latest and greatest bits from Microsoft.

The new installer

In the past, developers used to schedule Visual Studio installations during lunch. Or just before bedtime. It was a huge juggernaut of an installer that took several hours to complete – with its bloat consuming your hard drive’s free space. Once a developer opened Visual Studio, they were immediately confronted with an endless plethora of tools and languages – most of which would never be used.

Those days are gone…

The new installer is lean and fast, and helps you choose the Visual Studio configuration that’s “just right” for your personal needs. I marked Desktop Development, Universal Apps Development and Node.js (just in case), and they were installed – quickly.

The only downside is that I barely had time to grab a cup of coffee.

Structure Visualization

The first thing I noticed when opening my new shiny Visual Studio were the dotted lines to the left of my code.

To be honest, at first I found these pretty irritating, as I don’t like my screen’s real-estate taken from me just to connect to curly brackets. But then I hovered over one of those lines and saw this:

structure-visualization

That’s what happens when you hover over one of the dotted lines – you get a full structure visualization which shows the context you are in. I know there are extensions with similar functionality, but it’s not the same as having this experience out of the box.

And yes – it also works with XAML – although, if the root node is long, it gets a bit jarring:

structure-visualizer-for-xaml-editor

Navigation and Editing

I’ve been using ReSharper from the beginning of the century (2003), and would probably continue to use it till the end of time. For some reason I did not install my trusty productivity tool of choice on the new installation (yet) – and boy was I amazed.

First I found new Go To commands – which work amazingly well.

goto

Just press Ctrl + T  and write the class/file/method name/whatever and it works. You no longer need to filter the solution. It does not have the full functionality that R# has (specifically, CamelHumps search is notably missing) but it would probably be good enough for many developers. I did have problems with key bindings at the beginning, but once I reset my local keyboard bindings I could use Ctrl + T to navigate, just like I did before with my (still) favorite productivity tool of choice.

Then I tried the new and improved Find All References, which has proper filtering and search, and looks better than ever:

find-all-reference

And finally I found to my delight that “Move Type to File” refactoring was one of the new refactorings added. It means that I can write two classes side by side and then move one of them to a new file with that class name.

Unit Testing

I wrote about MSTest V2 on my personal blog and was happy to see that new NuGet enabled MSTest is the default go to “Unit testing project”. Definitely a step in the right direction.

On top of that in the VS version I installed (Enterprise) there’s a new object under the Test menu called Live Unit Testing – at first I had no clue what it might be. so I turned it on. At first nothing happened but after my first compilation I saw something interesting:

livetesting

It looks as if Microsoft has jumped on the Continuous Testing bandwagon and at least for my simple borderline trivial example, it managed to update the test results with each code update.

Right now, it looks like there’s also a way to see the “live test run” in the test results window – or the good old “regular” test runs

Project Menu

A new menu item was added called “Project” which looks mighty familiar since it has most of the commands that show when you right click on the project in the solution window.

Needless to say – all of the options are for the current project.

projectmenu

I think I’ll start using it since I can quickly get there using my keyboard, and I don’t need to search the current project with my mouse. But there’s more – a close inspection shows two very interesting items , “Add analyzer” and “Export template”, which I need to check out soon.

Debugging

There many good news as far as debugging using Visual Studio: performance improvements make he debugger run faster and a few cool features were added such as a small icon to run up to that point in code (in case you never used Ctrl + F10 and like the mouse) and the much needed ability to add conditions to exception settings.

And yes – OzCode is fully supported in VS017 – in fact we’re happy to announce that for the second release in a row, OzCode an official Visual Studio Sim-Ship partner. And yes, the new magical LINQ debugging capabilities are already supported in VS2017.

hellovs2017

What do you think about the shiny new VS2017 bits? Sound off in the comments below.

  • Ryan Edwards

    Seems like they are struggling to find new stuff to add! Don’t get me wrong, I’ll still get it and use it, but two years in the making and these aren’t really must-have features for me. Although a faster debugger is always nice. I use R# too, but since Roslyn it’s been very difficult for me to figure out if I still need it. I mostly use it as a linter, but that doesn’t really make it worth the cost.

  • Cristi S.

    Sorry, but the info about how fast the installation/setup became now is misleading. It takes a fraction to install the framework, with almost nothing in it for the development. It’s like the installer, or the old Web Platform.

    You want web development, w/ ASP.NET MVC, or WebForms, or anything else? It will take many GBs and hours of …cups of coffee! Just for ASP.NET alone, I had to download other 3-4GB!

    MS should think at some point of cleaning up this software. Its size is huge for what it is inside. Think about lighter and modular versions of this IDE.

  • JonKragh

    Nice write up Ctrl+T camel hump is one of my most used resharper tools…each VS release I see if I can ditch resharper as there’s only a handful of features I still use and I always hope I can get rid of the bloat.

    Maybe this is the year!

  • Wolf

    My experience with 2017 rtm. After install i tried opening a console based c# project i’m working on. The code was not done so a null reference exception should be what the debugger should of stopped at, but instead it went to a “Visual studio is busy….” prompt every single time the project was started in debug mode and would hang the whole IDE until i closed the console window. And it did this in a virtual machine clean slate install of visual studio 2017 + a new visual studio 2017 blank project with the code added to the project. To make matters worse their was a class-diagram in the project that when opened + scrolled down would trigger a full screen red x with red border and fail to display the diagram… And that concluded my experience with 2017 rtm. Uninstalled and went back to 2015 where everything works 😀