JetBrains Rider vs Visual Studio
(with and without ReSharper)
The goal of this document is to illustrate some points where JetBrains Rider — a standalone .NET IDE — differs from Microsoft Visual Studio, with and without JetBrains ReSharper extension.
As the compared products are being actively developed and their functionality changes on a regular basis, we consider this comparison valid for specific releases that are indicated in the header of the comparison table.
If you discover any missing or inaccurate items in this table, please post a comment below to let us know, and we'll update the table as soon as possible.
Microsoft Visual Studio 2022 17.1
|
Microsoft Visual Studio 2022 17.1
+ ReSharper 2022.1
|
JetBrains Rider 2022.1
|
---|
General |
Works for .NET and Front-end code | Works for .NET and Front-end code | Works for .NET and Front-end code |
Works for C/C++ code | Works for C/C++ code | Works for C/C++ code | |
Runs on Windows | Runs on Windows | Runs on Windows, macOS, and Linux | |
64-bit process | 64-bit process | 64-bit process | |
Integrated VCS client |
Support for Git and Azure DevOps | Support for Git and Azure DevOps | Support for Git, Azure DevOps, Mercurial, Perforce, SVN |
Visual diff and merge | Visual diff and merge | Visual diff and merge | |
Repo history view with filtering by substring | Repo history view with filtering by substring | Repo history view with filtering by substring, branches, users, dates, paths | |
History view for a file | History view for a file | History view for a file or a text selection | |
No matching functionality | No matching functionality | Visualize, compare, and revert changes right in the editor | |
No matching functionality | No matching functionality | Pre-commit checks and cleanup | |
No matching functionality | No matching functionality | Ability to abort Git merge and cherry-pick processes | |
No matching functionality | No matching functionality | Multiple repositories in one project | |
No matching functionality | No matching functionality | GitHub pull requests view | |
Dealing with code issues |
On-the-fly design-time code analysis for C#, F#, VB.NET, XAML | On-the-fly design-time code analysis for all supported languages (including ASP.NET, XAML, JavaScript, TypeScript, HTML and more) | On-the-fly design-time code analysis for all supported languages (including ASP.NET, XAML, JavaScript, TypeScript, SASS, LESS, HTML, SQL, XSLT, YAML, and more) |
800+ code analysis rules | 1500+ configurable code inspections | 1600+ configurable code inspections | |
Design-time error highlighting: Compiler errors for C#, VB.NET, JavaScript, TypeScript and C++ | Design-time error highlighting: most compiler errors, many possible runtime errors (such as detection of possible null reference exceptions) for all supported languages | Design-time error highlighting: most compiler errors, many possible runtime errors (such as detection of possible null reference exceptions) for all supported languages | |
400+ kinds of code issues that can be fixed automatically | 1900+ kinds of code issues that can be fixed automatically | 2000+ kinds of code issues that can be fixed automatically | |
Roslyn analyzers support | Roslyn analyzers support | Roslyn analyzers support, also in solution-wide error/warning monitor | |
250+ quick actions to resolve code issues in C# and VB.NET | 1300+ quick-fixes to resolve code issues in C#, VB.NET, ASP.NET, XAML, XML, JavaScript, TypeScript, and other supported languages | 1500+ quick-fixes to resolve code issues in C#, C++, VB.NET, ASP.NET, XAML, XML, JavaScript, TypeScript, SQL and other supported languages | |
Full solution analysis for C# and VB.NET | Solution-wide error/warning monitor for all supported languages | Solution-wide error/warning monitor for all supported languages | |
Suggest usings for types in installed NuGet packages | A quick-fix that finds unresolved symbols and namespaces on nuget.org | A quick-fix that finds unresolved symbols and namespaces on nuget.org | |
Integrated ESLint support | Integrated JSLint, ESLint, and TSLint support | Integrated JSLint, ESLint, JSHint, JSCS, and Closure Linter support | |
Document Health Indicator | File status indicator | File status indicator | |
Code annotations for nullability analysis | Code annotations help analyze solution with greater accuracy (nullability, contracts, etc.) | Code annotations help analyze solution with greater accuracy (nullability, contracts, etc.) | |
Inline display of error messages | No matching functionality | No matching functionality | |
No matching functionality | No matching functionality | Files with errors are highlighted on editor tabs and in the Solution Explorer | |
No matching functionality | Reporting all errors and code quality issues in any scope, up to the entire solution | Reporting all errors and code quality issues in any scope, up to the entire solution | |
No matching functionality | Analysis of code inside string literals, tags and attributes | Analysis of code inside string literals, tags and attributes, and SQL queries in C# and other languages. | |
No matching functionality | Custom code inspections and fixes with structural search and replace patterns | No matching functionality | |
Code exploration |
Call hierarchy | Call hierarchy | Call hierarchy |
Track Value Source | Value tracking to analyze value origins and destinations | Value tracking to analyze value origins and destinations | |
Dependency graph | Project Dependency Diagram, Assembly Dependency Diagram, and Type Dependency Diagram that display without compiling anything | Project Dependency Diagram | |
No matching functionality | Analyze/optimize unused references and NuGet packages | No matching functionality | |
Map mode with preview for vertical scroll bar | Map mode with preview for vertical scroll bar | Code Lens (hover over editor scrollbar to preview file text outside of the visible area) | |
CodeLens (symbol info on declaration) | CodeLens (symbol info on declaration) | Code Vision (symbol info on declaration) | |
Peek definition | Enhanced peek definition | Peek definition in a popup view | |
Syntax highlighting | Syntax highlighting (different configurable colors for more identifier kinds) | Syntax highlighting (different configurable colors for more identifier kinds) | |
Highlight references | Highlight usages (read and write with different colors) | Highlight usages (read and write with different colors) | |
Gutter icons for implemented and inherited symbols | Gutter icons for implemented, inherited, and hiding symbols | Gutter icons for implemented, inherited, and hiding symbols | |
File members in Solution Explorer | File members in Solution Explorer | No matching functionality | |
File members selectors at the top of the editor | File members selectors at the top of the editor | No matching functionality | |
File structure (only for WinForms, XAML, HTML) | File structure | File structure | |
Task List window | To-do explorer with configurable patterns | To-do explorer with configurable patterns | |
No matching functionality | Hierarchy views for projects, project references, types, CSS styles | Hierarchy view for types | |
Refactoring |
15 solution-wide refactorings | 58 solution-wide refactorings | 58 solution-wide refactorings |
120+ local refactorings (automated local code transformations) | 470+ context actions (automated local code transformations) | 520+ context actions (automated code transformations) | |
Project-level cleanup refactoring: Sync Namespaces | Project-level cleanup refactorings: Adjust Namespaces, Move Types into Matching Files, and Remove Unused References. | Project-level cleanup refactorings: Adjust Namespaces and Move Types into Matching Files. | |
No matching functionality | Structural replace for same or similar code | No matching functionality | |
Code generation |
Create from usage | Create from usage | Create from usage |
Generate code from code snippets (templates) | Generate code from configurable live, surround, source, and postfix templates | Generate code from configurable live, surround, source, and postfix templates | |
Generate files from templates | Generate files and file sets from configurable templates | Generate files from templates | |
Generate type members | Generate type members | Generate type members | |
Generate null checks for parameters | Generate configurable null checks for parameters | Generate configurable null checks for parameters | |
T4 templates support | T4 templates support | Limited T4 templates support with an external generator | |
No matching functionality | Visual editor for code templates | Visual editor for code templates | |
No matching functionality | Simple way to share custom code templates | Simple way to share custom code templates | |
Build and run |
Build with MSBuild | Build with MSBuild or with ReSharper Build, out-of-process incremental build tool that only builds projects that need updating, comes with a built-in NuGet package restorer | Build with MSBuild or with ReSharper Build, out-of-process incremental build tool that only builds projects that need updating, comes with a built-in NuGet package restorer |
Multiple startup projects | Multiple startup projects | Compound run configuration | |
No matching functionality | Run configurations for running/debugging static methods | Run configurations for running/debugging static methods | |
No matching functionality | Build with selected MSBuild version | Build with selected MSBuild version | |
Debugger |
Remote debugging | Remote debugging | Remote debugging |
Debug external C# code even without debug symbols, requires some initial configuration | Debug external C# code even without debug symbols, requires some initial configuration | Debug external C# code even without debug symbols, no configuration is required | |
DataTips in the editor | Searchable DataTips in the editor | Searchable DataTips in the editor | |
No matching functionality | Configurable object presentation in DataTips | Configurable object presentation (Pin to top) | |
No matching functionality | No matching functionality | Configurable stack frames presentation (Pin to frame) | |
No matching functionality | Values of local variables, current line expressions, and function returns are shown in the editor | Values of local variables, current line expressions, and function returns are shown in the editor | |
Memory window | Memory window | Memory view | |
WPF Tree Visualizer | WPF Tree Visualizer | No matching functionality | |
Live Visual Tree | Live Visual Tree | No matching functionality | |
Live Property Explorer | Live Property Explorer | No matching functionality | |
Snapshot debugger | Snapshot debugger | No matching functionality | |
IntelliTrace | IntelliTrace | No matching functionality | |
Breakpoints window | Breakpoints window with preview, context search, grouping, and export | Breakpoints dialog with search and grouping | |
Break by condition (thread, process, machine name) | Break by condition (thread, process, machine name) | Break by condition (thread) | |
Data breakpoints (.NET Core 3.0+) | Data breakpoints (.NET Core 3.0+) | Data breakpoints (.NET Core 3.0+) | |
Run to Cursor, Run to Click | Run to Cursor, Run to Click | Run to Cursor, Run to Click | |
No matching functionality | No matching functionality | Force Run to Statement | |
No matching functionality | No matching functionality | Smart Step Into | |
Edit and Continue | Edit and Continue | Hot Reload | |
Immediate Window | Immediate Window | Immediate Window | |
Parallel Stacks | Parallel Stacks | Parallel Stacks | |
Search in debugger views | Search in debugger views | Search in debugger views | |
No matching functionality | Find breakpoints by context | No matching functionality | |
Dependent breakpoints | Dependent breakpoints | Dependent breakpoints | |
Temporary (remove-once-hit) breakpoints | Temporary (remove-once-hit) breakpoints | Temporary (remove-once-hit) breakpoints | |
No matching functionality | No matching functionality | Method breakpoints | |
No matching functionality | No matching functionality | Mono debugging (including remote) | |
Project-level tools |
NuGet package manager | NuGet package manager | NuGet package manager with instant search |
Project templates | Project templates | Project templates | |
No matching functionality | No matching functionality | Rename project refactoring | |
No matching functionality | No matching functionality | Coding assistance in .csproj files | |
Azure-specific tools | Azure-specific tools | Azure-specific tools | |
Xamarin-specific tools | Xamarin-specific tools | Xamarin-specific tools | |
UWP support | UWP support | UWP support | |
MSIX support | MSIX support | No matching functionality | |
Issue tracker integration (Azure DevOps, VSTS) | Issue tracker integration (Azure DevOps, VSTS) | Issue tracker integration for all modern trackers | |
Visual Studio Live Share | Visual Studio Live Share | No matching functionality | |
No matching functionality | NuGet browser to explore types and namespaces from the NuGet-gallery packages | No matching functionality | |
No matching functionality | No matching functionality | Integrated REST client | |
Coding assistance |
Code completion | Code completion is context-driven, can suggest types and extension methods from the entire solution, import namespaces, generate code, and more | Code completion is context-driven, can suggest types and extension methods from the entire solution, import namespaces, generate code, and more |
Auto-import namespaces | Auto-import namespaces with NuGet search for types and namespace | Auto-import namespaces with NuGet search for types and namespace | |
Move line or selection up/down | Move line, selection, statement, parameter, member, etc. up/down/left/right | Move line, selection, statement, parameter, member, etc. up/down/left/right | |
Expand/Contract selection | Extend/Shrink selection | Extend/Shrink selection | |
WPF visual designer | WPF visual designer | WPF preview | |
WinForms visual designer | WinForms visual designer | WinForms visual designer | |
Pasting items from clipboard history | Pasting items from clipboard history | Pasting items from clipboard history | |
Regular expressions assistance in C# and VB.NET | Regular expressions assistance in C#, JavaScript, TypeScript, and JSON, plus regular expression validator | Regular expressions assistance in C#, JavaScript, TypeScript, JSON, and SQL | |
Quick Info | Quick Documentation | Quick Documentation | |
No matching functionality | Structural navigation with Tab/Shift+Tab | Structural navigation with Tab/Shift+Tab | |
No matching functionality | Structural remove | Structural remove | |
l | Inlay hints for parameter names and type names | Inlay hints for parameter names, type names, and type conversions; push-to-hint mode | Inlay hints for parameter names, type names, and type conversions; push-to-hint mode |
No matching functionality | Completion of entire code statements | Completion of entire code statements | |
No matching functionality | Integrated spell checking | Integrated spell checking | |
No matching functionality | Localization assistance | Localization assistance | |
No matching functionality | Auto-correction of escape sequences in pasted string literals | Auto-correction of escape sequences in pasted string literals | |
No matching functionality | No matching functionality | Local history (tracking uncommitted changes) | |
No matching functionality | No matching functionality | Scratches (files and buffers for prototyping) | |
Navigation |
Go to declaration | Go to declaration that also allows navigating between usages | Go to declaration that also allows navigating between usages |
Go to implementation | Go to base symbols, derived symbols, and end implementations | Go to base symbols, derived symbols, and end implementations | |
Find references | Find usages of the current and related symbols, including text occurrences | Find usages | |
View recent files | View recent files/recent edits and jump to last edit | View recent files/recent edits and jump to last edit | |
Code bookmarks | Code bookmarks | Code bookmarks | |
No matching functionality | Navigate to exposing APIs | Navigate to exposing APIs | |
No matching functionality | Go to related and nearby files | No matching functionality | |
No matching functionality | No matching functionality | Breadcrumbs for project structure and document structure | |
Search |
Go To | Search everywhere | Search everywhere |
Local and global Find/Replace | Local and global Find/Replace + instant index-based search with Go to text | Local and global Find/Replace (index-based, with filters, e.g. except literals or only in comments) | |
Go to symbol | Go to symbol | Go to symbol | |
Go to type | Go to type | Go to type | |
Go to file member | Go to file member | Go to file member | |
Go to file | Go to file | Go to file | |
Quick Launch | Find actions and settings | Find actions and settings | |
No matching functionality | Structural search and replace | No matching functionality | |
Compiled-code tools |
Integrated decompiler (ILSpy) | Integrated decompiler (dotPeek) | Integrated cross-platform decompiler (dotPeek) |
Object Browser | Object Browser + Assembly explorer to open and navigate compiled assemblies | Assembly explorer to open and navigate compiled assemblies | |
Navigate to decompiled source (only when debugging) | Navigate decompiled code | Navigate decompiled code | |
Stack trace explorer | Stack trace explorer | Stack trace explorer | |
No matching functionality | Intermediate Language (IL) Viewer | Intermediate Language (IL) Viewer | |
Code style |
Reformat code in file | Reformat code in file, project, or solution, optionally with contextual configuration of formatting rules | Reformat code in file, project, or solution, optionally with contextual configuration of formatting rules |
Granular formatting rules (e.g. ~45 rules for C#) | Granular formatting rules (e.g. ~220 rules for C#) | Granular formatting rules (e.g. ~220 rules for C#) | |
Optimize namespace import directives | Optimize namespace import directives, including bulk fix | Optimize namespace import directives, including bulk fix | |
Configurable code syntax style inspections | Configurable code syntax style inspections | Configurable code syntax style inspections | |
Naming style | Naming style | Naming style | |
No matching functionality | Auto-detection of naming and formatting styles | Auto-detection of naming and formatting styles | |
EditorConfig support | EditorConfig support | EditorConfig support | |
Visual editor for .editorconfig files | Visual editor for .editorconfig files | Coding assistance and navigation in .editorconfig files | |
No matching functionality | Clang-Format support | Clang-Format support | |
Code Cleanup in file, project, or solution (C#) | Code Cleanup in any scope: selection, file, folder, project, solution (C#, VB.NET, JavaScript, TypeScript, HTML, and other languages) | Code Cleanup in any scope: selection, file, folder, project, solution (C#, VB.NET, JavaScript, TypeScript, HTML, and other languages) | |
Run code cleanup on save | Run code cleanup on save and cleanup recently modified files | Run code cleanup on save and before VCS commit | |
File header style via EditorConfig | File header style via EditorConfig or settings | File header style via EditorConfig or settings | |
No matching functionality | Remove code redundancies in the scope of a method, a class, a file, a project or the whole solution | Remove code redundancies in the scope of a method, a class, a file, a project or the whole solution | |
No matching functionality | Use comments to configure formatter | Use comments to configure formatter | |
No matching functionality | Align code in columns | Align code in columns | |
No matching functionality | File/type member layout with visual editor | File/type member layout with XAML pattern | |
Unit testing |
Unit test explorer | Unit test explorer | Unit test explorer |
.NET testing frameworks support (MSTest, VSTest, xUnit.net) | .NET testing frameworks support (MSTest, VSTest, xUnit.net, NUnit) | .NET testing frameworks support (MSTest, VSTest, xUnit.net, NUnit) | |
C/C++ testing frameworks support (Microsoft Unit Testing Framework for C++, Google Test, Boost.Test, CTest) | C/C++ testing frameworks support (Google Test, Boost.Test, Catch, doctest) | C/C++ testing frameworks support (Google Test, Boost.Test, Catch, doctest) | |
No matching functionality | JavaScript testing frameworks support (QUnit, Jasmine) | JavaScript testing frameworks support (QUnit, Jasmine, Cucumber.js, Jest, Karma, Mocha, Protractor) | |
Run tests from the editor (MSTest and xUnit.net only) | Run tests from the editor | Run tests from the editor | |
View test status in the editor (MSTest and xUnit.net only) | View test status in the editor | View test status in the editor | |
Code coverage tools | Code coverage tools | Code coverage tools | |
Live unit testing | Continuous testing | Continuous testing | |
No matching functionality | Multiple unit test sessions, which can run simultaneously and independently of one another | Multiple unit test sessions, which can run simultaneously and independently of one another | |
No matching functionality | Repeat tests until failure | Repeat tests until failure | |
Database tools |
Built-in support for MS Access and ODBC | Built-in support for MS Access and ODBC | No matching functionality |
Built-in support for SQL Server, Azure SQL, Oracle | Built-in support for SQL Server, Azure SQL, Oracle | Built-in support for SQL Server, Azure SQL, Oracle | |
No matching functionality | No matching functionality | Built-in support for MySQL, Postgre SQL, Sqlite, Sybase, DB2, Derby, H2 HSQLDB, MongoDB, Couchbase | |
Database projects support (*.sqlproj) | Database projects support (*.sqlproj) | No matching functionality | |
SQL editing tools | SQL editing tools | SQL editing tools (including navigation, templates, quick-fixes) | |
No matching functionality | No matching functionality | SQL editing tools inside string literals in C#, VB.NET, JavaScript, TypeScript, etc. | |
Managing settings |
Synchronize settings via
|
Synchronize settings with team via VCS or any file hosting service | Synchronize settings with team via VCS, JetBrains Account, or any file hosting service |
No matching functionality | Settings layer system to store different settings for different solutions without conflicts | Settings layer system to store different settings for different solutions without conflicts | |
Game development |
See detailed comparison of Unity-related features | ||
Basic Unreal Engine support | Productivity features for Unreal Engine projects | Productivity features for Unreal Engine projects | |
No matching functionality | Unreal Engine testing framework support | Unreal Engine testing framework support | |
Miscellaneous |
Interactive installer that allows reconfiguring existing installation | Interactive installer that allows reconfiguring existing installation | Interactive installer |
Diagnostic tools | Diagnostic tools + Integrated performance and memory profilers | Integrated performance profiler | |
Localized GUI | Localized GUI (only Visual Studio) | No matching functionality | |
Plugin ecosystem | Plugin ecosystem | Plugin ecosystem | |
No matching functionality | No matching functionality | Remote development support | |