Jeffrey Palermo commented recently on JetBrains' latest TeamCity 1.2 release. Cool, but that was not struck my interest. See, Jeffrey goes on praising Resharper and says that Scott Bellware uses it a lot. So does apparently a lot of other bloggers, from what I read constantly from people on my blogroll.

I must admit I've never used Resharper myself, though it definitely sparks my interest; I'll certainly have to try it out some time. However, I do have both CodeRush and Refactor! from Devexpress. I will say that both are very useful products and in general terms I've always found CodeRush very extensive set of features very impressive. I would certainly recommend either one as a way to improve Visual Studio remarkably to anyone.

That said, I have to admit that I rarely use CodeRush, even though I keep it installed and enable it from time to time. I will also admit that I do this against my will! See, I want to use CodeRush. A lot. But everytime I do, it soon drives me crazy, though more because of my own fault and how I use Visual Studio than because of the tool itself. Here's the deal:

CodeRush has a huge ammount of templates, expansions, formatting rules and a whole bunch of other stuff I haven't even begun to explore yet. Unlike other tools (including quite a bit of the tools inside Visual Studio itself) it is highly keyboard-oriented, meaning most of the stuff is triggered as you type the code and some key combos instead of having to drag the mouse oriented. That's fantastic of itself.

However, the first problem I always run against is that all the default key combinations in CodeRush, particularly those related to code navigation, are made to work well with the default keyboard layout used by Visual Studio (or at least that's my guess). My problem is that I refuse to ctrl-shift-B to compile.

In other words, I'm a big user (and will continue to be for the foreseable future) of the old VC++ 6.0 keyboard bindings. Because of this a lot of the default mappings in CodeRush directly conflict with key combinations already mapped in my Visual Studio key assignments. Normally this wouldn't be a problem given how huge VS key maps are, but unfortunately it steps on quite a number of key combos I use every day a lot of times that do a lot of useful things.

So to be able to use CodeRush one of the first things I have to do is go around deactivating (or remapping) some of the default key assignments, which, given the huge set of mappings in it is always a challenge.

My second issue with CodeRush is that I'm anal about code formatting (hence my recent suggestion about allowing per-solution settings), and as much as possible I try to keep to my code formatting rules. I always keep Visual Studio to format my code just how I like it, by keeping a copy of my favourite settings exported around as a vssettings file and importing it as soon as I install VS. And to be honest, the code formatting editor features in C# has improved a lot and for 99% of the cases they work just fine for me.

Again, CodeRush has a lot of code expansions, which are great! Except they also output code formatted just as they were configured originally. And yes, they conflict with my own configuration. So, it's either manually adjust the default templates in CodeRush (a monumental task by itself), or try to then manually format the code after the fact, which kinda defeats the purpose in the first place. And no, I refuse to just let the code in whatever way it was thrown out.

I could live with the two issues above and spent the time necessary to configure CodeRush exactly how I liked it in such a way that it doesn't cause me pain. I'm willing to spend the time to configure it (as it would save me time in the end by allowing me to use the features it offers), but I haven't done it. Why? Because so far, I haven't found a way to export all my CodeRush settings so that I could reimport them everytime I repave my machine (which is fairly often). And doing that more than once is just not something I'm wanting to do. Hopefully that last issue is there and I just haven't found it!

How does Resharper fare on these three issues?

Tomas Restrepo

Software developer located in Colombia.