Improved TypeScript Support in ReSharper 9

In ReSharper 9.0 we tried to help you work with TypeScript as comfortably as you do with other supported languages. Here is a list of features we’ve implemented that were missing before.

Highlightings and Quick-Fixes

Version 9.0 aims to support most TypeScript compiler errors. About 270 different types of error are now highlighted, and quick-fixes are available for many of them. Resolve errors, type compatibility errors, overload resolution errors and accessibility errors are all supported now, too. As you would expect, some common quick-fixes such as Create from usage and Change all now are also available in TypeScript files:

Error Highlighting for TypeScript in ReSharper 9

Of course, the import popup is now here, too:

Import popup for TypeScript in ReSharper 9

New Inspections and Context Actions

Take advantage of new code inspections for TypeScript that cover code redundancies, common mistakes, and suggest better language use:

Error Highlighting for TypeScript in ReSharper 9

Several new context actions are available as well:

New context actions for TypeScript in ReSharper 9


ReSharper 9.0 adds support for the following refactorings, previously unavailable for TypeScript.

Introduce Field

As with the other supported languages, the ‘Introduce field’ refactoring allows you to introduce a field from an element under the caret, or from a selection:
Introduce field refactoring for TypeScript

Copy Type

Copy type creates a copy of selected type and places it into a module you specify:
Copy Type refactoring for TypeScript

Move Refactorings

Four Move refactorings have been implemented: move type to module, move type to file, move into matching files, and move to folder:

Move to Module refactoring for TypeScript

Rename File

This is a brand new TypeScript-specific refactoring. When you rename a file, it helps you update file-based module dependencies, reference comments, and generated JS file references.

Suppose you are renaming your app.ts file to hello.ts:

Rename a file refactoring for TypeScript

All the corresponding references will be updated accordingly:
Rename file refactoring for TypeScript results

Import on Cut-and-Paste

Remember this tiny useful pop-up that appears when you paste code from elsewhere? Now it’s also available for TypeScript:
Import on Cut-and-Paste refactoring for TypeScript

Code Generation

ReSharper 9.0 introduces Generate functionality for TypeScript. Now you can implement interfaces by easily generating missing members, as well as generate overriding members and constructors:

Generate missing members functionality for TypeScript

Other Improvements

Every new version of ReSharper includes improvements to existing functionality, and TypeScript support in ReSharper 9.0 is no exception.

Live Templates functionality has been improved to include new scopes ‘module member’ and ‘type member.’ It also comes with live templates for common TypeScript entities such as classes, enums, interfaces and modules:

Live templates for TypeScript

Parameter info now supports not only function arguments, but generic arguments as well:


Specialized signatures are now supported:
Specialized signatures for TypeScript support

Finally, ReSharper now fully supports contextual typing and TypeScript 1.3 language features such as tuples and the protected keyword:

TypeScript 1.3 support in ReSharper 9

We’ve also added a dedicated Options screen where you may specify your current TypeScript language version to make ReSharper features adapt to that specific version:

Options for TypeScript in ReSharper 9

And last but not least, the set of TypeScript features also inherits new JavaScript features added in v9.0. Stay tuned for more details in upcoming blog posts!

Posted in ReSharper Tips&Tricks | Tagged , | 8 Comments

Webinar Recording and Q&A: What’s New in ReSharper 9

The recording of our recent webinar with Matt Ellis, What’s New in ReSharper 9, is now available on JetBrains YouTube Channel.

We apologize for the technical issues we had with Go To Webinar platform that prevented us from making the second session. If you registered for that session and was not able to attend it, please feel free to watch the recording and ask your questions in comments.

In this webinar, Matt Ellis covers some of the new and exciting features coming with ReSharper 9. These include but are not limited to regular expression support, Visual Studio 2015 Preview and C# 6.0 support, navigation improvements (Go to Action and Navigate to exposing APIs), bulk naming fixes and other improvements to the Fix in Scope mechanic, code style settings and a shared platform for all JetBrains .NET tools.

0:00 – Introduction
2:40 – Navigation
7:10 – Go To Action, Search in Options
10:50 – Code Formatting
13:05 – Code Style
16:01 – Inspections
23:10 – File Layout Editor
27:56 – Type Dependency Diagram
32:44 – Xamarin Forms
33:10 – Shared Project improvements
35:17 – Visual Studio 2015
37:16 – C# 6
41:58 – TypeScript
42:56 – Regular Expressions
46:05 – Code Completion Filters

The slides to accompany this session are available on SlideShare.

We received plenty of questions during the webinar and we’d like to use this opportunity to highlight some of them here, as well as address the questions that we didn’t have a chance to answer during the webinar. Please find the questions below with answers.

