ReSharper = manna from heaven

This week, after having heard/read many, many times from a variety of developers that ReSharper from JetBrains was essential for any C# developer, I (finally)gave it a go. And after having only worked with it for about three days, I have to say that Resharper just might be the best thing I’ve ever downloaded. Sure, iTunes was fairly cool, and Google earth was nice and all, but the first time I loaded ReSharper up and got things set to use it (more on that later), and it told me what classes/methods were being used, plus it could tell me WHERE (this is very, very different from a text find)… and then, when I used its built in rename function, and it auto-renamed the class, the file name, anywhere that class was used, AND even listed the places it showed up in strings and comments, so those could be gone through separately/manually if desired …. well, that was exhilarating. To think I was no longer bound by the tyranny of my (and others’) old legacy names! That’s one of the things that has always annoyed me about working on an older project. As you get more familiar with a domain you inevitably realize that your original names for things reflected poor understanding, and are in fact misleading… however, you stick with them because of the nightmare it would be to change. Well, no more! (If only you could bottle this kind of glee…)

ReSharper also tells me what is not being used, which is just as important. Of course it’s important to give stuff a quick test after ripping stuff apart, but ReSharper actually encourages better coding. If things are not being used (using statements, variables, etc) it shows them as gray, and you get into a habit of commenting out, or even better, deleting stuff in gray by habit. It’s a simple thing that really helps keep the level of useless cruft down. It also tells you if you can declare variables in a smaller score, keeping things tidy (sometimes I decided against, for the purposes of declaring “starter” values all at the top of a method where they won’t get lost, but sometimes I went along and moved it-which involved just a click)

It even has features like go to implementors of an interface, and if you added things to the interface, you can click to have those methods added, albeit stubbed out with a “Not Implemented” exception… go to interface, or go to inheritors… Just lots of little things that all add up to a more seamless experience.

The initial setup was a fair bit of work, though I really can’t blame that on ReSharper. At work, I mostly support one large site that is several years old, and was really a learning experience for my organization. By the time I came on to the project, it was several years old, and had been through several developers. As a result, it was a hybrid of different approaches, and didn’t quite fit a “usual” .Net setup. To get ReSharper working fully, I had to move a number of directories around, and get the site into a real VS “Project” and “Solution”.. this all took a fair bit of rejiggering and such, but it was definitely worth it.

It’s $200 for the full version that also includes VB support, but I’ve already decided I don’t want to write C# without ReSharper. I’m at a small, mostly non-.net shop, but I hope I can sell my need of this anyway. If not, well, $200 is not too much to have a better working experience…

Tags: ,

Leave a Reply

This blog is kept spam free by WP-SpamFree.