In the past I have been skeptical of the refactoring tools purely because my experiences have been such that they are buggy, can slow down my IDE while they are processing and have even crashed my IDE at times. Well, its been a year or so since I have tried them so I figured I would give them another shot last week. After all, the idea behind refactoring tools is pretty awesome, if they work. Most of my code is in C#. There is a lot of development time and convenience to be gained from using them. (Yes, VS 2005 is going to have some refactoring built in, but that doesn't help my VS 2003 projects.)

OK, so I downloaded .NET Refactor and its service update. Easy enough installation process too. The featureset is OK, but I found the region features to be a bit awkward. My list of saved regions would disappear at times and reset itself to a default list. Also, when I move code to a region, sometimes it throws an exception on me. I also tried the Refactor Strings feature and it threw an exception, too. I had more luck with renaming of variables feature and the Extract method features ... they seemed to work fine for me and were quite useful. Overall, I am mixed on the product so far.

Next I downloaded ReSharper from JetBrains. Installation was just as easy but it takes a long time to load large projects now as ReSharper loads and sets up its caching. Once it is loaded it is fast, though. I'll have to play with it some more to see if this is enough of an annoyance to abandon it or not. It has some of the same and some different features than that of .NET Refactor. The one thing I noticed (or did not notice) is that none of the features I tried with ReSharper threw an exception. In fact, I have not seen any major issues thus far (crossing my fingers).  I like its color coding and highlighting of "warning" areas, they come in handy in locating unused code blocks. I also like how it implements an interface for me (nice code saving feature) I found this tool much simpler to use and much more effective in my initial trial than I have with .NET Refactor. Of course, it has only been a week, but so far I like what I see from ReSharper.

I'll post more on these as I tackle more of their features.