Q: Does my ReSharper 8 license allows using ReSharper 9?
A: This really depends on a specific license. If you have a personal license to ReSharper 8 and your upgrade subscription didn’t expire before December 5, it means you can upgrade to ReSharper 9 for free. Commercial licenses to ReSharper 8 may or may not be eligible for free upgrade to ReSharper 9: if in doubt, check your license certificates or contact JetBrains sales.

Q: Will ReSharper 9 keep supporting Visual Studio 2005?
A: No, ReSharper 9 doesn’t support Visual Studio 2005 and 2008, and this is also true for the recently released updates to other JetBrains .NET tools. If you would like to use ReSharper in Visual Studio 2005 or 2008, please use ReSharper 8 that can be downloaded from here. For more information on the state of Visual Studio support in latest JetBrains .NET tools, please see our recent blog post, ReSharper and Visual Studio: Where do We Stand. As to ReSharper 9, it does support Visual Studio 2010, 2012, 2013 and 2015, which includes Visual Studio Community 2013.

Q: Does the upgrade to ReSharper 9 Ultimate stack on top of my current subscription end date? Will it add 12 months on top of my current subscription, or will it reset my subscription to the date of upgrade? Should I just wait until near the end of my current subscription before upgrading?
A: ReSharper Ultimate will reset your upgrade subscription to the date of upgrade. For example, if your current upgrade subscription to ReSharper expires in May 2015, then upgrading to ReSharper Ultimate in December 2014 will result in setting a new upgrade subscription span that will expire in December 2015. That said, if your current upgrade subscription is expiring soon, now is a good time to upgrade to ReSharper Ultimate. However if your current subscription is not yet close to expiring, then unless you need the additional tools included in ReSharper Ultimate as soon as possible, it could be worth waiting before upgrading. With any additional questions, you reach out to the sales team and discuss your upgrade/renewal strategy.

Q: Is ReSharper 9 the same as ReSharper 8 Full Edition? What does ReSharper 9 Ultimate add on top of the regular ReSharper 9?
A: Yes, what we currently call ReSharper is basically what ReSharper Full Edition used to be. ReSharper Ultimate is a single license for ReSharper, ReSharper C++ (not released yet), dotTrace, dotCover, and dotMemory. ReSharper Ultimate also includes a year of free upgrades that is synchronized across all tools that it includes. For more information, please see a recent blog post, Meet ReSharper, ReSharper C++ and ReSharper Ultimate, or visit the ReSharper Ultimate web site that summarizes and visualizes the benefits of the Ultimate offering.

Q: How do you invoke the “Configure Format” action in JavaScript?
A: You can do this by selecting a piece of code and pressing Alt+Enter to invoke the Format Selection menu.

Posted in ReSharper Tips&Tricks | Tagged , | 1 Comment

Live Webinars: What’s New in ReSharper 9 (Dec 11); What’s New in dotTrace 6 (Dec 16)

ReSharper 9 was just released along with dotTrace 6dotCover 3dotMemory 4.2 and dotPeek 1.3. As all JetBrains .NET tools now use a single installer, you can download ReSharper 9 and choose to install only ReSharper or more of our .NET tools. For a quick overview of the releases, read this blog post.

ReSharper 9

What’s New Live Sessions:

To compliment the release of ReSharper 9 and dotTrace 6, we are running a series of live webinars to highlight some of the hottest new features and provide you with an opportunity to have your questions answered on the spot. We invite you to register now and join us for the following webinars.

What’s New in ReSharper 9 — December 11th, 2014

Two sessions are available for you to choose from:

Matt EllisIn these webinars, Matt Ellis will cover some of the new and exciting features coming in ReSharper 9. These include but are not limited to: Regular expression support, Visual Studio 2015 and C#6.0 initial support, Navigation improvements (Go to Action, Navigate to exposing APIs), Fix in scope evolution, Code style settings and Shared platform for all JetBrains .NET tools.

What’s New in dotTrace 6 — December 16th, 2014

Maarten BalliauwJoin Maarten Maarten Balliauw and explore the new dotTrace 6, bringing a great deal of new and exciting profiling goodies. Here are some highlights: New profiling method — Timeline, Restyled staring point for profiling sessions — dotTrace Home, Enhanced controller with realtime profiling data, Refined Performance viewer ,More flexible Subsystems and Shared platform for all JetBrains .NET tools.

Posted in dotTrace Tips&Tricks, How-To's, ReSharper Tips&Tricks | Tagged , , | 3 Comments

ReSharper 9 is Released along with dotTrace 6, dotCover 3, dotMemory 4.2 and dotPeek 1.3

Great news from the .NET tools development team here at JetBrains: ReSharper 9.0, dotCover 3.0, dotTrace 6.0, dotMemory 4.2 and dotPeek 1.3 are all released and available for download!

