Tuesday, June 14, 2011

“Must Have” .Net Tools

Every time I Install Visual Studio 2010, which I seem to do fairly often, I find myself installing the same set of tools and add-ins. I have come to rely heavily on these tools and would be very grumpy if I had to do without them. Here is the first part of my list of “must have” tools and add-ins (in how-grumpy-I-would-be-if-I-had-to-do-without-them order):

  1. JetBrains ReSharper – This one is a total no-brainer. ReSharper is a Visual Studio Developer’s best friend. It does real-time analysis of your code looking for potential errors, optimizations and coding guideline violations. It gives you inline warnings and recommendations and will modify the code for you with a single click. It adds 40 refactoring commands, enhanced IntelliSense, and a bunch of other way-cool stuff. It is also an awesome tool for teaching developers how to write high-quality C# code. Well worth the $199 to $349 (depending on the licence). Note: Even Microsoft uses ReSharper internally; I have seen ReSharper artefacts in code I have received from them.
  2. DevExpress Productivity Tools – In the unlikely case that you can’t convince your manager to pay for ReSharper, DevExpress offers a free Visual Studio add-in that provides some of the features of their paid-for products, which offer similar functionality to ReSharper.
  3. LINQPad – This free tool is definitely a “must have” for all .Net developers. It is primarily a tool for querying data and services using LINQ but it is also the best .Net prototyping and discovery tool that I have found. It will even show you the IL that is generated for various F# language constructs, which is a great way to get an understanding of how all that functional coolness is implemented.
  4. IronPython Tools for Visual Studio – I have been hooked on IronPython for a few years now. I particularly like to use it for API discovery and for quickly coding up test harnesses. It is also easy to host the IronPython runtime in your own application. I have done this in the past to provide a command console and scripting interface for an application I was developing. This add-in makes IronPython almost a first class language in Visual Studio, and includes an integrated IronPython REPL.
  5. Sysinternals Process Explorer – Replace the default Windows Task Manager with the Sysinternals Process Explorer for significantly deeper insight into, and control over, the processes that are running on your workstation. You can suspend or kill a single thread within a process (at your own peril of course), or see which process is using that DLL that you want to replace.
  6. Microsoft Expression Blend – If you are doing any non-boring WPF or Silverlight UI design and development then Blend is a must have. Yes, you can do WPF development with Visual Studio, but if you want to unleash your inner-Dieter-Rams then WPF is the tool for you. The “Ultimate” version also includes an awesome UI prototyping tool called SketchFlow. Unfortunately there is no way to buy Expression Blend by itself, so if you don’t have an MSDN subscription then you are going to have to fork out the $599 for Expression Studio.
  7. F# PowerPack – A bunch of cool and useful extra goodies for F#, written by the F# Team.
  8. Reactive Extensions (Rx) – Everything Erik Meijer and his team touch turns to developer gold, and Reactive Extensions are no exception. From the people who brought you a little thingy called “LINQ” comes Rx; push-based, observable collections and a LINQ-based programming model to go with them.
  9. Spell Checker – Because typos in code comments are just not on! There are a few spell checkers available but I use the free one written by Roman Golovin and Michael Lehenl that is available through the VS Extension Manager. Note: If you are working on very large files you may want to disable it temporarily.


  1. Interesting list. The only one on it I use is Sysinternals. Bit surprised not to see Reflector on here.

  2. I have to say that I only recently discovered Reflector (http://reflector.red-gate.com), and have only recently needed to peer deep inside a 3rd-party assembly. That said I recommended it to one of the developers that I am currently managing to understand a particularly obscure API he is working with. It is on my "play with when you get a chance" list for sure.