.NET Tools News Releases Rider

Rider 2022.2 Comes With More C# 11 Features,  Performance Improvements, and Extended Unreal Engine Support

Hello everyone,

The latest major version of Rider is finally here! Let’s take a look at the exciting features Rider 2022.2 has in store.

You can download the 2022.2 release build from www.jetbrains.com, install it via the Toolbox App, or use this snap package from the SnapCraft store (if you are using a compatible Linux distro).

Performance improvements

A significant portion of the work during this release cycle was focused on various performance improvements, particularly the optimization of the startup process and the solution-wide engine. 

For version 2022.2, we’ve migrated Rider’s Windows backend to the .NET 6 runtime. The move boosted performance by leveraging this runtime’s own optimizations and enabled us to replace NGen with the CrossGen utility. CrossGen works with the .NET 6 runtime and is cross-platform, which helps Rider start up and open solutions faster. 

We’ve also optimized the initial project-loading stage. Solutions now load approximately 40% faster when you open them in Rider for the very first time (a process known as “cold startup”). 

Rider’s memory usage with Solution-Wide Analysis mode turned on has been radically optimized. The improvements affect both memory traffic (number of memory allocations) and memory consumption, resulting in a 5-10x memory consumption improvement and faster Solution-Wide Analysis loading.

C# 11 features

With our latest release we’re continuing to expand Rider’s support for the C#11 preview, starting with recognizing required members. 

Rider is now aware of the required keyword for members inside a class, struct, or record type, and is able to provide additional support for the required keyword. There’s a required keyword in code completion, a required modifier in the “Modifiers order”, as well as all relevant compiler errors and warnings.

Support for checked user-defined operators is another C#11 feature that made it into this release.  We’ve added relevant compiler errors and warnings and introduced a couple of new inspections and a context action. Rider’s “Unchecked/checked context is redundant” inspection has been updated to take into account checked operators when they are used in this context.

If you have a set of user-defined operators and some of them already have a checked version, Rider will help you propagate checked operators to the whole set. If you haven’t used checked operators in your codebase yet, but want to start adding them, a new context action called “Create matching checked operator” will help you with that. 

Rider 2022.2 also has basic “raw” string support including compiler errors and correct parsing and color highlighting for “”” syntax, pairs of double quotes, and placeholders inside interpolated strings ({{...}} syntax).

You can find the full overview of newly implemented C#11 features release of Rider here

Unreal Engine support

Rider has been deeply integrated with Unreal Engine since the 2022.1 release. This time around, we’re bringing out a whole new set of features to enhance your game development experience: new actions, symbol servers, support for spec tests, and UX/UI improvements. 

When you create a new module with game logic, there’s a long list of steps you need to take: add a folder, add a Build.cs file into this folder, create a class that initializes the module, and update the .uproject and Target.cs files. Rider can now automate these tasks for you with the new Add | New Unreal Module… action available in the solution view via a context menu. 

Another action that will help you streamline your work is Add | New Unreal Plugin. It enables you to create different types of plugins right from Rider by generating all the necessary files in one go. Learn how easy it is to create a new Unreal plugin in this blog article. 

When debugging, the library symbols may not always be available on your local machine. In this case, you can use symbol servers. In Rider on Windows, you can now configure the debugger to use the symbol server of your choice.

Early preview of MAUI support

Rider 2022.2 contains an early preview of our .NET Multi-platform App UI (.NET MAUI) support. In this release we support projects that target the Android and iOS platforms. You can use run configurations to run and debug your project as well as to deploy your application to a target device. 

macOS, Mac Catalyst, Blazor Hybrid, and WinUI aren’t fully supported yet.

Default settings for window layout

When you’re working on more than one solution in Rider, setting up your workspace all over again for each new project can be a hassle. That’s why we’ve implemented a way to apply the same window layout settings to all of the solutions you work on.

For example, if you move a tool window to the right, that’s where it will be for all of your solutions. This behavior will be the default if you’re new to Rider. Otherwise, you can enable it in the main menu by selecting Windows | Layout Settings | Use the Same Layout for All Projects.

Other release highlights:

  • A new toolbar is available for Unity projects, and the connection status is now shown in the toolbar instead of the status bar. 
  • It’s now possible to change the width of the Run/Debug widget on the main toolbar. 
  • For macOS, we’ve introduced the ability to organize your working space by merging all opened project windows into one, turning each window into its own tab. 
  • Solution Explorer has been reworked to include the Safe Delete refactoring on the project level as well as better support for solution filters. 
  • Rider now comes with dotMemory, our memory profiling tool, built in. Check out this blog article to learn more.
  • We’ve added a coverage summary indicator to the editor to make it easier for you to navigate through the highlighting produced by the dotCover plugin.
  • dotTrace profiler can now attach to and detach from running Unity processes – no need to restart the Unity Editor.
  • We’ve extended support for Vue3 and Angular standalone components, directives, and pipes marked as standalone: true. 
  • Starting with v2022.2, the Parameter Info popup for F# supports curried applications and highlights the correct method overloads.
  • We’ve introduced two new database object resolution modes: Playground and Script. You can find more information on the differences between the two in this blog article.

For more information about all these and tons of other features, please visit the What’s New in Rider 2022.2 page. You may also want to review the full list of requests we’ve addressed this release cycle in our public bug tracker.

image description