As all JetBrains .NET tools now use a single installer, you can download ReSharper 9 and choose to install only ReSharper or more of our .NET tools.

Resharper 9 is released

Highlights of ReSharper 9.0 RTM include:

  • Support for Visual Studio 2015 Preview while preserving compatibility with Visual Studio 2010, 2012 and 2013. Support for VS 2005 and 2008 has been discontinued, as described before.
  • Support for C# 6.0. Although the final C# 6.0 language design is not yet clear enough, ReSharper 9.0 already provides support for most of what is defined. New code suggestions help migrate your existing code to more concise C# 6.0 language constructs such as the conditional access operator (?.) and the long-awaited get-only auto-properties. You can get rid of curly braces with expression-bodied members, implement better DSLs using static support, play with exception filters and dictionary initializers. Please check this post for more details on C# 6.0 support.
  • New navigation features including Go to Action to search for a particular action using the legendary Alt+Enter shortcut and Navigate to Exposing APIs option for finding all the methods that are capable of returning a particular type.
  • Regular Expressions support with code completion for wildcards and regular expression groups, error highlighting, quick-fixes and a separate Regular Expression Validation Utility. Blog post about Regular Expressions support in ReSharper 9.0.
  • Fix in Scope improvements to remove redundant qualifiers, fix naming or remove regions in the scope of the whole solution. ReSharper 9.0 can look through the code in your solution and generate the appropriate imports for all the types including extension methods.
  • Type Dependencies Diagram that looks cute and helps finding out what code depends on a particular type, and what the type itself depends on.
  • Outstanding JavaScript and TypeScript support with 50+ new quick-fixes to cover over 270 different types of code issues, new live templates for common TypeScript entities, and new code generation options. The list of available refactorings is extended to include Introduce Field, Rename File, Copy type and a set of Move refactorings to ease code tweaking.

ReSharper C++ has not reached the release yet, the EAP goes on. Stay tuned for further updates!

Updates to other .NET tools

We’re also rolling out substantial updates across the whole family of JetBrains tools for .NET professionals:

  • dotTrace 6.0 introduces a completely new Timeline profiling mode for collecting temporal call stack and thread state data, refines the starting point of the profiling process with dotTrace Home view, adds more flexibility to subsystems, and supports Visual Studio 2015 Preview.
  • dotCover 3.0 supports remote code coverage, gets a restyled coverage configuration dialog, a new coverage controller and support for ReSharper 9 and Visual Studio 2015 Preview.
  • dotMemory 4.2 learns to live on a shared platform with the other .NET tools, and therefore receives Visual Studio 2015 Preview support as well.
  • dotPeek 1.3 borrows a set of actions introduced in ReSharper 9, and integrates its symbol server with ReSharper’s navigation to external sources, which basically allows setting break points in third-party code that you navigate to using ReSharper.

All JetBrains tools for .NET professionals now operate on a shared platform which means less consumption of resources when running them at the same time in Visual Studio.

Moreover, with the new ReSharper Ultimate license you can now use all of them at affordable price that includes 1 year of free upgrade subscription.

What’s new: Live sessions

If you’re interested to learn more about the new releases, read all blog posts about ReSharper 9 (there’s more of them to come soon), or register for our free webinars:

Whatever anyone can say, the best way to learn more about these updates to JetBrains .NET tools is to download a trial and test it in action!

Posted in News and Events | Tagged , , , , , , , , , | 51 Comments

ReSharper 9 hits Beta along with other JetBrains .NET tools

Enough of early access to the family of .NET tools, it’s time for serious business!

Please welcome Beta releases of ReSharper 9.0, ReSharper C++, dotCover 3.0, dotTrace 6.0, dotMemory 4.2 and dotPeek 1.3.

As all of them are now available from a single installer, you can download ReSharper 9 Beta and choose to install only ReSharper or more of our .NET tools.

Read on for a recap of new functionality, the recommended way to submit feedback, and the list of major known issues.

Common installer for Beta builds of ReSharper 9 and other .NET tools

A recap of what’s new in these releases

  • ReSharper 9.0 Beta integrates into Visual Studio 2015 Preview, provides initial support for C#6.0, embeds a new Go To Action option into the Alt+Enter shortcut, introduces support for regular expressions, adds type dependency diagrams, brings more bulk quick-fixes and import actions. Client-side languages get a special treatment with 50+ new JavaScript and TypeScript quick-fixes, as well as 270 new code inspections.
  • ReSharper C++ Beta is, well, the first Beta release of a new product. The current state of C++ support in ReSharper is described here.
  • dotCover 3.0 Beta receives remote code coverage, a restyled coverage configuration dialog, a new coverage controller, as well as support for ReSharper 9 and Visual Studio 2015 Preview.
  • dotTrace 6.0 Beta introduces a completely new Timeline profiling mode for collecting temporal call stack and thread state data, refines the starting point of the profiling process with dotTrace Home view, adds more flexibility to subsystems, and supports Visual Studio 2015 Preview.
  • dotMemory 4.2 Beta learns to live on a shared platform with the other .NET tools, and therefore receives Visual Studio 2015 Preview support as well.
  • dotPeek 1.3 Beta borrows a set of actions introduced in ReSharper 9, and integrates its symbol server with ReSharper’s navigation to external sources, which basically allows setting break points in third-party code that you navigate to using ReSharper.

