Rider Release Candidate: performance, refactorings, Unity and more!

Good news, everyone! GREAT news everyone! The Rider Release Candidate (RC) build is now available for download! 

Download Rider 2017.1 RC

With this Release Candidate, we’re taking a big step towards Rider’s first release, we’re almost there. The RC is a release configuration build, which means you shouldn’t be seeing any exception collection/reporting activity in the status bar (although exceptions, if any, will still be logged for support purposes.)

In terms of functionality, we’ve improved performance, refactorings and Unity support, enabled more WebStorm features, worked on the debugger, added VB.NET typing assists, implemented NuGet private feed authentication and fixed several bugs. Let’s have a look!

Performance improvements

A lot of work for this release candidate build went into performance improvements across the board. Most notably:

  • Improved startup performance on Windows. Regardless of the solution size, Rider should start roughly 5-10 seconds faster.
  • F# editor performance improvements. Due to some race conditions between parsing and analyzing code, there were some short (but noticeable) freezes which should now be gone.
  • We optimized NuGet restore in several ways:
    • For .NET Core, we used to run restore on every solution load, even when there were no changes. We now run NuGet restore only when needed.
    • Rider now tries the local cache first when restoring packages, similar to what dotnet restore  does.
    • When changing the project toolset, Rider now runs a NuGet restore to make sure the correct dependencies are downloaded and referenced.
  • We removed unnecessary calls to our code formatter, making editing and refactoring snappier.
  • Solution-wide analysis no longer runs when opening files that are not part of a project (e.g. when making a quick change in a .config file)

All of these changes make for a smoother experience developing applications with Rider!

NuGet private feed authentication support

Many teams make use of their own in-house or externally hosted NuGet repository, typically containing packages that can only be used inside the development teams. While Rider already supported adding private feeds, it lacked the ability to specify credentials to connect to such feed. Until now – we’ve added initial support for feed authentication!

From the NuGet tool window under the Sources tab, we can edit or add a feed and provide a username and password to connect to it.

NuGet Private Feed and Authentication support

Credentials are stored in Rider’s password store which is based on KeePass. It’s perfectly possible to use an existing KeePass database, or open the Rider password store with the KeePass password manager.

Debugger supports generics, extension methods

We made some more debugger improvements. Before, it was impossible to evaluate expressions that would use generic or extension methods. With this Release Candidate build, we added the ability to evaluate expressions like list.FirstOrDefault() in debugger watches or when evaluating expressions:

Debugger - evaluate expression

Note that this currently only works for .NET and .NET Core, we’re working on Mono support as well.

Visual Basic typing assistance

While on this blog we often talk about C#, Rider has VB.NET support as well. We have added some typing assistance when writing a Sub/Function/Class/While/… – when pressing Enter, Rider automatically adds a corresponding End … statement.

vbnet-enter-preview

We also added automatic templates for properties and custom events that are triggered on Enter:

VB.NET - Complete EventHandler with template on enter

Unity and ShaderLab

In the Unity department, we have added ShaderLab syntax highlighting and error analysis. Initial code completion support, TODO comments, commenting/uncommenting keyboard shortcuts and code folding support were added, too.

Unity - ShaderLab support

Refactoring

A new refactoring was introduced to Rider: Extract Members to Partial. Imagine having a class with a few members and all equality members etc. When developing business logic, we may want to “hide” away these methods into regions Trollface, or into a partial class.

Using Refactor This… (Ctrl+Alt+R in the Visual Studio keymap), we can select the members we want to move into a partial class, and have Rider create a new file for it.

Refactor - Extract members to partial

For Move to Folder (and the newly introduced Extract Members to Partial), we improved path completion support in the refactoring dialog, supporting both forward and backward slashes in paths.

Forward and backward slashes supported in refactorings

Rename support for languages with mixed ReSharper/IntelliJ IDEA features was improved. For example for JavaScript and TypeScript, Rider now merges Rename functionality from both IDE’s – using ReSharper’s rename when available, IntelliJ IDEA’s rename otherwise.

Web development features from WebStorm

Rider is the best of ReSharper and the best of IntelliJ IDEA and WebStorm, combined. Apart from some inconsistencies in settings and code completion that have mostly been ironed out over the course of EAP, we have done a great job in combining features from the two.

