I've spent a lot of time last year learning my tools better, and I've built up a list of plug-ins for Visual Studio that help me work smarter and faster. All of the plug-ins below work on both Visual Studio 2010 and 2012.
ReSharper is the frosting on Visual Studio's cupcake. Using Visual Studio without ReSharper is like trying to build a Lego model while wearing mittens. My favorite features are:
- Powerful refactoring operations. You can rename variables, methods, and classes, and it fixes all the references to them. You can extract methods, re-order parameters, introduce parameters. You can extract an interface definition for a class, and push class members up to their parent class or interface.
- Code style warnings. It highlights common mistakes, and bad style, and allows you to fix the problem with a single hot key. It will highlight variables, methods and classes that don't conform to your naming style, and it usually suggests the correct name. It highlights unused methods, and unreachable code, and allows you to easily delete it. It can simplify conditional statements, and transform loops into Linq statements.
Honestly, there's so much more ReSharper can do, you owe it to yourself to give their demo a try.
ViEmu adds vim emulation to Visual Studio. Vim is a super-powerful editor that lets you accomplish more with fewer keystrokes. It's one of those tools that's hard to learn at first, but you get faster and faster every day. Using vim makes it feel like I can get my ideas from my brain to the screen faster. There's less time waiting on my hands to type out the commands.
Continuous Tests / Mighty Moose
Mighty Moose is a continuous test runner for Visual Studio. By default it runs all relevant unit tests every time you save. This is a life-changing experience if you do TDD. The plug-in is a bit buggy, but it's so useful that it gets a pass. You can configure it to flash a giant green or red image when the tests pass or fail. It's also got nice key bindings for pulling up the list of failed tests, seeing the stack trace, and navigating directly to the broken code. It speeds up my TDD workflow tremendously.
PowerCommands for Visual Studio
This little plug-in adds a couple of check boxes to the Visual Studio settings that should be the default behaviour:
- Format document on save. Let Visual Studio format the code for you! Fix any sloppy formatting just by saving! This plug-in provides a huge gain for zero-effort.
- Remove unused usings, and sort usings on save. This tidies up the using statements at the top of each file automatically.
Productivity Power Tools 2012 / 2010
Productivity Power Tools does many things, but I use it for the tab options. Productivity Power Tools adds key bindings you can override the brain-dead most-recently-used tab switching behaviour, and set it to go to the left or right tab. This means you can have tab switching work like every other program out there.
Ever get annoyed when you do a version control update that updates your project file, and the project has to be reloaded? Visual Studio loses all your open documents! This plug-in fixes Visual Studio's bad memory, kindly reopening the documents you had open before the project was reloaded.