Note that all JetBrains .NET tools now operate on a shared platform, which conserves resources when several products are running at the same time in Visual Studio.

We need your feedback as soon as possible

If you have ignored prior Early Access builds expecting to preview ReSharper and friends on a later stage, this is probably the time for you to give the updates a try. As we are on a very tight release schedule this time, we ask you to check the known issues outlined below, and if your system environment is fine, download and install the Beta releases. When you have them installed, if anything is not working, please let us know about any critical issues as soon as possible.

If anything is going wrong, the easiest way to let us know is select ReSharper | Help | Report a Bug or Submit Feedback. In the Feedback Center window that opens, you’ll be able to briefly describe the problem you’re having, and send additional info our way: from environment information to a screenshot of your Visual Studio window to a settings file or a snapshot of your solution’s structure.

Reporting feedback on ReSharper and other JetBrains .NET tools  from Visual Studio

Beware of known issues

Some things are certain to go wrong. We know them, and you should know them, too. Here are major known issues of this Beta release:

  • Running any product under Windows with a non-English locale leads to a Visual Studio crash.
  • Integration with Visual Studio 2005 and 2008 is not supported. In fact, as announced recently, support for these versions of Visual Studio is discontinued permanently. We just thought it wouldn’t hurt to reiterate this.
  • The installer only runs on 64-bit operating systems.
  • The Beta releases don’t currently support Windows XP.
  • Standalone applications (dotTrace, dotMemory and dotPeek) don’t launch under Windows Vista.

Are you ready?

Are you not affected by the known issues outlined above? Congratulations! Download the Beta installer and give it a ride!

Posted in How-To's | Tagged , , , , , | 27 Comments

ReSharper and Visual Studio: Where do We Stand

Visual Studio keeps evolving, and ReSharper support for the Microsoft IDE is up to the challenge as usual. As a reminder, ReSharper 8.x currently supports a staggering 5 Visual Studio versions: 2005, 2008, 2010, 2012, and 2013. It’s only been half a year since we discontinued sales of ReSharper 2.x with support for Visual Studio 2003.

In light of recent Microsoft announcements and our internal decisions we’d like to give you an update on how we stand in regard to supporting different versions of Visual Studio. We have good news and bad news.

Bad news: ReSharper 9 and other .NET tools will not support Visual Studio 2005 and 2008

This was coming for a long time but we kept giving VS2005 and VS2008 one last chance after another. It didn’t help the case that certain recent ReSharper features such as Architecture Tools and Extension Manager weren’t by definition compatible with VS2005 and VS2008. Given the complexity of changes that ReSharper and other .NET tools have been subject to during the ReSharper 9 development cycle, we could have opted to release unstable, untested support for VS2005 and VS2008 but we chose not to. As we stand, we have to stop maintaining support for these releases to focus on up-to-date challenges.

To sum it up, the upcoming releases of ReSharper (including ReSharper 9) and other JetBrains .NET tools will not support Visual Studio 2005 and 2008. Only Visual Studio 2010 and later will be supported further on.

ReSharper 8.2.3, dotTrace 5.5.6, dotMemory 4.1 and dotCover 2.7.2 will become the last releases to support Visual Studio 2005 and 2008. Please keep using these stable releases if you’re staying with Visual Studio 2005 and/or 2008.

Should you or your team mates need to purchase new ReSharper licenses and expect them to work in Visual Studio 2005 and 2008, as a workaround, you’ll be able to buy ReSharper 9 licenses and use them with ReSharper 8.2.3 as we have specifically made sure that this release accepted the new license format.

Good news: ReSharper 9 will support Visual Studio 2015

Therefore, ReSharper 9 will support Visual Studio 2010, 2012, 2013 and 2015.

Following the pattern of ReSharper 8 release, version 9.0 will provide support for Visual Studio 2015 Preview, and further updates will add any necessary improvements required to integrate smoothly into the final VS2015 release. In case you have missed it, the current early ReSharper 9 builds work with Visual Studio 2015 Preview although there are known issues with its dark theme that are going to be fixed shortly.

We’re also close to smoothly integrating ReSharper’s quick-fixes and other Alt+Enter actions with Visual Studio 2015′s quick actions in a single UI:

