Welcome ReSharper Ultimate 10 RTM

We are here to let you know that the final release of ReSharper Ultimate 10 is now available for download!

ReSharper Ultimate 10

As described earlier, all ReSharper Ultimate family tools now share a common version number to simplify dealing with compatibility issues, so please welcome ReSharper 10, ReSharper C++ 10, dotTrace 10, dotCover 10, dotMemory 10 and dotPeek 10.

Watch this video for an overview of what is new in ReSharper Ultimate 10:

Here is a quick recap of what is new for each of the tools, if you prefer text.

ReSharper 10

In addition to around 450 fixes, highlights of ReSharper 10 include:

  • ReSharper Build is a new out-of-process incremental build tool that can take advantage of multiple processes, visualizes different kinds of project build status, and is optimized for large solutions with lots of dependencies. ReSharper Build
    Read this post for more details on ReSharper Build.
  • Built-in postfix templates. One of the most popular plugins gets integrated into mainline ReSharper. Postfix templates allow reducing backward caret jumps while typing C# code. For example, you can start with an expression and proceed to wrap it into an if statement to check whether it returns true. Another template allows you to throw an exception if certain condition is met. Postfix templates
  • Usage-aware Go to Declaration. ReSharper 10 extends the functionality of Go to declaration (as well as Ctrl+click) so that you can also use the shortcut to look up for usages. In case you have one declaration and one usage, you can use Go to declaration to simply switch between them. If you have multiple usage of a symbol, subsequent Go to declaration hits will take you to further found usages of the symbol, one usage at a time. Navigation between usages is aided by a Find Usages-like pane that enumerates found usages, contains additional controls to mouse-click between usages, and helps you flush all found usages to the regular Find Results window if you like. Usage-aware Go to declaration
  • Code style improvements. ReSharper 10 comes with a set of changes aimed to simplify configuration of and complying with code style settings. Inspection severity can now be configured right from the Alt+Enter menu, without using a modal window. Find similar issues window is now used only for searching in a custom scope. All default scopes, such as solution, project and file, can be applied right from the same old Alt+Enter menu. Additionally, there are new code inspections with quick-fixes that detect explicit or implicit access modifiers for types and type members, let you use a pre-configured order of modifiers, and help you join or separate attributes in a section.
  • Refined Stack Trace Explorer. Stack Trace Explorer was basically rewritten from scratch in ReSharper 10. This enabled Stack Trace Explorer to provide links to types in addition to methods and to parse more types of data, including WinDbg GCRoot dumps, Visual Studio Call Stack tool window contents and dotTrace snapshots.
  • NUnit 3.0 Beta 5 support. As the new major version of NUnit is approaching release, we have laid the groundwork to support it in ReSharper unit test runner. We will make more changes in order to support the release version of NUnit 3.0, though at this point the latest Beta 5 is supported.
  • JavaScript and TypeScript support improvements. Support for JSX syntax is now available in .js, .jsx and .tsx files to streamline React development in ASP.NET applications. Code completion, all ReSharper regular context actions for HTML and JavaScript, navigation to declarations and search for usages, as well as a couple of refactorings are available as well. JavaScript regular expressions that were originally supported in ReSharper 9.2 are now covered in more detail. TypeScript 1.6 support has been finalized with the addition of intersection types and class expressions. Moreover, code completion for JavaScript is now aware of types from JSDoc comments.
  • UWP device family-specific views. Universal Windows Platform enables using device family-specific XAML views to provide different UI for different types of devices. ReSharper 10 learns to handle this with dedicated code inspections, quick-fixes and context actions.Code inspections for UWP device family
  • Google Protocol Buffers (Protobuf). ReSharper 10 starts to provide support for .proto files. This includes syntax highlighting, code analysis, code completion and navigation for both 2.x and 3.0 Protobuf versions.

ReSharper C++ 10

