Review: ReSharper 9 Ultimate

December 12th, 2014

JetBrains just released their new version of ReSharper called ReSharper 9 Ultimate. In this post, I review what some of the new features are that make it even more of a critical Visual Studio add-on.

When I first discovered ReSharper, I didn't realize it's potential until I started refactoring mass amounts of code. Developers from across the globe have been using ReSharper for a long time. JetBrains is STILL winning multiple awards for it's development tools which proves that they are seasoned engineers in the software industry.

With all of that under their belt, this latest version of ReSharper is more of a surprise than previous releases.

Introduction

I have always appreciated ReSharper because of it's ability to reliably refactor code and feel confident about the final result. It safely moves/refactors/deletes/renames code with the developers permission. It's even part of my .NET Speed Series I did a couple of months ago.

Now, it seems that JetBrains is shifting gears with their .NET tools.

Platform

JetBrains just released a new version of ReSharper called ReSharper 9 Ultimate.

What's the Ultimate for?

The Ultimate (in my opinion) stands for Platform, which means they have a single installer for every .NET tool including ReSharper, dotTrace, dotMemory, dotCover, and dotPeek. If you buy one product, you'll be able to install another JetBrains product at anytime you feel the need for the next step in your development cycle.

Each JetBrains .NET tool is a piece of the lifecycle of an app:

Each one of these tools can be purchased through the ReSharper Ultimate Platform.

Features

Let's get right to the features of ReSharper 9.0. That's why you're here, right?

This review is based on how much coding and refactoring I've done since 9.0 came out this week (which has been 2-3 days). If I missed a couple of features, I may mention something in a future post.

Visual Studio 2015

Of course, the most obvious feature is that it will work with the latest Visual Studio 2015 when released.

However, there is bad news. Support for Visual Studio 2005 and 2008 will be discontinued moving forward.

C# 6.0 Support

I haven't done anything with C# 6.0 yet (mainly because it's not finalized yet), but there are a number of new changes that ReSharper includes in this release.

The changes I'm looking forward to in C# 6.0 is the Conditional Access (since I have a lot of code like that), Primary Constructors, and Expression-Bodied Members.

They are explained in detail on their blog at First Look At C# 6.0 Changes in ReSharper (which I'm excited about).

Regular Expression Validator

I'm sure everyone just LOVES working with Regular Expressions in their code. For everyone else who cringes at RegExs, they've included a simple Regular Expression Validator.

Definitely great for "heat of the moment" quick results and gives immediate feedback as you type.

The one issue I have with the validator is that a legend/assistance is not available on this dialog. This is assuming that you know what every symbol means. If you don't, you need to head to your friend Google.

Bulk Import Support

There are times when I load a project and it can't find an assembly. ReSharper now comes with a Bulk Import functionality at a solution and project level (which I haven't tested yet). 

Actionable Navigation

After writing some code this week, I ran across another feature. At any point in your code, you can hit the "legendary" Alt-Enter, and immediately get a context menu containing "Generate Code...", "Inspect This...", and "Navigate To..." options. But this is just the start.

All of the ReSharper commands from the dropdown menus and context menus are available. Start typing into the search Action textbox and a list of actions that match your input will appear. As an example, I started typing "Check Update" and was immediately able to check to see if I needed any updates.

However, I did happen to notice a large JB icon on my taskbar. I clicked on it and found out they made me aware of no updates by displaying a large JetBrains window with the words, "No updates are available." A little too large for a notification, gentlemen. It interrupted my coding experience. ;-)

New Architecture Diagram

When they first introduced the Architecture option, I was excited to start using it to see how ReSharper analyzed and diagrammed my web application. Now, they have a new diagram called the Type Dependency Diagram (ReSharper / Architecture / Show Typed Dependency Diagram).

One click will show you all of the dependencies in your application and where you need to decouple your components. As dependency injection (DI) becomes more prevalent in your code, this particular feature will be invaluable to most Senior Developers/Architects.

You also have the ability to switch views. I chuckled a little when I saw the names of the view buttons on the left under the magnifying control: The Inheritance Hierarchy "Layouter" and the Business Logic "Layouter." (Sorry, those were funny to me...instead of calling them views)

Code Style Settings

Every development team has a diverse way of writing code. ReSharper added Code-Style Settings (ReSharper / Options / <language> / Code Editing) to the large number of already existing options (Woof!). This works for C#, VB.NET, HTML, JavaScript, and TypeScript.

In the C# section, you can modify your notifications for modifiers, 'var' usage, Instance members, static members, reference qualification, and attributes.

Enhanced JavaScript and TypeScript Support

According to the features page, there are a number of new JavaScript refactorings, a large number of new quick-fixes that cover 270 different types of errors, and new code generation options.

Based on what I've seen so far, ReSharper is starting to carry over some of their famous C# refactorings to the JavaScript side. I need to dig more into the JavaScript side to find out what else they included in this version, but so far, I'm impressed with the Intellisense and JavaScript refactorings.

Extension Manager

One thing I noticed when I started writing code was that some of my ReSharper 8.0 extensions weren't working in 9.0. So I opened the Extensions Manager.

Whoa! Definitely different.

One thing I noticed was that the .NET tools window had a sparse number of extensions. It's probably because of a newer version and authors need to update their extensions to 9.0.

As always, only use the extensions that you absolutely need.

Conclusion

ReSharper is becoming synonymous with Visual Studio developers. If you haven't figured this out yet, JetBrain's ReSharper 9 Ultimate is an absolute must-have if you are a Visual Studio developer.

Now is definitely a great time to jump on board and receive everything that the ReSharper platform delivers by using one central location for your development tools.

If you are interested in buying ReSharper, ReSharper 9 Ultimate can be found at JetBrains.com

What feature do you think is the most valuable in this release? Post your comment below. Don't be shy....go ahead...I don't bite. ;-)