We expect to write more about ways how ReSharper 9 is going to work in Visual Studio 2015, so stay tuned.

More good news: Both ReSharper 8 and 9 integrate with Visual Studio Community 2013

Microsoft has recently released the (conditionally) free Community edition of Visual Studio 2013 that totally beats Visual Studio Express by supporting extensions. Immediately we were faced with questions whether ReSharper would work in the Community edition. The answer is yes, both ReSharper 8 and ReSharper 9 do integrate into Visual Studio Community 2013.

The next question we faced in this regard was whether ReSharper would introduce a free edition as well. Well, we’re not planning to provide a special free edition. This is not necessary however. Similar to Visual Studio Community that is only available to specific groups of customers (see Channel 9 Q&A for details), ReSharper is also available for free to multiple groups including Microsoft MVPs (along with other JetBrains .NET tools and WebStorm), students and teachers (along with all other JetBrains products), as well as faculty members and trainers for use in classroom environments. Additionally, startup companies can enjoy a 50% startup discount on all JetBrains tools.

Posted in How-To's | Tagged , , | 28 Comments

Meet ReSharper, ReSharper C++ and ReSharper Ultimate

We’d like to give a preview of updates to JetBrains .NET product line that will become effective as soon as ReSharper 9 and other JetBrains .NET tools are released in coming weeks.