A good example would be editing Web.config files. Rider provides navigation to both referenced XSDs (thanks, IntelliJ IDEA!) and .NET types (thanks, ReSharper and dotPeek!).

However it’s not always possible to combine both worlds easily. For JavaScript, TypeScript, CSS and HTML, combining features is a daunting task, since both ReSharper and WebStorm have a lot of similar features. We took another look at our web stack and found that for these languages, sticking to only WebStorm features provides the best functionality for web development with Rider.

More improvements

In .config and MSBuild files, we improved navigation support. Using Ctrl+Click, we can now possible to navigate to the XSD schema, an external URL, or a type – whether in the current solution or in the decompiler.

Navigation in config files and MSBuild

Have a complex file? Not interested in running and displaying all inspections for that file? Rider now provides per-file access to the underlying engine and lets us configure the highlighting level:

Select level of syntax highlighting/code analysis per file

Last but not least: when running an application from Rider, we’d typically show all console output in a tool window in the IDE. When editing the Run/Debug configuration, it is now possible to always run using an external console.

Run/Debug Configuration - Use external console

Download Rider Release Candidate (RC) and give it a try! We would love to hear your feedback through the comments below!

This entry was posted in How-To's and tagged , , , , , , , . Bookmark the permalink.

51 Responses to Rider Release Candidate: performance, refactorings, Unity and more!

  1. Mark says:

    Does it support .NET Core 2.0 Preview?

  2. Congratulations on the RC! Given the amount of change that’s gone on in the .NET Core world you guys/girls have done an amazing job with Rider.

  3. Pingback: Dew Drop - July 14, 2017 (#2520) - Morning Dew

  4. ifle says:

    If I understand correctly Resharper’s plugins is not available for typescript and javascript

    • Maarten Balliauw says:

      That is correct, however JS/TS plugins for WebStorm/IntelliJ IDEA will work -> https://plugins.jetbrains.com

      • uptownjimmy says:

        WebStorm is an amazing tool for Angular4/TypeScript apps. Watching it refactor import declarations on the fly as you move files into another directory is just wonderful.

        I’m so happy to pay JetBrains good money for their amazing products. My life as a developer is greatly enhanced by the work of this team.

  5. Paul Reid says:

    Great job guys! Really looking forward to the final release!

    One question though, will the fixes for connecting to Azure databases that are in the DataGrip EAP make their way into the final Rider release? Currently connecting to Azure databases doesn’t work in Rider and we have to resort to SQL Server Management Studio/Visual Studio :(

    • Maarten Balliauw says:

      Strange, I can connect to Azure SQL Database without any issue. Which driver are you using? What issue are you seeing?

      • Paul Reid says:

        The schema browser can’t load up the objects in a database, I receive the following message: “Reference to database and/or server name in ‘Auth.sys.schemas’ is not supported in this version of SQL Server.”

        This also happens with the current DataGrip release, but using the new Azure driver in the EAP resolves the issue for me.

    • uptownjimmy says:

      I have no trouble using DataGrip and Rider to connect to Azure db’s, fwiw.

      So superior to SSMS, in every way. Thank goodness for real search functionality, without plugins.

  6. Kirill Rakhman says:

    Great job guys! Looking forward to 1.0.

    A bit bummed out that https://youtrack.jetbrains.com/issue/RIDER-507 was scheduled for 2017.2 as it’s a really frequent annoyance in my day-to-day coding.

    • Jura Gorohovsky says:

      Kirill, we might be able to include the fix in the initial release, but if not, look for the ensuing bugfix release.

  7. Grigory says:

    Hi, thank you for great news.
    Are there any plans for NUnit tests supporting for .NET Core.
    As I can see, it is impossible to run them in Rider.

    • Jura Gorohovsky says:

      NUnit tests in .NET Core will be supported in Rider 2017.2 (they’re already supported in ReSharper 2017.2 EAP but we’ll need to merge these changes in later)

  8. Bartłomiej Pulczyński says:

    Will it be availble as a Community Edition as well? Or will it have 30 days trial? 😀

    • Jura Gorohovsky says:

      No Community Edition is planned so far. A 30-day trial will be definitely provided. For an overview of pricing and licensing, as well as complimentary options, see this blog post

  9. Dmitry says:

    Will Rider RC work without mono on macOS?

    • Jura Gorohovsky says:

      Rider bundles Mono for its own purposes, and if this is what you’re asking, then the answer is no, Rider will not work without Mono.

      If the question is whether you need to install Mono separately in order to develop your applications on Mac, then you can skip installing Mono if you’re developing .NET Core applications; otherwise you’ll still need to install Mono.

  10. Pingback: Rider Release Candidate: performance, refactorings, Unity and more! - How to Code .NET

  11. Fernando Mayorga says:

    Very exciting news! We have been using Rider since the first EAP, looking forward for the first production release, please keep them coming.

    Question: we see super slow performance when debugging ASP. NET core with ServiceStack on a large project serving REST api requests only, any updates on performance on the debugger? This happens on macOS.

    We can provide more info if interested.

    Thanks again!

    • Fernando Mayorga says:

      Please ignore my previous comment, the new Rider RC1 has much more faster debugger for ASP.NET projects!

  12. Pingback: Rider 2017.1 Release Candidate verfügbar – entwickler.de

  13. lee says:

    So I am using unity and visual studio 2015. Rider is more good than this? At what factors?

  14. Christian Hüning says:

    Awesome news!

    We developed a Plugin for Rider 6 month ago, which just stopped working with the RC 1 version. Did you by chance change anything regarding the Plugin API?

    We get a ‘PluginManager$StartupAbortedException’ when trying to load a Solution. Our Plugin added specific “Create” Options for the framework we’re developing.

    Best,
    Christian

    • Matt Ellis says:

      A lot has changed in the last 6 months, it’s hard to say what’s gone wrong here without knowing some more details. Could you log an issue in YouTrack, please? You can assign it to me, and please leave as many details as you can, especially about how you’re building and running the plugin. Even better, if you can point me to a download or a source repo, that would help a lot.

  15. Jonathan says:

    One feature I use in Visual Studio quite often, is right click on a web project, and publish to server.
    I cannot find a similar option in Rider, so what I have done is, create a run configuration.

    When you plan to prepare support for “Publish Web Site” from Rider directly to server? Or maybe the above solution will be the only one?

    • Maarten Balliauw says:

      Thanks for your feedback!

      This is one we are considering for a next release after Rider 2017.1 ships.

  16. Pingback: SDN Cast 59 – Releases, Releases, Releases | Maarten van Stam - Soft As In Software :-)

  17. Lee says:

    Would love to see StyleCop have made it in the builds by this point. Is there an eta for it?

  18. Tilo Probst says:

    Unity 2017.1 was recently released. The feature list says that Rider is now supported as an external editor. Does that mean that Unity+Rider is production ready now? On macOS that is. Basic functionality maybe, but not the “fancy stuff”?

    • Maarten Balliauw says:

      Rider 2017.1 release will happen soon (we’ve just made the release candidate available). It’s definitely ready to do serious development in, Rider now comes with the Unity plugin bundled and provides a lot of features for Unity C# development, ShaderLab files (as seen in this post), and more. The Unity plugin is under active development and wil get better, so depending on the “fancy stuff” needed I’d say give it a try and if things are missing, let us know! (plugin issue tracker at https://github.com/JetBrains/resharper-unity/issues)

  19. Pingback: .NET дайджест #18: улучшения производительности в .NET, будущее .NET и статистика использования C# - LIKELY.CLUB

  20. Darko Aleksic says:

    NuGet package manager does not seem to work with the VSO’s credential manager (personalized access token).

    Is this going to be worked on? Let me know if you need more details.

  21. Yasu says:

    Any plan for Xamarin.Forms project template to be added to the projects?

  22. George Cook says:

    Awesome work guys; especially the performance improvements.

    I have a question : any plans for an interactive window, like visual studio. I’m installing VS2017 right now, just for that one feature, which will help me debug Unity3d games.

    If you guys had that, then Rider would be the ultimate Unity3d IDE, imho.

  23. Manuel Torrez says:

    Awesome! I can’t wait for the final release, I hope it’ll be great on linux (I haven’t tested yet)

Leave a Reply

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