ReSharper C++ 10 comes with 200+ fixes and a variety of enhancements:

  • Improved support for C language. ReSharper C++ 10 provides full support for C99, including designated initializers. C11 is supported to the same extent that Visual Studio supports it. Code completion and some context actions that are specific for C language are introduced with this release as well.Code completion for C in ReSharper C++
  • New context actions. There is a new action to create a derived class when standing on a class declaration. Other new context actions help replace decltype with the underlying type, as well as substitute a template type alias.
  • New code inspections and quick-fixes. We’ve introduced a new code inspection that detects whether a class needs a user defined constructor with a quick-fix to generate it. Another new code inspection detects uninitialized base class in a constructor and offers a quick-fix to initialize it. Additionally, we added quick-fixes for mismatched class tags highlighting, a quick-fix to add a template argument list and a quick-fix to make base function virtual.Make base function virtual quick-fix
  • ReSharper C++ 10 inherits the updated usage-aware Go to declaration mechanic from the mainline ReSharper. From now on you can use the single shortcut not only to switch from declaration to definition, but also to navigate through usages.
  • Code generation. ReSharper C++ 10 allows generating definitions for a function inline. We’ve also added support for generating Google Mock stubs for those who use Google Test framework.
  • Performance was one of our priorities for this release, and as a result ReSharper C++ 10 works significantly faster on solutions that had already been cached.

dotCover 10

The main highlight for dotCover 10 release is the long-awaited Continuous Testing functionality. Following an initial code coverage analysis of your solution, dotCover 10 learns to track your code changes, figure out which tests are affected by them, and then it can re-run the affected tests as soon as you hit Save, or use a different strategy of reacting to code changes.
Continuos testing session in dotCover 10

dotTrace 10

dotTrace integration in Visual Studio has been considerably improved with this update. With dotTrace 10 when you choose to profile your startup project from Visual Studio in Timeline mode, you can view the resulting snapshot right in Visual Studio, using the Performance Profiler tool window. You can select a particular time frame to investigate and drill into, make use of several filtering options, as well as export and save snapshots, all without leaving Visual Studio.
dotTrace 10 Timeline viewer in Visual Studio

dotMemory 10

dotMemory 10 introduces a new contextual option that lets you navigate from a type in an object set to its type declaration in an open Visual Studio instance. If the target type is a library type, this triggers ReSharper’s decompiling functionality and opens decompiled code in Visual Studio.
dotMemory 10 Find declaration in VS action

In addition, dotMemory receives a start view similar to dotTrace Home. The new dotMemory Home screen can be used as a starting point to memory profiling that lets you launch a new local or remote profiling session, attach to a running process, configure a profiling session and more.

dotPeek 10

dotPeek 10 delivers one of the most heavily requested features: you can now navigate to IL code from any point in the C# decompiled code viewer. IL code can be shown in a separate tool window or as comments to C# decompiled code.

IL viewer in dotPeek 10

Find Usages in dotPeek now works asynchronously, similarly to how it does in recent versions of ReSharper. This means that even if you started to look up for usages, you can still work with dotPeek without needing to wait until it finalizes the search.

In other news, dotPeek 10 supports color themes: you can now select one of 3 default themes, or choose to synchronize your color scheme preference with Visual Studio settings.


Get ReSharper Ultimate 10

Licensing and upgrade options

In terms of licensing and upgrades, some changes are introduced with this release:

  • ReSharper 10 is a free upgrade for you if you have a valid ReSharper upgrade subscription. ReSharper C++ 10 is free if you have a valid upgrade subscription to ReSharper C++.
  • In case your upgrade subscription expired, you can now subscribe to ReSharper, ReSharper C++, ReSharper Ultimate or All Products pack with a discount and get the second year of subscription for free. For details on how new subscription-based licensing works, please see JetBrains Toolbox.
  • Starting from November 2, 2015 dotTrace, dotCover and dotMemory are only licensed as part of ReSharper Ultimate. Read this post for details.
  • If you need a formal quote or any other assistance, you are welcome to contact JetBrains sales.
This entry was posted in How-To's and tagged , , , , , , . Bookmark the permalink.