TL;DR: ReSharper editions (C#, VB.NET and Full) are going away. Instead, the ReSharper product line will now consist of 3 items:

  • ReSharper (formerly Full Edition: C#, VB.NET, XAML and other languages traditionally supported by ReSharper; no C++ support),
  • ReSharper C++ (C++ support only)
  • ReSharper Ultimate (includes both ReSharper and ReSharper C++, as well as dotCover, dotTrace and doMemory.)

Please see details below, along with answers to some of the questions that we expect to be asked.

How exactly is the set of ReSharper products going to change?

ReSharper is currently available in 3 editions: C# Edition (includes all features except for VB.NET support), VB.NET Edition (includes all features except C# support), and Full Edition (includes everything that ReSharper has to offer.)

Starting with the release of ReSharper 9 next month, C# Edition and VB.NET Edition are going away, Full Edition becomes referred to as simply ReSharper, and two additional products become available. The diff looks as follows:

  • ReSharper C# Edition. Will no longer be available.
  • ReSharper VB.NET Edition. Will no longer be available.
  • What has been known as ReSharper Full Edition will now be referred to as simply ReSharper. This will include all ReSharper functionality available in the current Full Edition, including support for C#, VB.NET, ASP.NET, JavaScript, TypeScript, HTML, CSS, XAML and build scripts. However C++ support will not be available in this product. If you have an active ReSharper upgrade subscription to C#, VB.NET or Full Edition by the time of ReSharper 9 release, you will be able to upgrade to ReSharper 9 for free.
  • ReSharper C++. This is a new offering in the ReSharper product line and will only provide C++ support.
  • ReSharper Ultimate. This is also new. ReSharper Ultimate will provide all ReSharper functionality including C++ support, and it will also include all other commercial JetBrains .NET tools: the set that currently consists of dotCover, dotTrace, and dotMemory.

Here’s how the new products relate to each other: ReSharper and ReSharper C++ are distinct products but ReSharper Ultimate unites them and adds other .NET tools:

How ReSharper, ReSharper C++ and ReSharper Ultimate relate

Why change anything?

There are two major reasons behind introducing these changes:

  • We wanted to get the positioning of ReSharper and .NET tools in sync with reality. For instance, isolating C# and VB.NET editions don’t make much sense anymore as ReSharper now supports over 10 programming languages. However separating C++ support from everything else does make sense as C++ and .NET applications are usually developed separately.
  • We wanted to streamline concurrent usage of ReSharper with other .NET tools. Traditionally, many customers have been hesitant to use dotTrace, dotMemory and dotCover alongside the widely popular ReSharper. This has happened for various reasons, notably those related to price and compatibility. For example, profilers would sometimes be seen as costing too much without being fully applicable in a day-to-day .NET developer workflow, and integrating all these tools in Visual Studio could increase memory consumption to intolerable levels. Both of these problems are now solved: one (price) with recent pricing changes and integrating .NET tools into the single-license ReSharper Ultimate product, the other (compatibility) with a considerable effort of getting all JetBrains .NET tools to reuse a shared set of libraries and thus drastically decreasing memory consumption when more than a single tool (for example, ReSharper and dotCover) is integrated in the same version of Visual Studio and used concurrently.

What is ReSharper Ultimate?

ReSharper Ultimate is introduced as the top-level product in the ReSharper product line that combines all individual tools for .NET developers that JetBrains produces, as well as ReSharper C++. After the release of ReSharper 9, ReSharper Ultimate will include:

  • ReSharper
  • ReSharper C++
  • dotMemory
  • dotTrace
  • dotCover

A ReSharper Ultimate license makes a single developer eligible to use all 5 products on a single developer workstation. You can install them all at once, or at any time you feel you need them, and use a single license key to activate any of them.

Purchasing licenses to separate products will also be possible. For example, if you don’t need ReSharper but you need dotCover, dotMemory or dotTrace, you will still be able to purchase them separately. However if you need more than two of these tools, and also if you need any of these tools and ReSharper, then ReSharper Ultimate would be the easier and most probably the cheaper way to go.

Why would I be interested in ReSharper Ultimate?

There are several reasons why purchasing ReSharper Ultimate licenses can be beneficial:

  • Using both .NET languages and C++. If a single developer uses Visual Studio to code both in C# (or VB.NET, or TypeScript, or other languages supported by ReSharper) and in C++, they would probably want to have ReSharper help out in both worlds. Purchasing both ReSharper and ReSharper C++ for this developer is an option but ReSharper Ultimate is priced roughly the same and additionally makes the developer eligible to use dotCover, dotTrace and dotMemory.
  • Easier procurement and license key management. As opposed to maintaining several sets of licenses to individual JetBrains .NET tools that could be subject to different licensing terms and require renewal at different dates, you get a single license key per developer that you don’t have to renew any more often than once a year.
  • Uniform maintenance. Traditionally, JetBrains .NET tools have distributed using different licensing schemes, which would introduce unnecessary confusion at times for customers with licenses to more than a single tool. To make things easier, ReSharper Ultimate always includes a 1-year subscription meaning you won’t have to monitor subscription expiration dates for every tool, but instead you can upgrade them all for free during a year after purchase date. As soon as the first year of free subscription expires, you can renew all covered products for one more year, in one go.
  • Price. ReSharper Ultimate pricing is crazy appealing. For example, if you’re a company from the US and you’re considering buying commercial licenses to all JetBrains .NET tools, here’s how much you’d have to shell out to buy them separately:

    $349 (ReSharper) + $229 (ReSharper C++) + $249 (dotMemory) + $249 (dotTrace) + $199 (dotCover) = $1275. This is way overboard, right?

    In contrast, a single ReSharper Ultimate license that qualifies a single developer for all these products is worth only $599, which is over 50% off the package! You’re essentially getting 5 JetBrains .NET tools for the price of 2.

What if I want my ReSharper to support both .NET languages and C++?

If this is the case, you have two options:

  • Purchase both ReSharper and ReSharper C++. For a company based in the US, two commercial licenses would cost $349 (ReSharper) + $229 (ReSharper C++) = $578.
  • Purchase ReSharper Ultimate. For a company based in the US, a single ReSharper Ultimate license would cost $599. This is just a tad more expensive than the combo of two ReSharper licenses suggested above, plus the Ultimate license would also make you eligible to use dotMemory, dotTrace and dotCover.

ReSharper C++ release however is going to be delayed

While ReSharper 9 and updates to other .NET tools are expected to be released in early December, ReSharper C++ will not reach release quality by this time and will only be available as Beta. The ReSharper C++ team expects to deliver the final release in early 2015.

Therefore if you’re looking to purchase a license to ReSharper C++, you have the option to either hold off until the final release of ReSharper C++ (and use the free Beta before it goes live) or purchase ReSharper Ultimate that will cover ReSharper C++ as soon as the latter goes live.

You’ll be able to use the free ReSharper C++ Beta in any case, the choice goes down to spending money earlier (by purchasing ReSharper Ultimate) or later (by purchasing a ReSharper C++ license as soon as it’s available for purchase.)

Upgrades and renewals

Will I be able to upgrade my existing ReSharper Full/C#/VB.NET license to ReSharper 9?

Sure. If you have a license without free upgrade subscription or with an expired free upgrade subscription, this would be a paid upgrade.

However if you have a ReSharper C#, VB.NET or Full Edition license with a free upgrade subscription that is active by the time of ReSharper 9 release, you’ll be able to upgrade to ReSharper 9 for free.

Will I be able to upgrade my existing ReSharper Full/C#/VB.NET Edition license to ReSharper 9 Ultimate?

Yes, you can upgrade to ReSharper Ultimate from your current license at any time for an upgrade fee.

Will I be able to upgrade my existing dotTrace/dotCover/dotMemory license to ReSharper Ultimate?

No, there’s no explicit way to upgrade existing dotTrace (formerly dotTrace Performance), dotMemory (formerly dotTrace Memory) or dotCover licenses to ReSharper Ultimate as we don’t anticipate high demand on this upgrade path. If real demand proves us wrong, we’ll reconsider and find a solution.

For how long will I receive free updates for the products covered by ReSharper Ultimate license?

Every ReSharper Ultimate license includes 1-year subscription to all updates across all tools that it includes. After your subscription expires you can continue using the latest installed versions of the tools, and you will be eligible to receive free bug-fix updates as well (those that have 3 digits in version number).

Please note that there are no traditional “per major version” licenses to ReSharper Ultimate: when you buy (or upgrade to) a ReSharper Ultimate license, you always receive 1 year of free upgrades.


The considerable changes outlined above can be hard to understand, and communicating them is not an easy task as well. If you have any questions, please ask them in comments, and we’ll try our best to clarify.

Posted in How-To's | Tagged , , , , , , | 48 Comments

Free JetBrains Night in London, December 2nd

Looking for a date in London, UK on the 2nd of December? Spend a fun and informative evening with us and our developer tools.

In collaboration with NDC, we have prepared a FREE special evening event that coincides with the pending major release of ReSharper.

JetBrains Night in London, December 2nd

Come learn what’s new in ReSharper 9 and see ReSharper C++ in action. We’ll show you the hottest new features and share our tips and tricks to help you get the most out of our tools.

We will also be giving a sneak peak at some of things things we have been working on including Upsource, our new repository browser and code review tool, new upcoming features in TeamCity, YouTrack and some other goodies!

Light snacks and drinks will be provided. We hope that you join us from 17:30 – 21:00 on December 2nd at the Crowne Plaza London – Docklands.

There are a very limited number of tickets that are available. Learn more and register now to reserve your spot today.

Brought to you by JetBrains and NDC
NDC London 2014JetBrains Night in London is brought to you by JetBrains in collaboration with NDC. We would like take this opportunity to remind you that NDC London 2014 takes place during the same week, December 1st – December 5th, at the same venue. You do not need to attend NDC in order to attend our free JetBrains Night.

Posted in News and Events | Tagged , , , , | Leave a comment

Introducing EAPs for dotTrace 6, dotCover 3, dotMemory 4.2

Please welcome a new ReSharper 9 EAP build that comes along with compatible dotTrace 6, dotCover 3 and dotMemory 4.2 Early Access builds.

Download the common .NET tools installer, launch it and choose the products you want to try.

We’ve done a great amount of work on the UI side, resulting in a more pleasant and easy-to-use profiling experience with dotTrace 6 EAP. A number of new features were also implemented, as well as the new and powerful timeline profiling option. Let’s have a look at what’s new.

dotTrace Home

When launching dotTrace 6, we’ll be presented with an all-new starting point: the dotTrace Home. From here, we can start a new local or remote profiling session for known .NET application types, attach to a running process and configure our profiling session.

dotTrace Home

Every application type will offer different settings for running the application we want to profile. Ticking the Advanced checkbox will provide us with additional options, such as using the profiler API.

If you’re new to performance profiling, check the Tutorials section on the home screen. We’ll guide you through how dotTrace works and how to analyze the data that was collected by the profiler.

Enhanced Profiling Controller

After launching a profiling session, we’ll see a new profiling controller open. We can use it to start the profiler, generate a snapshot, specify whether the profiler should continue capturing data or not, detach the profiler, or kill the running process.


With dotTrace 6 you can expand the profiling controller, providing you insight into the realtime CPU and memory usage of your application.

Profiler controller showing realtime CPU and memory usage

When our application runs multiple processes, we can select to profile any of them from the Processes page. Note that the Profile child processes option must be enabled for this to take effect.

Timeline Profiling

We’re introducing a new profiling type with dotTrace 6: Timeline profiling.

Timeline profiling collects temporal data about thread states, application events and other multi-threading data using Event Tracing for Windows (ETW). It comes in handy when analyzing multithreaded applications and lets us determine the cause of UI freezes, excessive garbage collections, uneven workload distribution, insufficient I/O and so on. The main advantage of Timeline profiling is that it not only allows us to see which calls were made by our application, but also how these calls were distributed over time.

Analyzing timeline profiling snapshots is similar to analyzing other profiling type results, with one difference: everything is bound to the timeline. We can view all events, or zoom in on a particular timespan of our application’s runtime and analyze the call tree, threads, memory allocation, garbage collection and I/O events.

Timeline profiling for multithreaded applications

In general, we can use timeline profiling all the time: just like the other profiling types it collects call stack data and allows us to determine performance bottlenecks. It is unable to determine the exact number of performed calls, making it less suitable to analyze algorithms, but that’s where tracing and line-by-line profiling are the tools of the trade.

Dissolved and Hidden Subsystems

When analyzing profiling results, we get a broad overview of subsystems used by our application. This gives us a hunch of where most time is spent: in the UI, in user code, with Garbage Collection, with I/O and so on. We can even define our own subsystems.

dotTrace subsystems view

From the options, dotTrace now lets us dissolve or hide subsystems. By default, each subsystem is visible as an entry in the subsystems pane. Making a subsystem dissolve will account the call times to its caller. Hidden subsystems will not be counted in results.

Subsystems now dissolvable or hidden

Setting these options for existing or new subsystems lets us slice and dice the profiling results in such a way that we only see the data we’re interested in.

Various UI Improvements in dotTrace 6 and dotCover 3

dotTrace 6 is now sharing a unified UI framework with ReSharper, dotCover and dotPeek. This brings an experience consistent to Visual Studio to the latest version of our profiler. All tabs and panes can be docked wherever we want, or detached from the main window so they float around. Very useful in multi-monitor setups! dotCover 3 receives a new UI for configuration settings dialog box.

Code Coverage in dotCover 3 on a Remote Machine

Code analysis in dotCover 3 can be performed on a remote machine. Set up a server and run it as a console application or Windows service on a remote machine. To perform code coverage, one needs to navigate to C:\Users\username\AppData\Local\JetBrains\Installations\dotCover01. Then, launch dotCover.RemoteCoverageServer.exe and connect to the server from the menu ReSharper -> Options -> dotCover -> Remote Coverage. In this scenario all the coverage tests are running on a remote server. This can save you a vast of performance resources on your local machine.

The Customary Trial Pitch

Give the latest versions of dotTrace 6 EAP, dotCover 3 EAP and dotMemory 4.2 EAP a try! Download the common .NET tools installer and choose products to install. Please note that doing so will remove all previous installations of ReSharper and other JetBrains .NET tools from Visual Studio, plus VS2005 and VS2008 are not supported so far.

All feedback, comments, issues and suggestions are welcome in dotTrace, dotCover and dotMemory issue trackers or through the comments below.

Posted in News and Events | Tagged , , , , , , , , , | 15 Comments

Another ReSharper 9 EAP build: now with ReSharper C++

We’ve already hinted before at the fact that ReSharper for C++ Early Access Program went public. In the second ReSharper 9 EAP build we’ve added dotPeek to the install bundle, and in this latest EAP, ReSharper for C++ is also available for installation. Now, we’ve already had several separate builds of R# with C++ support, so this post covers the new, never-before-seen features that are making their appearance in this EAP.

Important note: Please be aware that the C++ support in ReSharper will constitute a separate product rather than simply an add-on to the existing ReSharper features.

  • Extract Method — this refactoring lets you factor out a part of a complicated function into a separate function. Simply pick the part of code that you want to extract:
    Extract Method refactoring in ReSharper C++
    ReSharper will then let you pick the arguments of the extracted function:
    Extract Method refactoring in ReSharper C++
    … and make the appropriate adjustments:
    Extract Method refactoring in ReSharper C++
  • Type Hierarchy — this window shows you a tree representation of all the types in a particular inheritance hierarchy:
    Type Hierarchy window in ReSharper C++
  • Improved Code Completion — plenty of improvements here; for example, enum members taken from a different namespace are shown in code completion:
    Code Completion in ReSharper C++
    Or here’s another example. Say, you have a member function declaration. If you try to call it on the object, you’ll get the following completion list:
    Code Completion in ReSharper C++
    This is an example of generative completion — after you pick the top option, ReSharper will generate the following piece of code at the caret position:
    Code Completion in ReSharper C++
  • Typedef Substitutions let you leverage ReSharper’s power to perform in-place resolution on types and simplify them:
    Typedef Substitutions in ReSharper C++
  • Support for Calling Conventions — ReSharper now has proper handling of calling conventions and correctly recognizes usage scenarios, such as e.g. the use of Boost.Bind with BOOST_BIND_ENABLE_STDCALL
  • Improved Code Generation for Template Classes — for example, in this scenario
    Code Generation for Template Classes in ReSharper C++
    the code generator for the constructor of Y looks like this:
    Code Generation for Template Classes in ReSharper C++
    and the generated code for these options looks like this:
    Code Generation for Template Classes in ReSharper C++
  • Go to Declaration now works on variables declared with the auto keyword.
  • Improved Member Resolution with support for template types in some scenarios:
    Member Resolution in ReSharper C++
  • Memory Usage has been reduced by up to one third in some scenarios.

As you may have guessed, there are plenty of other improvements in ReSharper C++ EAP. So, if you’re interested in seeing all these features in action, you know what to do – grab the EAP and give them a go!

Note that apart from an updated ReSharper C++ EAP, the latest EAP build contains a set of fixes for ReSharper 9 EAP.

Posted in ReSharper Tips&Tricks | Tagged , , | 11 Comments