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.12 | Microsoft Visual Studio 2022 17.12 + ReSharper 2024.3 | JetBrains Rider 2024.3 | |
---|---|---|---|
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 | |||
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 | |
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 | ||
VCS status highlight for files | VCS status highlight for files | VCS status highlight for files and file members | |
Pull request drafts and templates | Pull request drafts and templates | ||
Copy GitHub link | Copy GitHub link | ||
Commit a part of the changes in file | Commit a part of the changes in file | ||
Multiple repositories in one project | Multiple repositories in one project | Multiple repositories in one project | |
Customize AI prompt for commit message | Customize AI prompt for commit message | ||
Create internal GitHub repos | Create internal GitHub repos | ||
Visualize, compare, and revert changes right in the editor | |||
Pre-commit checks and cleanup | |||
Ability to abort Git merge and cherry-pick processes | |||
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 C++, ASP.NET, XAML, and more) | On-the-fly design-time code analysis for all supported languages (including C++, ASP.NET, XAML, JavaScript, TypeScript, SASS, LESS, HTML, SQL, XSLT, YAML, and more) |
800+ code analysis rules | |||
Fix All in a document, project, solution, containing member, and containing type | Fix in Scope in a document, project, folder, solution | Fix in Scope in a document, project, folder, solution | |
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 | 2100+ kinds of code issues that can be fixed automatically | 2200+ 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 | |
300+ quick actions to resolve code issues in C# and VB.NET | 1600+ quick-fixes to resolve code issues in C#, VB.NET, C++, ASP.NET, XAML, and other supported languages | 1700+ 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 ESLint and JSHint linters support | ||
Document Health 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.) | |
C# source generators support | C# source generators support | ||
Analysis of code inside string literals | 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. | |
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 | ||
Custom code inspections and fixes with structural search and replace patterns | |||
Files with errors are highlighted on editor tabs and in the Solution Explorer | |||
Code exploration | Incoming calls | ||
Track Value Source | Value tracking to analyze value origins and destinations | Value tracking to analyze value origins and destinations | |
Dependency graph Enterprise | Project Dependency Diagram, Assembly Dependency Diagram, and Type Dependency Diagram that display without compiling anything | Project Dependency Diagram and Type Dependency Diagram that display without compiling anything | |
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 | |||
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 | ||
File members selectors at the top of the editor | File members selectors at the top of the editor | ||
Document outline | |||
View global usings for a file | View and refactor global usings | View and refactor global usings | |
Task List window | |||
Compare selected files | Compare selected files | ||
Hierarchy views for projects, project references, types, CSS styles | |||
Refactoring | 15 solution-wide refactorings | 60+ solution-wide refactorings | 60+ solution-wide refactorings |
120+ local refactorings (automated local code transformations) | 500+ context actions (automated local code transformations) | 600+ context actions (automated code transformations) | |
Preview of local refactorings | |||
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. | |
Structural replace for same or similar code | |||
Code generation | Create from usage | ||
Generate code from code snippets (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 null checks for parameters | Generate configurable null checks for parameters | Generate configurable null checks for parameters | |
T4 templates support | T4 templates support | ||
Visual editor for code templates | Visual editor for code templates | ||
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 | ||
Run configurations for running/debugging static methods | Run configurations for running/debugging static methods | ||
Build with selected MSBuild version | Build with selected MSBuild version | ||
Debugger | 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 | |
Visualize data structures | Visualize data structures | ||
Configurable object presentation in DataTips | Configurable object presentation (Pin to top) | ||
Configurable stack frames presentation (Pin to frame) | |||
Method return values are shown in the editor | 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 | ||
WPF Tree Visualizer | WPF Tree Visualizer | ||
Live Visual Tree | Live Visual Tree | ||
Live Property Explorer | Live Property Explorer | ||
Snapshot debugger | Snapshot debugger | ||
IntelliTrace | IntelliTrace | ||
Breakpoints window with grouping and export | Breakpoints window with preview, context search, grouping, and export | Breakpoints dialog with search and grouping | |
Dependent breakpoints | Dependent breakpoints | ||
Temporary (remove-once-hit) breakpoints | Temporary (remove-once-hit) breakpoints | Temporary (remove-once-hit) breakpoints | |
Break by condition (thread, process, machine name) | Break by condition (thread, process, machine name) | Break by condition or specific thread | |
Data breakpoints (.NET Core 3.0+) | Data breakpoints (.NET Core 3.0+) | ||
Run to Cursor, Run to Click | Run to Cursor, Run to Click | ||
Force Run to Cursor | Force Run to Cursor | ||
Set Next Statement | Set Next Statement | ||
Step Into Specific | Step Into Specific | ||
Edit and Continue | Edit and Continue | ||
Immediate Window | Immediate Window | ||
Parallel stacks | Parallel stacks | ||
Freeze and unfreeze threads | Freeze and unfreeze threads | ||
Task view | Task view | ||
Search in debugger views | Search in debugger views | ||
Mono debugging (including remote) | |||
Project-level tools | NuGet package manager | NuGet package manager | NuGet package manager with instant search |
Project templates | Project templates | ||
Solution filters | Solution filters | ||
SLNX format support | SLNX format support | SLNX format support | |
Safe delete project refactoring | |||
Coding assistance in .csproj files | |||
Azure-specific tools | Azure-specific tools | Azure-specific tools | |
Xamarin-specific tools | Xamarin-specific tools | ||
UWP support | UWP support | UWP support | |
MSIX support | MSIX support | ||
Issue tracker integration (Azure DevOps, VSTS) | Issue tracker integration (Azure DevOps, VSTS) | ||
Visual Studio Live Share | Visual Studio Live Share | ||
NuGet browser to explore types and namespaces from the NuGet-gallery packages | |||
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 | ||
WPF visual designer | WPF visual designer | WPF preview | |
WinForms visual designer | WinForms visual designer | ||
Pasting items from clipboard history | |||
Regular expressions assistance in C# and VB.NET | Regular expressions assistance in C#, plus regular expression validator | Regular expressions assistance in C#, JavaScript, TypeScript, JSON, and SQL | |
Quick Info | |||
Structural navigation with Tab/Shift+Tab | Structural navigation with Tab/Shift+Tab | ||
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 | |
Sticky scroll | Sticky scroll | ||
Brace pair colorization | Brace pair colorization | ||
Markdown editor with preview | Markdown editor with preview | ||
Syntax highlighting | Syntax highlighting (different configurable colors for more identifier kinds) | Syntax highlighting (different configurable colors for more identifier kinds) | |
Integrated spell checking | |||
Highlight occurrences that match editor selection | Highlight occurrences that match editor selection | Highlight occurrences that match editor selection | |
Visualize whitespaces in file | Visualize whitespaces in file | Visualize whitespaces in file or selection | |
Local history (tracking uncommitted changes) | |||
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 | |||
Find references | Find usages of the current and related symbols, including text occurrences | ||
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 | |||
Breadcrumbs for project structure and document structure | |||
Search | Code search | ||
Local and global Find/Replace | Local and global Find/Replace | ||
Go to symbol | |||
Go to type | Go to type | Go to type | |
Go to file member | |||
Go to file | |||
Quick Launch | |||
Go to Text | |||
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) | |||
Stack trace explorer | |||
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 | |||
Naming style | |||
EditorConfig support | |||
Visual editor for .editorconfig files | Visual editor for .editorconfig files | Coding assistance and navigation in .editorconfig files | |
Clang-Format support | |||
Code Cleanup in file, project, or solution (C#) | Code Cleanup in any scope: selection, file, folder, project, solution (C#, VB.NET, C++, and other languages) | Code Cleanup in any scope: selection, file, folder, project, solution (C#, VB.NET, C++, 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 | |
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 | ||
Align code in columns | Align code in columns | ||
File/type member layout with visual editor | File/type member layout with XAML pattern | ||
Unit testing | 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) | |
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 Enterprise | Code coverage tools dotUltimate | Code coverage tools dotUltimate | |
Live unit testing Enterprise | Continuous testing dotUltimate | Continuous testing dotUltimate | |
Run tests until failure | Repeat tests until failure | Repeat tests until failure | |
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 | ||
JavaScript testing frameworks support (QUnit, Jasmine, Cucumber.js, Jest, Karma, Mocha, Protractor) | |||
Database tools | Built-in support for MS Access and ODBC | Built-in support for MS Access and ODBC | |
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 | |
Built-in support for MySQL, Postgre SQL, Sqlite, Sybase, DB2, Derby, H2 HSQLDB, MongoDB, Couchbase | |||
Database projects support (*.sqlproj) | Database projects support (*.sqlproj) | Database projects support (*.sqlproj) | |
Compare database schemas | Compare database schemas | ||
SQL editing tools | SQL editing tools | SQL editing tools (including navigation, templates, quick-fixes) | |
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 |
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 | Basic Unreal Engine support | ||
Basic Godot projects support | Basic Godot projects support | ||
Work with multiple solutions | Open several solutions with multiple Visual Studio instances | Open several solutions with multiple Visual Studio instances | Choose whether to open a solution in a new window |
Individual colors for multiple solution windows | |||
Security | Detect packages with vulnerabilities | ||
Maintain a list of trusted files and folders | Trust settings inherited from Visual Studio | ||
Miscellaneous | Interactive installer that allows reconfiguring existing installation | Interactive installer that allows reconfiguring existing installation | Interactive installer |
Background update to a new version | |||
Diagnostic tools | Integrated performance profiler dotUltimate | ||
Localized GUI | Localized GUI | Localized GUI | |
Full screen mode | Full screen mode | Full screen, Presentation, and Zen modes | |
Zoom editor | Zoom editor | Zoom editor or entire IDE | |
Integrated terminal | Integrated terminal | ||
Install custom keymaps | |||
Free 30-day trial |