Leaders in our software development industry are incredibly productive for a number of reasons, one of which is their intimate familiarity with the ins and outs of the tools they use. This article is the first in the “Ask The Pros” series which explores how some of those leaders get the most out of their tools.
Visual Studio is a powerful coding environment, but it can’t do everything. Smart folks around the .NET development world have created scads of addins for Visual Studio. Addins range from larger commercial packages to tightly focused freeware widgets. Commercial addins include tools such as JetBrain’s ReSharper, Developer Express’s Code Rush for productivity enhancements, and Rational Software’s XDE Developer for Visual Studio which provides a wealth of design and implementation features. Freeware, public domain, and open source addins provide everything from simple hungry whitespace deletion during editing to code complexity metrics, with documentation and testing in between.
In this article several highly accomplished developers, architects, and program managers discuss their favorite addins for Visual Studio .NET. Respondents for this article are:
- James Avery, Principal of InfoZerk, Inc., author of Visual Studio Hacks, and host of this website.
- Ben Carey, Senior Consultant at Statera Consulting in Denver Colorado
- Dave Donaldson, President/CEO of Arcware, Inc. and creator of CodeKeep
- Scott Hanselman, Chief Architect at Corillian Corporation, a leading provider of eFinance solutions
- Josh Ledgard, Microsoft’s Lead Program Manager for Visual Studio Aftermarket Community solutions team
- Alex Lowe, Program Manager at Telligent Systems
- Roy Osherove, Principal of Team Agile located in Israel, and a consultant for Agile software development and .NET Specialist
Ben Carey
Ben Carey’s favorite addin is JetBrain’s ReSharper. Says Carey, “I can’t imagine writing code without ReSharper. The named-refactoring support, live templates, visual indicators, and code acceleration capabilities make me feel at home in Visual Studio. ReSharper helps me stay test-driven and speeds up my development by automating frequent and repetitive actions. Overall, the tool does a tremendous job of aiding in the flow of day-to-day and minute-by-minute coding.”
Coding is a highly creative process. Great developers seem to hit a creative zone or flow where things are really clicking and some hidden corner of the brain takes over the entire process. Good tools help by enabling the developer to keep focused on the creative task at hand rather than mundane tasks like stubbing in methods or reordering method parameters. Carey’s emphatic about ReSharper’s capabilities helping him stay in the zone: “I love being able to write a test for a method that I haven’t implemented yet, and then right click the class name and generate the stub. It doesn’t matter how many times I use the capabilities of ReSharper, it still brings a smile to my face every time I use the tool. I keep a printout of the shortcut keys for ReSharper beside me to constantly remind me of all the great features that are available.”
Two other favorite addins of Carey’s: TestDriven.NET for its feedback inside VS.NET, and GhostDoc for its ability to create consistent code comment structures.
Roy Osherove
Osherove’s favorite addin is the same as Carey’s. ReSharper has “saved me so much time and effort it’s not even funny. I hope their version for 2005 will be just as good. Personally I find myself more productive with VS 2003 + Resharper than VS 2005 without. Its navigation abilities are to die for and VS has a long way to go before it can compete with them, including the amount of possible refactorings.”
Osherove finds ReSharper’s refactoring support a huge advantage. “You can of course do the basics like extract method, but you can also reorder parameters (difficult without it), convert text to a local or field variable, convert var to field and vice versa, convert to constant, extract interface, extract base class and many more.”
Scott Hanselman
Hanselman is a huge fan of another productivity tool: Developer Express’s CodeRush. He’s ardent about the time CodeRush saves him. “I use it to type 50% less in VS.NET. CodeRush lets me type less and do more. It’s more than just a macro or template expansion tool, it’s almost a reimagining of how to write code. Code, by its nature, is very verbose. Why write ‘string’ when the ‘trin’ middle part isn’t adding value but still wastes keystrokes? I type ‘sg’ and get ‘string.’ I type ‘pdt’ and get a complete property definition typed as a DateType including a private field. This is just one simple example of hundreds of included templates.”
Another benefit of CodeRush is its extensibility features. Code templates can be quickly added in for quicker generation. Better yet, CodeRush provides developers a simple, quick API to use for generating their own plugins. Wizards help speed the process. Says Hanselman, “I also like that CodeRush includes its own Managed “DOM” over the Visual Studio COM-based craptastic Add-in model. Writing a CodeRush Add-in is event-based and fantastically easy. Have you ever written a standard Add-in for VS.NET? Let’s just say it’s highly non-trivial. While CodeRush does cost money, a lot of folks don’t realize that DxCore, the underlying engine that supports CodeRush Add-ins is free. My favorite CodeRush Add-in is CR_Documentor by Travis Illig, an extension/repurposing of Lutz Roeder’s Documentor tool as a VS.NET toolbox that tracks your C# XML Comments and renders them as they would appear as MSDN help.”
[Note: Developers interested in the DxCore engine should realize that it's freely available only for personal use.]
Hanselman’s well-known in the development industry for his fanatical hunger in searching out new tools. See his list of Ultimate Visual Studio Addins, and also his wider-ranging list of Ultimate Tools.
Dave Donaldson
Dave Donaldson joins Carey in the group of TestDriven .NET fans. Like Carey, Donaldson likes TestDriven’s integration inside VS’s IDE. He also appreciates TestDriven’s debugger integration: “Another great thing about TestDriven.NET is its ‘Test with Debugger’ functionality. The ability to set a breakpoint in code, then right-click on your project and select ‘Test with Debugger’ is a huge timesaver.”
Donaldson’s the creator of another VS.NET addin: CodeKeep. “CodeKeep is nice because it allows you to save code snippets to a central repository within the IDE; it can also search for snippets in the central repository.”
Josh Ledgard
Good addins don’t have to be huge toolsets to be highly useful to good developers. Both James Avery, author of Visual Studio Hacks and the host of this site, and Josh Ledgard favor tools which help them get code documentation done more quickly. Ledgard’s choice is VBCommenter, available at GotDotNet. “VBCommenter was a favorite because of the required commenting documentation we would have to write in our test automation code.”
Ledgard’s also a fan of Gaston Milano’s Whidbey Commands tool because it extends VS.NET 2003 with many of VS.NET 2005’s enhanced commands.
Alex Lowe
Alex Lowe’s favorite addin is Unleash It. Lowe likes Unleash It’s ability to help web developers get simple deployment tasks done in Visual Studio .NET 2003. “Short of a full on deployment project, Visual Studio does not have adequate facilities for publishing only the required files needed to deploy and ASP.NET application. Deployment projects are overkill for lots of the work I do.” Unleash It has a simple set of folder and file filters making it simple to “publish (via FTP or to a local folder) only the files one should publish when preparing to do a production deployment of an ASP.NET application.”
James Avery
Like Carey, Avery is a big fan of GhostDoc, and bemoans its lack of support for VS 2005. Asked what his favorite addin was, he replied, “A couple of months ago I would have said TestDriven.NET, no contest. Now that I am working more with Visual Studio Team System with the built in testing functionality I would have to go with GhostDoc. You never realize how much you miss something until you can’t use it, and of all the add-ins that have not yet been revised for Visual Studio 2005 I miss GhostDoc the most.”
GhostDoc’s simplicity is what Avery loves. “GhostDoc is the kind of add-in I like. It doesn’t try to do everything for you, it doesn’t add any additional files or complexity to your projects, it just does one thing and does it very well. GhostDoc helps make the tedious process of commenting your code with XML comments just a little bit easier.”
Avery closes out this set of tips with a list of his other favorites: The WindowsManager powertoy, SmartPaster, Control Outline Poweroy, Mouse Bindings Powertoy, CodeKeep, Pinvoke.NET, WSCF, and many others. “There are so many great free add-ins available. I am always amazed by how many people don’t take advantage of these free tools.”
Ask The Pros is an ongoing series with new installments every three or four weeks.
