As I mentioned in a blog last week, I downloaded two refactoring tools: .NET Refactor and ReSharper. I had some really horrible experiences with refactoring tools in the past, so I was a bit skeptical going in. It has been a week so here are a few more thoughts about the tools.
While .NET Refactor has some nice features, like the how it can move code into regions for you and how it creates a list of regions you can choose form, I found that it just did not have enough features to really make me want or need to use it. In fact, I have uninstalled it already.
ReSharper has a much more robust feature set and for the first time ever, I am glad that a tool prompts me with occasional tips. I did not know any of the shortcuts that it offers, so the tips have been nice since I did not read the help file. I especially love the Find Usages feature. I click on a variable and it finds every place that it is used. This past week I was tasked with renaming a class. I used ReSharper’s Find Usages feature to find all locations that it was used before I went ahead with the refactoring. It was smart enough to find out that it implemented an interface and it asked me if I wanted to find usages of the interface too. Very helpful, indeed! It sure is nice to see where something is used before making a refactoring decision. Measure twice, cut once. I then asked it to rename the class and it went and did so everywhere it was referenced. Since this was used in 7 projects across a solution, this was nice time saver. I especially like how ReSharper analyzes and highlights my code files in places where I have invalid references, redundant “using” statements, and methods which are not called by anything. This tool has saved me a lot of time and pro-actively prevented bugs.
Sounds like a winner so far, huh? I think so. To be fair, it does have some issues, too. My biggest issues with ReSharper so far are how long it takes to load and how much precious RAM it consumes. I loaded my project without ReSharper in about 20 seconds (24 projects in the solution with a ton if references). When I load the project with ReSharper it takes over 90 seconds to load while at analyzes the project and loads its cache. The good side of this is that it is relatively quick to use once it is loaded. But still, taking 90 to 150 seconds to load is a bit of a pain, especially when I open and close project files throughout the day. I also told the tool to show how much memory it consumes. This fluctuates, of course, depending on what I am doing. But it seems to float between 70MB and 130MB of RAM. I have 1GB of RAM which is getting to be tight these days, so this is just something to be aware of. Not a problem, just something to understand if you run with low RAM.
So far I am very pleased with ReSharper and I might just add it to my collection of tools. AT $149, its enough for me to pause but if it continues to be as useful as I have found it thus far, it could pay for itself. I’ve got a few weeks left on my 30 day trial …