Fave Visual Studio features? Here's mine, tell us yours and win some cool goodies #myVSUK

I’ve been out and about at quite a few conferences and events recently, having many conversations with development teams about what features they love most in Visual Studio and what products they are creating with our tools.

With this in mind the team has raided our goodies cupboard and for the next 3 weeks (29th May-18th June 2014) we will take to twitter to find out more about your favourite features and how you use our Visual Studio tools. Please keep a look out on our twitter account @VisualStudioUK using #myVSUK. We have some awesome Visual Studio coffee cups, Visual Studio tops and a Copy of Visual Studio 2013 with MSDN to give away (competition terms & conditions here).

Anyway to get the ball rolling I thought I’d have a go myself and actually when I reflect on “What is my favourite Visual Studio feature?” I found it was harder to answer than I thought as Visual Studio now spans so far now in terms of development and test tooling it felt similar to being asked what is your favourite piece of music? The choice is so wide and based on any given moment in time your choices may change.

However that said reflecting on this I’ve narrowed it down to 5 and these are my favourites at the moment (in no particular order)…

IntelliSense

OK, we’ve had it for a long time but I simply don’t know where I would be without IntelliSense. The awesome thing about IntelliSense is as Visual Studio has evolved, expanded to new languages and file-types IntelliSense has grown to embrace these too, whether C++ to C#, VB, JavaScript and even the recent JSON additions means that IntelliSense is a key productivity enhancer I simply could no longer imagine developing without.

Test Impact Analysis

One of the lesser known features of Microsoft Test Manager is that it can advise teams of tests that should be re-run (impacted tests) when a new build is delivered. In short when you execute a test for the first time it works out which methods in your managed code you execute through the life of a test run. Then as builds are produced (via TFS Team Build) an IL Diff can be run to tell what methods have changed from build to build. With these two pieces of information when you come to start your testing on a new build Microsoft Test Manager can supply you the tests it recommends you re-run because it knows they are impacted by a code change. An awesome feature that saves that awkward conversation with the test team where they ask for time for a full-regression towards the end of a sprint.

Release Management

OK so this is a big “feature” more of a collective, but at the moment I am spending a lot of time discussing with customers the Release Management tools that are new to Visual Studio 2013. I love the fact that Release Management enables automated application deployments in a consistent way that can be used in development/test environments all the way to going live. I know that it can save time, allow faster delivery cadence, eliminating manual errors but quite frankly I’m just glad I will no longer have to author another word document for the ops team on how to deploy a solution step-by-step.

Auto-format/CTRL K+D

Another one that’s been in the editor for years and I could argue with the formatting as I type my old favourite keyboard shortcut is getting used less and less. However I like my code to look uniform even if I don’t always like what it does :-) so this little feature sorts things out, straightening up things for me. Better still that in C++ in the Visual Studio 2013 release we now have code formatting too, so whilst I don’t write as much C++ as I used to, when I do I’ve get help here just like I get in C#.

IntelliTrace

IntelliTrace for me represents my get out of jail free card, giving detailed debugging information from environments that you are not connected to. This can be a real lifesaver when you have production issues, but also can save masses of time in Dev and Test. If I see an issue occur in production or on a testers machine I simply need to get an IntelliTrace file collected from the environment (and in Test this is baked into Microsoft Test Manager for collection) and then do a post-mortem debugging  session in Visual Studio to find the
offending issue. I love the fact that this technology has been baked into a single Microsoft Monitoring Agent that enables me to connect more seamlessly with our System Center users or from my applications being monitored with Visual Studio Online Application Insights.