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!
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!
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
- 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
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.
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:
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
While/… – when pressing Enter, Rider automatically adds a corresponding
End … statement.
We also added automatic templates for properties and custom events that are triggered 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.
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 , 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.
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.
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!).
— Kirill Skrygan (@kskrygan) July 7, 2017
.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.
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:
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.
Download Rider Release Candidate (RC) and give it a try! We would love to hear your feedback through the comments below!
Subscribe to Blog updates
Thanks, we've got you!
Another Look into the Future with Rider’s Predictive Debugger
In the 2023.2 release cycle, we’ve introduced the Predictive Debugger in ReSharper, which gives you predictions about code paths and variables beyond the current execution pointer. We’ve written extensively about its advantages compared to alternative debugging strategies like thorough thinking, log…
Visualize Entity Framework Relationships and Additional Query Analysis in ReSharper 2023.3
A lot of teams are using Entity Framework or EF Core to work with their database. As an Object-Relational Mapper (ORM), it bridges objects in code to a relational database model, so that as a developer you don’t have to worry too much about the actual database. We all know: that’s not entirely tr…
Automatically Analyze ASP.NET Core Performance With Dynamic Program Analysis
Slow web pages may make your users or customers abandon your web application, even before they’ve had a proper look at it. You’ve likely also been frustrated working with a web application that is slow to load. The good news is that the latest versions of ReSharper and JetBrains Rider’s Dynamic P…
OSS Power-Ups: MassTransit – Webinar Recording
The recording of our webinar, OSS Power-Ups: MassTransit, with Chris Patterson, is available. This was the thirteenth episode of our OSS Power-Ups series, where we put a spotlight on open-source .NET projects. Subscribe to our community newsletter to receive notifications about future webinars.…