My Essential Development Tools


There are a few development tools that I just can’t live without.

ReSharper

A few years ago I was sitting in Glenn Block’s office when I noticed some strange additions to Visual Studio.  When I asked him about it he said “That’s ReSharper” and I was hooked.  I had to have it.

ReSharper helps me to write better code faster period.  This is my #1 must have tool.

NCrunch

This is my most recent addition to the list.  I’m a big believer in unit testing and understanding your code coverage is crucial.  Yes Visual Studio has unit testing and code coverage but… if you have a large project the cycle of build, test, check code coverage just takes way too long.

With NCrunch I just work away and it builds, tests and analyzes code coverage in the background.   Before you know it you have red, green and black dots telling you about the coverage.  If a test fails, I see it right away and can fix it even before I built the project or even saved the file!.

StyleCop

I remember the good old days when teams used to fight about things like tabs vs. spaces in code or where to put your curly braces.  StyleCop stops all the fighting – it has a set of rules for code style that for the most part I agree with.  It analyzes my code and tells me when I’m not complying with the style as I type.

If you put StyleCop together with ReSharper – now you can quickly format your code.  Got to have this tool.

CleanProject

Have you ever wanted to email a project to a colleague or upload it to some website only to find that with all the bin / obj / ReSharper / etc. folder full of stuff that the zip file was huge?  Or maybe you open a project from a website or a friend and Visual Studio informs you that the project was under source control and the server is not available.

I created CleanProject as a tool to remove crap that I don’t care about from the zip file and to remove source control bindings.  Seems that several thousand of you agree that CleanProject is pretty useful.

.NET Reflector

Yes, I work at Microsoft and yes I have access to all the .NET Framework source (you do too by the way) but often I find that it is faster and easier for me to analyze what some piece of the .NET framework is doing by simply going to .NET Reflector.  They recently release a great extension for Visual Studio 2012 which makes it even better.  I can’t tell you how many times where understanding the underlying class has helped me to solve a difficult bug.


Comments (12)

  1. Mike says:

    I would recommend ILSpy (http://www.ilspy.net) over .NET Reflector since it is no longer free. In addition to ILSpy there are also several other free alternatives.

  2. Will says:

    JustDecompile is my decompiler of choice, now.  Its always getting updated, and works pretty well.  I can't see myself paying for Reflector after I believed redgate when it said it wouldn't remove the free version.  Oh, by the way, f*k redgate.

  3. Mike says:

    Ron – how do you get NCrunch to work with unit tested workflows?  It's not deploying the workflows that are configured in the test settings file.

    Thanks!

  4. Ron Jacobs says:

    @Mike – I typically use the [DeploymentItem] to deploy things I need.  In fact I never use the deployment section in the test settings file.  It could be that NCrunch is not using settings.  You could post a message in the NCrunch forum to see.

  5. Mike says:

    @Ron – the way I ended up getting it to work, since we use the settings file currently, is to add the files I needed to the "Additional files to include" configuration property in NCrunch.  However, your statement gets me thinking.  Right now we're using the [DeploymentItem] attribute and adding them to the settings file.  The path in the [DeploymentItem] attribute we're using is a relative path starting in the solution directory.

    Do we not need to use the settings file to successfully unit test the workflows?  Based on the forum posts I've found NCrunch requires a fully qualified path (as opposed to relative) in the [DeploymentItem] attribute – are you finding the same thing?

    I look forward to your response!

  6. Ron Jacobs says:

    I actually posted a message about how I use [DeploymentItem] on the NCrunch forum forum.ncrunch.net/yaf_postst464_DeploymentItem-with-Environment-Variable-not-working.aspx

  7. Mike says:

    @Ron – when I see this post (especially the workaround) I just have to say AWESOME (while laughing painfully) – LOL!  Thanks Ron!

  8. Michael Ohalon says:

    Also VSCommands (visualstudiogallery.msdn.microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8),

    small and very useful extension!

  9. Ron Jacobs says:

    @Michael – Interesting… VSCommands looks pretty cool – it even has CleanProject like functionality except that it doesn't remove source bindings as far as I can tell.

  10. Alireza Noori says:

    I have used both Resharper and CodeRush. I have to say CodeRush is waaaaaaaaay better. Clean interface, useful refactoring, etc. There are some areas which Resharper is better but overall Coderush has too many features which makes it superior.

  11. Michael Ohalon says:

    Not sure about source bindings and clean project, but they are quick in adding new features when requested so you may want to email them.

  12. Ron Jacobs says:

    @Alireza – Never tried CodeRush – heard several debates between fans of both though.  It's great to have some options.