I've posted a couple of times about different VS plugins, like CodeRush, CodeSmart, ReFactory, and ReSharper.
I think I'm ready to finally go with one tool - I placed my orders
today for ReSharper, and un-installed the copies of CodeRush, and
CodeSmart that I had already paid for. It was a close decision,
especially between CodeRush and ReSharper. But in the end
ReSharper won out, and I'll try to explain why:
Now, to be fair, I don't think I took the time to fully learn CodeRush. A listen to the latest episode of DotNetRocks,
featuring Mark Miller, is a good introduction to CodeRush.
CodeRush is full-featured, well-designed and has a long history of
development and use. The application has been around for
years as a Delphi product, and so a lot of thinking has gone into
it.
But... to fully utilize it's features you have to learn how to use
it. Much of the functionality is based on this macro-type
language which is driven by your current context in your
code. Out of the box, you'll only realize a small
fraction of it's benefits. If you listen to the show, Mark
Miller pretty much says this word for word. Therein lies my
problem with CodeRush:
I'm spending too much of my time learning other methodologies and
tools, like how to write good code, maintain production environments,
unit testing and design, to learn a bunch of stuff just to
use my new IDE plug-in! I could learn the Dvorák keyboard too,
which I'm sure would pay off in the long run, but the effort is too
great! Call me lazy, but I just want the plug in to make
development easier for me out of the box, without any additional effort
on my part. This is exactly what ReSharper does, install it,
start writing code, and your life will be better. Mine
was. Here's some things that really made me a convert:
First, ReSharper shows you code errors before you compile. If
your code is free of errors, you get this little, green box to the
right of your code window:

If it won't build you'll get a red box, along with little red lines that you can click on to go directly to the offending code:

This is an awesome feature. It saves me so
much time during a day. In fact, I would say that this
reduces the number of times I compile in a day by 75%. When it
takes you 10 seconds or so to compile, this can really add up to a
large chunk of time spent not coding, and interrupting your
coding flow.
ReSharper's auto-code generation is cool too. CodeRush works
by copy-paste of source code, to automatically generate new code, so if
you copy “private int someInt“ in a class, and paste it in the class,
you get a public get/set property. Now this sounds good, and does
work well, but I could never get fully used to it.. I did use
this for a couple of months, but it always seemed to violate some sort
of UI “Single-Responsibility Principle“ to me. Cut and paste
should be just that, nothing more.
In ReSharper, you choose “Generate..“ from a menu, and it'll
popup a context menu like this, if it finds stuff to generate.

There's templates too, and all sorts of refactoring stuff built in,
but that's a whole nother blog post. But, all in all, for a
developer who's too busy to stop and learn a new tool, ReSharper will
give you the biggest productivity gain, in my opinion.
-B