Prague, Czech Republic
+420 2 4172 2501
JetBrains have been in the Java world for a while, producing the popular
IntelliJ IDEA IDE. Now they've moved in on .NET with this product, an
add-in for making C# code editing more efficient (sorry, users of other
.NET languages need not apply yet).
The package is one of those that's loaded with functionality, and thus
has a pretty steep learning curve. Although everything is available
through a main ReSharper menu, and occasionally through a context menu,
it's clear from the help that you should learn the keyboard shortcuts
for efficiency. If you're a keyboard-oriented coder, of course, this
won't bother you.
Refactorings are perhaps the sexiest feature here, or at least the one
for which JetBrains is best known. You can extract a method, change a
method to a property, do various smart renamings, and so on. I tried
these out, and they work well and quickly. Anything that lowers the bar
for refactoring code is a good thing, as it makes it possible to
backtrack past old mistakes without fretting too much about side
But there's a lot besides refactorings here. Take the code editing
features, for example. There are advanced types of code completion (it's
smart enough to match data types when selecting things to offer as
matches), the ability to quickly insert code structures such as
try/catch, and live templates that fill in gobs of code with little
effort and then prompt you to fill in variable names.
There are also plenty of fit and finish touches. These range from a
richer syntax coloring than the VS .NET default to showing you matching
braces to marginal symbols that indicate when a method overrides a
method of a parent. All of this stuff just works, and it's easy to get
used to it, as well as to the enhanced error checking that lets you find
dubious code without needing to compile.
ReSharper also offers functions for navigating code and finding the
usage of various things. For example, you can quickly navigate to the
base class declaration that you're modifying, or highlight all the uses
of a variable in a file.
Overall, I like the way ReSharper turned out. The flow is smooth and
well-integrated with VS .NET, and the functionality is useful. My only
hesitation comes from the exclusively C# focus. If they also worked in
VB .NET, I'd say any .NET developer needs a copy. If you're a C# person,
it's definitely worth your while to take the free test drive.