Rider 2021.3: Support for .NET 6 SDK, Redesigned Main Toolbar and Debug Tab, and New Problems View Tab
Read this post in other languages:
We’ve just released Rider 2021.3, our last major version for this year. Let’s take a look at the exciting features it brings.
Support for .NET 6, including Hot Reload
Now you can enjoy official support for .NET 6 SDK in Rider. It includes project templates, the latest target frameworks, the latest NuGet API, Blazor WebAssembly debugging, creating/running/debugging projects targeting the new SDK, ASP.NET scaffolding for .NET 6 projects, and Hot Reload. In our previous blog posts, we covered how you can work with Hot Reload in Rider if you are targeting .NET 6 and how it actually works.
Redesigned main toolbar with a new Run/Debug widget
We’ve completely redesigned the main toolbar. The old main toolbar had problems that we wanted to eliminate:
- There were too many icons, most of which were hardly ever used.
- The VCS and the navigation functionality were not discoverable.
- It was not possible to control multiple run configurations.
With the new design, we’ve tried to give our users a cleaner, more functional toolbar. It includes a new Run/Debug widget, navigation buttons, a VCS widget, a large Search Everywhere field, a Solution Configuration widget for managing solution-related configurations, and more. You can learn about the revamped main toolbar and how to use its features in this blog post.
Note: if you had Rider installed before this release, you won’t see the new toolbar by default, as we didn’t want to disrupt your user experience. You can give the new toolbar a try by enabling it under View | Appearance | Toolbar.
Updated debugging experience
A new UI has come to the Debug tool window! Now it has three tabs: Threads & Variables, Console, and Debug Output. We removed the toolbar on the left and transferred the icons to either the top toolbar or the context menu.
We also have good news for UWP developers: you can now start your UWP project with the debugger attached. You no longer need to run the project first and then manually attach the debugger to the running process.
Another big update is that you can now debug both .NET (Core) and .NET Framework apps in local Windows Docker containers. You can read more about these changes in our blog post.
New Problems View tool window
We’ve introduced the Problems View tool window (the Problems tab in the Rider UI) to give you an easy way to see warnings and errors for the current file, or whole solution, and problems with missing tooling and broken environment configurations.
The tool window has three tabs:
- Current file – all of the errors, warnings, suggestions, and hints that Rider code analysis found in the file you are currently working on
- Toolset, Environment – all of the diagnostics and messages related to the solution load activities, NuGet restore processes, and so on
- All Solution Files – all the errors that Solution Wide Error Analysis found in the whole solution.
Learn more about how you can use the Problems View in this blog post.
Updates to code analysis
More C# 10 features
Rider continues to add more C# 10 features. In this release, we’ve added support for file-scoped namespaces, global usings, the
CallerArgumentExpression attribute, the “interpolated string handlers” concept, and C# 10 lambdas. You can learn how Rider can make it easy to adopt them in your codebase in our series about the new C# 10 features.
Nullable reference types
Rider has two new quick-fixes, Replace with JetBrains.Annotations attributes and Remove nullable annotations without ‘#nullable’ context. These help you get rid of NRT syntax when you copy code samples from other resources but don’t have NRT enabled in your solution. There are also new quick-fixes for mismatches between type arguments and their nullability constraints, as well as for correcting annotations on parameters with nullable default values in a file, project, or whole solution.
Improved support for SQL language injections
We now support many common cases where you write SQL code right inside of C# code. For instance, SQL query strings are correctly resolved for
string.Format methods, string interpolations, and simple string concatenations.
Updates for Unity
This release brings major updates to Rider’s support for Assembly Definition Files:
- You can use Ctrl+Click to navigate to a reference; find usages of assembly definitions across the whole project, even in referenced packages; rename assembly definitions; and get completion when adding new references.
- Rider will work with GUID based references, displaying a helpful hint with the target assembly definition’s name and Alt+Enter actions to convert between named and GUID-based references.
- Rider will now highlight unmet “define constraints” in Assembly Definition Files. This makes it easy to see why an assembly has been excluded.
- Setting up version defines has also gotten easier, with completion for package names and an inlay hint for the currently installed version.
Other highlights include:
- Support for Apple silicon processors: no more x64 to ARM64 translation! Rider is now much faster on Apple chips.
- Xamarin: in the Plist editor, we’ve implemented support for standard Xcode schemes. They help Rider provide understandable names for keys, value validation according to key type, and a list of possible keys when you add a new one to the Plist. These work on both macOS and Windows.
- The XAML Preview now works for applications that target the .NET 6, .NET 5, and .NET Core 3.x SDKs. You can preview the results of any change you make in XAML code directly in Rider.
- Rider can generate Binding Redirects for NuGet packages in .NET Framework projects. If Binding Redirects are needed in your project, Rider will add them to the App.config or Web.config file.
- Rider now officially supports F# 6. There are powerful updates for the Introduce Variable refactoring, and using F# functions recursively is now easier, as you don’t have to go back and manually add
recto the containing function.
- We’ve introduced the Reformat and Cleanup on Save setting. This feature allows you to reformat and tidy up whenever you explicitly invoke Save or Save All in the IDE. We hope it helps you keep your code nice and neat and saves you the trouble doing it manually.
- We’ve introduced the new Bookmarks tool window that will replace a similar instance – Favorites.
For more information, please visit the What’s New in Rider 2021.3 page.
We’ve received lots of questions about when we’ll be adding support for Remote Development in Rider. We are working hard to get this ready for the next release, Rider 2022.1. If you want to stay updated about the progress of this, please follow this issue.