ReSharper is a renowned productivity tool developed by JetBrains that makes Microsoft Visual Studio a much better IDE. It brings smart C# code analysis, editing, highlighting and refactoring features to .NET developers. ReSharper extends much of its support to VB.NET, build scripts, ASP.NET, XML, and XAML files. All features are available in mixed solutions where different projects use .NET Framework, .NET Compact Framework, Silverlight, as well as other frameworks and tools from the Visual Studio ecosystem.
I have hardly ever used an add-on with Visual Studio while using it more than decade or so. I never felt an urge to use one and always believed that Visual Studio is one of the best IDE present in the market, in fact it is. Fortunately or unfortunately, our team decided to throw away the (outdated and self-proclaimed) coding standard we were using. This led to a search to find a better tool which can help us a team in doing so. ReSharper came as one of the top search result in Google. Not sure because of relevance or as a sponsored result, but that’s a different story.
Having said so, I have been using this add-on (trail version) for almost three weeks now and simply cannot believe how I managed to do without. It is certainly addictive. Apart from all the features JetBrains has listed on their website, here are 5 reasons why I love ReSharper:
- Conventions: One of the most striking and handy feature. As a developer, I don’t really have to bother and remember the naming conventions. ReSharper helps me and signals any deviation as I type my code. This means, no longer I have to create lengthy documents and indoctrinate new programmers about the conventions we use as a team.
A definite PLUS while doing code reviews. All those deviations should have already been taken care of by the developer himself and if not it will just strike through immediately while you are at it.
- Code Editing Helpers: Another magical feature. I had this project where someone had written a NICE nested foreach loop. I noticed that ReSharper had few suggestions to it. It suggested that a better Linq statement can be used instead of loop. And not only has it suggested, it does it for you. Pretty handy as feature even if you want to learn new, better ways and syntax to write code.
- Code Smells: This is how they market the feature. But it really works. ReSharper can tell you if there is a possible NULL reference exception. Very handy when you have a lot of junior developers working on the team. This is one of those scenarios which is most likely to happen if the developer has made an assumption on his own.
Apart from that here are my general observations:
- Suggests good coding practices as we type
- Good refactoring support
- Supports xml files also for refactoring
- Seems to take a lot of resources
Features personally liked:
- grey out unused using statements and variables in the editor
- suggestions to convert string literals to constants when used with hard coded values
- suggests naming conventions for namespaces, variables etc.
- suggestions to change the scope of variables to inner most code block
- suggestion to use object initializers
- suggestions for possible exceptions in code
- and a lot more