67 Responses to Welcome ReSharper Ultimate 10 RTM

  1. Congrats to the whole teams for those great new releases!

  2. Rusty says:

    The test runner still doesn’t appear to support DNX projects. I was under the impression that support would be added to this release.

    http://blog.jetbrains.com/dotnet/2015/08/19/welcome-resharper-9-2-resharper-c-1-1-and-more-ultimate-updates/#comment-435731

  3. Dude says:

    Is it possible to disable postfix? I hate it.

  4. Dude says:

    Why isn’t my recently (few weeks ago) purchased 9.2 licence working???

    • Jura Gorohovsky says:

      Not sure. Requires identifying the license in order to give a firm answer. I suggest that you contact sales to investigate.
      Thanks

      • Dude says:

        What are the general rules? Could you please point me to 9.2 licence agreement free upgrades period section? Thank you!

        • Jura Gorohovsky says:

          There are no general rules: rules vary (at least used to vary) depending on license type. For example, until today a part of commercial licenses (per-major licenses as we call them) made you available for updates within a single major releases (9.x). If you have one of these licenses, not being able to use it with v10 makes sense. With other kinds of licenses this shouldn’t generally happen.

          That’s why I ask you to contact sales: this is not to make them push you into an upgrade but rather to help sort out why your license behaves like this. This could be a problem with your license or this could indicate a problem in ReSharper.

          Thanks

          • Dude says:

            Actually your sales FAQ section covers this (only minor updates are available to me most likely).

            I am OK with not getting new features but do not understand why there is no ReSharper 9.3 release which would include those 450 fixes as well. I think it would be an ethical thing to do.

            • Jura Gorohovsky says:

              Well we can only fix as many bugs as we can in the timespan of a single major version.
              We have 8K+ unresolved issues classified as bugs on the issue tracker. We surely distribute them among releases, major and minor, because there’s simply no way to verify and fix them all in one go.
              Hopefully with subscription licensing now in place, we can fix a bit more in any given release cycle.

            • I’d strongly recommend talking to the sales staff and point out you wanted to purchase the 10.0 license. JetBrains has always been a very reasonable company, I would be shocked if they would be unwilling to fix this mistiming.

  5. Rico says:

    Where can I upload extensions for R# 10?

  6. Richard says:

    Subscription license purchased on 19th October was “not found in the database”. Had to request an activation key to get R# 10 working.

    Not a smooth upgrade at all.

  7. Oleg says:

    Continuous testing, finally, thank you!
    Please make the code coverage highlighting less annoying, for example like in NCrunch.
    And I can’t build a project if the continuous testing is in the building state, is it as designed?

    • Sam says:

      I echo the statement re dotCover highlighting. The NCrunch style method of highlight which lines of code are tested keeps the code much more readable compared to dotcover.

      • Daria Dovzhikova says:

        Sam, you can customize code coverage highlighting to be less annoying via ReSharper | Options | dotCover | Highlighting

        • Sam says:

          I appreciate that I can change the highlighting colours. I would prefer that the line is not highlighted at all and there was a coloured dot at the start of the line indicating the coverage (as per NCrunch).

    • Daria Dovzhikova says:

      Oleg, thank you!
      Сode coverage highlighting can be configured to be less annoying in ReSharper | Options | dotCover | Highlighting
      As for inability to run building during the contnuous testing session, yes, that’s by design.

      • Oleg says:

        Daria, thank you for the reply.
        That’s sad, there is a chance that will be possible run the build and the continuous build at the same time?
        What about the highlighting, that’s exactly what I mean .

        • Daria Dovzhikova says:

          Thanks, Oleg, I’ve created an issue for the dotCover team (https://youtrack.jetbrains.com/issue/DCVR-7737) on alternative approaches to provide feedback from CT session to a user, please feel free to vote up and share you thoughts on the subject.

          As for running Build and continuos testing sessions simultaneously, I’m not sure that this can be implemented, but since I’m not be the best person to decide on this, I need some time to discuss this with the developer who’s doing ReSharper Build.

  8. Pingback: ReSharper Ultimate 10 RTM | OPC Diary

  9. Sakura Iris says:

    Hi, I want to know when Resharper will support ASP.NET 5 TagHelper Intellisence? By the way, the typing performance in the ASP.NET 5 projects is much lower than general projects. Please improve it as soon as possible.

  10. Tony says:

    Since I had some issues in R#9.2 regarding async/await in TypeScript 1.6 I was happy to see that R#10 was released with “full TS1.6 support”, but I still have issues with async/await, TS1.6 and R#.

    One issue I had already in 9.2 that still seems to be there is if I have an await without assigning the result to a variable R# wants me to introduce a variable, and if I let it do that it complains that the variable is not used and offers to remove the whole await, for example:


    async saveStuff() {
    await this.http.fetch("api/stuff", { method: "post", headers: this.defaultHeaders });
    //do some more stuff after save and resolve the promise once that's done.
    }

    Another issue that I run into with R#10 is regarding “Type assertion can be replaced with ‘as’ operator” which seems like a nice fix, but if I change this:


    async checkLogin(token: string) {
    const response = await this.http.fetch("api/Account/UserInfo", { headers: { "Authorization":
    Bearer ${token} } });
    return await response.json();
    }

    to this:

    async checkLogin(token: string) {
    const response = await this.http.fetch("api/Account/UserInfo", { headers: { "Authorization":
    Bearer ${token} } });
    return await response.json() as OauthCheck.UserInfoModel;
    }

    …then the whole await gets gray and says that “Value assigned is not used in any execution path” which seems very strange since I obviously are using the response.

    • Tony says:

      In my previous comment the type assertion in the second code block seems to have disappeared, but there was supposed to be a <OauthCheck.UserInfoModel> in front of the second await.

    • Anton Lobov says:

      Hi, Tony. Thanks a lot for your feedback! It would be much better if you report issues as soon as you experience them, because otherwise we cannot know about some of them. The first issue is indeed here since 9.2. Thanks a lot for reporting them now, both issues will be fixed for the next bugfix update.

      As a workaround for the first issue, you can disable the inspection “Expression statement is not assignment or call”.

      Thank you.

      Issues to monitor:
      https://youtrack.jetbrains.com/issue/RSRP-450337
      https://youtrack.jetbrains.com/issue/RSRP-450338

  11. Søren Reinke says:

    A shame you don’t take the time to make continuous testing nice before shipping it :(

    As it is at the moment, it’s to noisy, and way to slow. Compared to an excellent tool like NCrunch.

  12. Pingback: The Morning Brew - Chris Alcock » The Morning Brew #1960

  13. Urs Meili says:

    Is it possible to add my own postfix templates?

    • Daria Dovzhikova says:

      I don’t think it is possible at this point, what template are you missing in particular?

      • Urs Meili says:

        I use lots of Debug.Assert in my code and it would be great if I could write something like “y.Length>0.assert”

        • Alexander Shvedov says:

          Hi! Unfortunately, because varous people need various assertion APIs (like Debug.Assert, Trace.Assert, NUnit’s Assert.That and some other), we can’t easily define how .assert postfix template should behave in a general way.

          But you can easily solve this using SourceTemplates feature, allowing to define your own postfix-like templates: https://www.jetbrains.com/resharper/help/Source_Templates.html

          • Urs Meili says:

            This doesn’t quite allow me to do the same thing. For example, if I have the expression “x==5”, I can just add “.if” and it expands to “if(x==5)”. However, I cannot just add “.assert” (given that I previously added a SourceTemplate to my code) . Instead I first have to add parentheses around the expression, so the expression reads “(x==5)”, then I add “.assert” which gives me “Debug.Assert((x==5))” (note the unrequired double parenthesis).

  14. Pingback: JetBrains Toolbox geht offiziell an den Start

  15. Pingback: Dew Dump – November 3, 2015 (#2125) | Morning Dew

  16. Jirka says:

    Implement continuous testing is killer feature, must have for modern style of development. This release really shows how JetBrains listens to customers providing really powerfull productivity tools.

  17. Congrats on this new release, its awesome, as usual!

    I have an issue, though; almost every time I upgrade ReSharper, I lose the “xUnit.net Test Support” extension, and I can’t reinstall it because it doesn’t appear in the extension manager… What can I do to “force” the install? It says it supports R# 8.2 to 8.3, but it was working in 9.x before I upgraded to R# 10.

    • Daria Dovzhikova says:

      Thank you, Thomas!

      Yes, xUnit support is currently provided via a separate plugin that needs to be updated to be compatible with the latest ReSharper release. Usually it takes 1-2 weeks for it to appear in the Extension manager.

    • Daria Dovzhikova says:

      The xUnit plugin has been updated today, so please check ReSharper Extension Manager, it should be there.

  18. Daniel says:

    Is this version able to load extensions compiled for previous versions?
    Although I had several extensions loaded in 9.2, now I don’t have any extension whatsoever.

    • Daria Dovzhikova says:

      Daniel,

      Extensions need to be ported to v10 in order to be compatible with the release. Usually it takes from one to several weeks for them to be updated.

  19. Draupnir Gudmundsson says:

    Many features look promising but the TestRunner has too many bugs.
    This version is not RTM. It needs more bug fixing.
    I recently upgraded VS2013 -> VS2015 and R#8.2 -> R# 9.2 and found bugs in the TestRunner. JetBrins suggested to test R# 10 EAP as I did and some bugs were fixed and new bugs introduced.

    The TestRunner worked fine in R# 8 but now I have to use many workarounds to get basic test run and results from that run or add test to test session.

    I’m very disappointed that functionality that was fine is now broken.

    Is there any ETA for fixes for the TestRunner?

    • Daria Dovzhikova says:

      Hello Draupnir,

      We are planning to publish the bugfix update targeting the issues discovered in Unit Testing next week or two. Apologies for the inconvenience.

  20. Anton Herzog says:

    Hi there,

    I have a serious Issue with the xunit support. The test output is not shown in the session window of resharper. This way the tests get nearly useless.

    Please help…

    • Jura Gorohovsky says:

      Anton, looks like there’s an issue with unit test output in v10 regardless of which framework is used. This is already fixed, and the fix is going to be available in a bugfix update that we expect to roll out next week.

      Apologies for causing you trouble.

  21. Oddbjørn says:

    Hi.

    Where is the “projects should be NEVER built” configuration stored in ReSharper Build?
    I want to be able to check and/or change this with scripting.

    Expanding the tree here could also be quite slow… like a minute on some nodes.

  22. Matt says:

    Why is this LiveTemplate bug still in there? Why does R# IntelliSense still remove the good stuff of VS IntelliSense.
    There are so many good features, but missing/broken basic features make it hard for me to use and probably I won’t buy an upgrade. It’s getting very bloated :(

    • Jura Gorohovsky says:

      Exactly what kind of bug are you referring to, Matt?

      Also, putting a “bloated” label doesn’t quite help us understand what problems you’re facing. You might want to elaborate.

  23. Etienne Maheu says:

    Any new on an early 10.0.1 update?

    I’m currently struggling with https://youtrack.jetbrains.com/issue/RSRP-449577 which has been reported nearly a month ago and got classified as a show stopper.

  24. Anton Herzog says:

    Hi again,

    Why is the xunit testrunner depending on xunit v. 2.0+ all of the sudden.
    Last week it worked fine with R# 10 and now it’s breaking all the test when xunit 1.9.2 is used. Another showstopper…

    • Matt Ellis says:

      Hi. The xunit test runner has been using xunit2 since ReSharper 9, and is backwards compatible with projects that use xunit 1. Part of my test suite includes tests from both xunit 1 and xunit 2, so it still works fine. What’s the issue that you’re seeing?

      • Anton Herzog says:

        It seems to work now. There was a error-message saying that version 2+ of xunit was needed. After a reboot it worked.

        The whole continuous testing story doesn’t seem production ready still. It misses needed rebuilds sometimes.

        • Matt Ellis says:

          Hi Anton. Glad it’s working again. There’s possibly an issue with the xunit integration – I have a repro that I’m investigating with the dev team now. It might be worth tracking that issue, and adding any other details you have.

  25. Pingback: Les liens de la semaine – Édition #157 | French Coding

  26. Rasmus Halland says:

    Congratulations on the release.
    However, it hangs many times a day, so we’ve gone back to v9. Looking forward to a solid release.

  27. Dmitry says:

    Hi, developers!
    Plugin support did removed in dotPeek 10? If not, give me please link where I can read some information about plugin development.
    Thanx!

Leave a Reply

Your email address will not be published. Required fields are marked *