Benefits of using ReSharper

Please do not laugh at me now after reading the next sentence. I am evaluating the ReSharper now.  I should do it years ago as I have always been aware of it, but just didn’t get my hands on to it. I tried CodeRush and Refactor! from DevExpress too. I must admin these tools do not read your mind, but are doing a great job FOR you.
What I liked in DevExpress CodeRush+Refactor! is its fun visualisations and code complexity shown. Refactorings are great as well.
But, ReSharper aims to help you with coding more than just showing some information about it (though it does it too).
Additionally, CodeRush has great support for expandable shortcuts, lets calls it consistently – Live Templates. There are thousands of them in CodeRush. But honestly saying I dont use it as much. Visual Studio templates in 99.99% of cases do the job for me. I have to mention that ReSharper does support its own live templates and tries to make it smart (at least by providing sensible defaults).
While I haven’t had intention to compare Refactor! vs ReSharper, I would say “DevExpress’ product adds fun to coding, while ReSharper adds quality to coding”. Many can disagree and have the right for that.
So here is the small list the ReSharper benefits me with:
  1. Run your unit-test from IDE (Not only MsTest but other common ones too).
  2. Clean-up the code in the whole file using different strategies. The code looks much better after that.
  3. Automatically include file header (I have to put copyright notice, so it saves my time).
  4. It easily removes redundant using statements.
  5. It automatically adds using statements for extension methods or anything that is not yet available. This one I just love. Here is the scenario:
    1. You have an IEnumerable<Something> list; in a new file.
    2. You type list.Where();
    3. ReSharper suggests: “Use method System.Linq.IEnumerable<Something>.Where”.
    4. You hit enter and it’s done.
    5. It suggest to rename file to match the class name.
  6. It warns (I changed it to ‘suggest’) to move class to the namespace according to the location on the file system.
  7. It automatically highlights possible NullReferenceExceptions.
  8. It validates the names of classes, methods, properties etc thus enforcing the consistency and guidelines. Not only it validates, but with one hit of Enter it renames it accordingly.
  9. It warns about unused parameters. It saves my time so I don’t have to debug for hours to spot the parameter is never used and the actual value is hardcoded instead.
  10. It selects current file in the solution explorer (don’t know why VS still doesn’t do it).
  11. Live templates are very smart.
  12. Easily reorder members using Ctrl-Alt-Shift and arrows.
  13. It shows NotImplementedExceptions in case you forgot something and have no test for it
  14. Shows great list of notes, todos, bug-notes etc extracted from your code and organised in a single window.
  15. And lots of other things I forgot to mention…
I also started to use a new word together with refactoring… and it is… resharping.
Additionally I have to mention that while evaluating ReSharper I migrated large project from .NET 1.1 and Borland Developer Studio 2006 to .NET 3.5 and Visual Studio 2008 (including all of its related assemblies). ReSharper definitely saved me at least 20-40% of time during this not the most pleasant process.
The biggest disadvantages I can see using ReSharper for now is that it slows down the IDE, increases memory consumption, especially on a large solution. But I can pay price easily for all the benefits.