Helpful Visual Studio Add-ins

Over the past years I've found myself to rely more and more on a number of very handy, some well known, Visual Studio add-ins. I've split this list into two parts, the free and the paid tools:

Team Foundation Power Tools [link] [free]

These tools are now installed on our developer seats by default. They add Windows Explorer access to TFS and a number of very helpful additions to Team Explorer inside Visual Studio.Even if your team members don't really use the functionality inside Team Foundation Power Tools, have them install it to distribute your check-in policies and custom work item controls. They'll come to like the additional features as time goes by.

Team Foundation Server Source Control Explorer Extension [link] [free]

What the Team Foundation Power Tools bring to Team Explorer and the command line, this add-in brings to the Source Control tab. A number of items which were previously only available through the command-line are made accessible directly from the Source Control tab. Delete files permanently, drag and drop support for copying and moving files, merge/copy/move multiple files. It also disables certain items in the context menu's when they're not available and fixes a few other things in there as well.

Debugger Canvas [link] [free] [vsUltimateOnly]

Debugger Canvas allows you to debug a problem and while stepping through the sources, keep track of all the interesting methods and values. It essentially combines a sequence diagram with the source editor. One of its greatest strengths is that you can keep the previous version of you debugging session open. This allows you to easily compare the differences between the original and the fixed scenario. A new version of this great add-in was announced at the ALM Summit in Redmond two weeks ago. Don't forget to enable the editing capabilities in the Visual Studio settings window. You can also control whether Debugger Canvas will always launch when you hit a breakpoint from there.

VSCommands 2010 [link] [free|paid] / Visual Studio Productivity Power Tools [link] [free] / PowerCommands for Visual Studio [link] [free]

These tools contain a lot of helpful additions to Visual Studio 2010. Some of which are essentially what's coming in Dev11. At present I have all 3 of them installed, but that requires you to figure out which items from one causes issues with the others. For example, you'll have to turn off Reference copy/pasting in one, in order for the feature to work. Sometimes there's also a set of duplicate features that don't cause problems, but will clutter up your context menu's. VSCommands offers a number of premium features which will disable after the trial ends, the basic features will remain functional. I really like the premium features though, as they fix some of the most irritating 'bugs' in visual studio (remember the endless reload project yes/no dialogs when you get-latest from source control? Fixed!)

.NET Reflector [link] [free (6.8)|paid]

Reflector allows you to look inside assemblies. Not just at the public interfaces, but deep inside. You can look at any private/internal type and decompile each method into a number of .NET Languages. It's a great way to learn about the inner workings of the .NET Framework and of 3rd party libraries. I use it most often to surface otherwise private methods and to figure out why a component behaves as it does.

.NET Reflector started out as a free tool, but after being bought by Red-Gate and after a number of really nifty features being added, it has evolved into payware. If you can get hold of version 6.8, it's still free and will keep working. I haven't jumped on to the 7.0 boat, even though it's features are as powerful as they are.

There are now a number of alternatives (JetBrains dotPeek, Telerik JustDecompile) on the market, all offering similar features, some promising to be free for ever, but as Red-gate has proven, this promise can't always be kept. I've tried them both, but ran into decompilation issues I didn't encounter with Reflector, so I've switched back.

Visual NDepend [link] [free (academic|open source)|paid]

With my recent work in the Code Analysis area, I was contacted by the developer of Visual NDepend, whether I'd like to give his tools a try. I received a free personal license and wouldn't want to live without it ever since. Visual NDepend allows you to quickly query the inner workings on a more abstract level than .NET Reflector can. You can write your own queries against any library and even compare two different versions of the same assembly. As I'm constantly working with updates from 3rd parties, and Visual NDepend allows me to quickly analyze the new version for any breaking or otherwise interesting changes, which might not always be present on the change logs. I'm also using it to assess the quality of my own code in different ways than I did before.

For me the greatest advantage is the speed; finding dependencies of a class or method using .NET Reflector can take quite a bit of time and doing it using the Find References window inside Visual Studio is even worse. Visual NDepend is unmatched in this area and it integrates into .NET Reflector and Visual Studio.