Compares Visual Studio, VS Code with C# Dev Kit and JetBrains Rider for .NET 10 work: platforms, language engines, debugging, licensing and when to choose each.
There are three mainstream choices. Visual Studio is Microsoft's full IDE for Windows, with the deepest tooling: designers, profilers and Azure integration. Visual Studio Code is a lightweight cross-platform editor; with the C# extension and C# Dev Kit it gets a Roslyn language server, Solution Explorer, Test Explorer and debugging. JetBrains Rider is a cross-platform IDE built on ReSharper, strong at refactoring and code analysis. All three drive the same .NET SDK and MSBuild, so a project builds the same way on the command line whatever editor you use. I choose based on platform, workload, team standards and licensing.
"When talking about .NET tooling, the main choices are
Visual Studio,Visual Studio Code, andJetBrains Rider. Visual Studio is a Windows-only full IDE with comprehensive designers, whereas VS Code is a lightweight cross-platform editor that, with the C# extension and C# Dev Kit, provides a robust Roslyn language server and debugging. Rider is a cross-platform IDE built on the ReSharper engine, well-known for deep refactoring.Crucially, none of them own the build; all three drive the same .NET SDK and MSBuild, so a project builds identically on the command line regardless of the editor. A key trade-off is licensing and resource overhead: Visual Studio and Rider consume more memory and have strict commercial licensing limits, whereas VS Code is lightweight but requires attention to licensing compliance.
Editor choice is personal while build behaviour is not, so I choose based on the operating system, workload, and team standards while keeping the
.NET SDKand.editorconfigas our source of truth."
--- ### The three tools"For .NET development, the main choices are
Visual Studio,Visual Studio Code, andJetBrains Rider. Visual Studio is a Windows-only full IDE with comprehensive designers and profilers. VS Code is a lightweight cross-platform editor that, with the C# extension and C# Dev Kit, provides a robust Roslyn language server, Solution Explorer, and debugging. Rider is a cross-platform JetBrains IDE built on the ReSharper engine, well-known for deep refactoring and analysis. Crucially, none of them own the build; all three drive the same .NET SDK and MSBuild, so a project builds identically on the command line regardless of the editor. A key trade-off is licensing and resource overhead: Visual Studio and Rider consume more memory and have strict commercial licensing limits, whereas VS Code is lightweight and extensible but requires attention to extension trust and C# Dev Kit licensing compliance. In practice, I choose based on the operating system, workload—such as WPF designers—and team standards."
| Visual Studio 2026 | VS Code + C# Dev Kit | JetBrains Rider | |
|---|---|---|---|
| Platforms | Windows only | Windows, macOS, Linux | Windows, macOS, Linux |
| Kind | Full IDE | Extensible editor | Full IDE |
| C# engine | Roslyn | Roslyn language server (LSP) | ReSharper engine, plus Roslyn analysers |
| Strengths | WinForms/WPF designers, profilers, Azure and Microsoft-first tooling | Fast, polyglot, remote development (SSH, WSL, Dev Containers) | Refactoring, navigation, inspections, built-in decompiler and database tools |
| Licence | Community (free with limits), Professional, Enterprise | Editor free; C# Dev Kit on Visual Studio Community terms | Free for non-commercial use; paid for commercial work |
None of them owns the build. Each one asks the .NET SDK (chosen by global.json or the latest installed) to evaluate the project with MSBuild, then compiles with the same Roslyn compiler. The CLI tools are also shared: dotnet test, dotnet format and dotnet ef behave the same whichever editor launched them, because the IDEs call the same SDK. That is why dotnet build in CI should produce the same result as pressing F5. If something only works inside one IDE, that is a bug in the project setup, not a feature.
On a team building an ASP.NET Core API hosted in Azure Australia East, Windows developers used Visual Studio, two Mac developers used Rider, and the platform engineer used VS Code for Bicep and pipelines. Because the repository pinned the SDK in global.json, shared style through .editorconfig, and CI ran dotnet build and dotnet test, nobody's editor choice affected the output.
Knowing which layer misbehaves is most of the skill when an editor acts up.
+---------------+ +----------------------+ +-----------------+
Editor UI | Visual Studio | | VS Code + C# Dev Kit | | JetBrains Rider |
+-------+-------+ +----------+-----------+ +--------+--------+
Language Roslyn workspace Roslyn language server ReSharper backend
engine (main process plus (separate process, (separate .NET process;
helper processes) Language Server Protocol) IntelliJ front end)
+-----------------------+---------------------------+
v
.NET SDK (selected via global.json) + MSBuild evaluation
v
restore -> build -> run / test / publish
| Layer | What it does | Typical symptom when it breaks |
|---|---|---|
| Editor UI | Windows, panes, shortcuts, extensions | UI freezes, missing menus, extension errors |
| Language engine | Parses and analyses code as you type: completion, squiggles, refactorings, navigation | Wrong or missing IntelliSense while dotnet build works |
| Build engine (.NET SDK and MSBuild) | Restores, compiles and runs | The same failure in every editor and in CI |
All three read projects the same way: they ask MSBuild to evaluate each project and run a design-time build (a partial build that lists source files, references, analysers and compiler options without compiling). That is why a failed restore or a missing SDK shows up as broken IntelliSense in every editor.
| IDE | Debugger | Notes |
|---|---|---|
| Visual Studio | Microsoft's managed debugger | Richest feature set: data breakpoints, Parallel Stacks, IntelliTrace (Enterprise), dump analysis |
| VS Code | vsdbg, shipped in the C# extension |
Licensed for use with Microsoft products such as VS Code and Visual Studio only |
| Rider | JetBrains' own debugger | Strong at stepping through decompiled third-party code |
All three use the runtime's debugging interfaces, so breakpoints, stepping and variable inspection work the same way in principle; the differences are in the tool windows around them.
| Need | Visual Studio | VS Code + C# Dev Kit | Rider |
|---|---|---|---|
| WinForms/WPF designers | Yes, the most complete | No | WPF/WinForms previewers, less complete |
| Profiling | Built-in Performance Profiler | CLI tools (dotnet-counters, dotnet-trace) |
dotTrace and dotMemory integration (licence dependent) |
| Test explorer | Yes | Yes (C# Dev Kit) | Yes |
| Hot Reload | Yes | Yes, while debugging | Yes |
| Remote and container development | Limited | Strong: SSH, WSL, Dev Containers | Remote development and Dev Containers |
| Decompiler | Yes (external sources) | Limited | Built in, very strong |
| Platforms | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| Situation | Visual Studio | VS Code + C# Dev Kit | Rider |
|---|---|---|---|
| Student, hobby or open-source work | Community, free | Free | Free for non-commercial use |
| Small company within Community's limits | Community, free | Free | Paid licence for commercial work |
| Enterprise (more than 250 PCs or more than US$1 million annual revenue) | Professional or Enterprise subscription | Visual Studio subscription needed for C# Dev Kit | Paid licence |
The VS Code editor and the C# extension themselves are free for everyone; C# Dev Kit follows Visual Studio Community's terms.
.slnf) load a subset; Rider and VS Code can also open part of a repo.Extensions and plugins run with your user's privileges and can read source code and credentials. Install them only from publishers you trust, keep them updated, and use VS Code's Workspace Trust (Restricted Mode) when opening an unfamiliar repository, because tasks.json, launch configurations and some extensions can execute code from the workspace.
.NET 11 previews can be tried in all three tools once their preview SDK support lands. Keep production projects on .NET 10 LTS and pin the SDK with global.json, so installing a preview doesn't change your build.
dotnet new console -n ToolingDemo -f net10.0 and replace Program.cs with the code example.dotnet run from a terminal and confirm the output is identical.PackageReference to a package that doesn't exist) and watch how each editor reports the failed restore.bin/ and obj/, build from one editor, and look at the files produced: they are the same SDK outputs whichever editor you used.The interviewer is checking whether you understand that IDEs sit on top of a shared SDK and build engine, and whether you can choose tools for reasons rather than habit.
Green flags
Red flags
Knowing which layer misbehaves is most of the skill when an editor acts up.
+---------------+ +----------------------+ +-----------------+
Editor UI | Visual Studio | | VS Code + C# Dev Kit | | JetBrains Rider |
+-------+-------+ +----------+-----------+ +--------+--------+
Language Roslyn workspace Roslyn language server ReSharper backend
engine (main process plus (separate process, (separate .NET process;
helper processes) Language Server Protocol) IntelliJ front end)
+-----------------------+---------------------------+
v
.NET SDK (selected via global.json) + MSBuild evaluation
v
restore -> build -> run / test / publish
| Layer | What it does | Typical symptom when it breaks |
|---|---|---|
| Editor UI | Windows, panes, shortcuts, extensions | UI freezes, missing menus, extension errors |
| Language engine | Parses and analyses code as you type: completion, squiggles, refactorings, navigation | Wrong or missing IntelliSense while dotnet build works |
| Build engine (.NET SDK and MSBuild) | Restores, compiles and runs | The same failure in every editor and in CI |
All three read projects the same way: they ask MSBuild to evaluate each project and run a design-time build (a partial build that lists source files, references, analysers and compiler options without compiling). That is why a failed restore or a missing SDK shows up as broken IntelliSense in every editor.
| IDE | Debugger | Notes |
|---|---|---|
| Visual Studio | Microsoft's managed debugger | Richest feature set: data breakpoints, Parallel Stacks, IntelliTrace (Enterprise), dump analysis |
| VS Code | vsdbg, shipped in the C# extension |
Licensed for use with Microsoft products such as VS Code and Visual Studio only |
| Rider | JetBrains' own debugger | Strong at stepping through decompiled third-party code |
All three use the runtime's debugging interfaces, so breakpoints, stepping and variable inspection work the same way in principle; the differences are in the tool windows around them.
| Need | Visual Studio | VS Code + C# Dev Kit | Rider |
|---|---|---|---|
| WinForms/WPF designers | Yes, the most complete | No | WPF/WinForms previewers, less complete |
| Profiling | Built-in Performance Profiler | CLI tools (dotnet-counters, dotnet-trace) |
dotTrace and dotMemory integration (licence dependent) |
| Test explorer | Yes | Yes (C# Dev Kit) | Yes |
| Hot Reload | Yes | Yes, while debugging | Yes |
| Remote and container development | Limited | Strong: SSH, WSL, Dev Containers | Remote development and Dev Containers |
| Decompiler | Yes (external sources) | Limited | Built in, very strong |
| Platforms | Windows | Windows, macOS, Linux | Windows, macOS, Linux |
| Situation | Visual Studio | VS Code + C# Dev Kit | Rider |
|---|---|---|---|
| Student, hobby or open-source work | Community, free | Free | Free for non-commercial use |
| Small company within Community's limits | Community, free | Free | Paid licence for commercial work |
| Enterprise (more than 250 PCs or more than US$1 million annual revenue) | Professional or Enterprise subscription | Visual Studio subscription needed for C# Dev Kit | Paid licence |
The VS Code editor and the C# extension themselves are free for everyone; C# Dev Kit follows Visual Studio Community's terms.
.slnf) load a subset; Rider and VS Code can also open part of a repo.Extensions and plugins run with your user's privileges and can read source code and credentials. Install them only from publishers you trust, keep them updated, and use VS Code's Workspace Trust (Restricted Mode) when opening an unfamiliar repository, because tasks.json, launch configurations and some extensions can execute code from the workspace.
.NET 11 previews can be tried in all three tools once their preview SDK support lands. Keep production projects on .NET 10 LTS and pin the SDK with global.json, so installing a preview doesn't change your build.
dotnet new console -n ToolingDemo -f net10.0 and replace Program.cs with the code example.dotnet run from a terminal and confirm the output is identical.PackageReference to a package that doesn't exist) and watch how each editor reports the failed restore.bin/ and obj/, build from one editor, and look at the files produced: they are the same SDK outputs whichever editor you used.Create and run the project from the CLI, then open the same folder in any editor:
dotnet new console -n ToolingDemo -f net10.0
cd ToolingDemo
dotnet run
# VS Code (requires the 'code' command on PATH)
code .
Program.cs, which prints the runtime and SDK-produced details whichever IDE launches it:
using System.Runtime.InteropServices;
Console.WriteLine($"Runtime: {RuntimeInformation.FrameworkDescription}");
Console.WriteLine($"OS: {RuntimeInformation.OSDescription}");
Console.WriteLine($"Process architecture: {RuntimeInformation.ProcessArchitecture}");
Console.WriteLine($"Debugger attached: {System.Diagnostics.Debugger.IsAttached}");
Mistake: treating the IDE as the build system.
If a project only builds inside one IDE, CI and teammates on other editors break, because the IDE isn't what produces the shipped output.
Instead: treat dotnet build and dotnet test from a clean clone as the source of truth, and fix anything that only works in one IDE in the project files.
Mistake: saying Visual Studio runs on macOS. Visual Studio for Mac was retired on 31 August 2024 and no longer gets updates or security fixes. Instead: recommend Rider or VS Code with C# Dev Kit for macOS developers.
Mistake: assuming C# Dev Kit is free for every company because VS Code is free. C# Dev Kit follows Visual Studio Community's licence terms, including its limits on organisation size, so a larger company can be out of compliance without realising. Instead: check the organisation against Community's limits; above them, each developer using C# Dev Kit needs a Visual Studio Professional or Enterprise subscription, or GitHub Codespaces.
Mistake: assuming Rider's free licence covers work projects. The free licence is for non-commercial use only. Instead: buy commercial licences for paid work, and check with whoever manages software licences before a team rollout.
Mistake: calling VS Code "just a text editor". With the C# extension it has a full Roslyn language server, a debugger and, with C# Dev Kit, Solution Explorer and Test Explorer. Instead: describe it accurately: a lightweight, extensible editor that becomes a capable .NET environment with the right extensions, and is strongest for polyglot and remote work.
Mistake: committing per-user IDE state such as .vs/ or .idea/workspace.xml.
These hold personal window layouts, caches and local paths, so they cause constant merge conflicts and can leak machine details.
Instead: add them to .gitignore (start from dotnet new gitignore) and commit only shared files such as .editorconfig, .vsconfig and .vscode/extensions.json.
Mistake: forcing one IDE on a mixed Windows and Mac team.
People lose productivity in an unfamiliar tool, and it still doesn't guarantee identical builds.
Instead: standardise what affects output (global.json, .editorconfig, Directory.Build.props, the CI pipeline) and let people choose the editor they're fastest in.
Editor choice is personal; build behaviour is not. A senior engineer standardises what affects output (SDK version in global.json, style in .editorconfig, build settings in Directory.Build.props, the CI pipeline) and lets people pick the editor they are fastest in. Forcing one IDE on a mixed Windows and Mac team costs more productivity than it saves.
The other senior concern is licence compliance and supply chain. An Australian company that crosses the Visual Studio Community thresholds needs paid licences, and an audit finding is an avoidable cost. Extensions are third-party code running on machines that hold source and cloud credentials, so a short approved-extensions list is reasonable in regulated environments such as finance or health.
First install the .NET 10 SDK, because VS Code does not bundle it. Then install C# Dev Kit, which brings in the C# extension. The C# extension gives you the Roslyn language server for IntelliSense, diagnostics and refactorings, plus the .NET debugger. C# Dev Kit adds the Visual Studio-style pieces: Solution Explorer, project templates and Test Explorer. You debug with the coreclr debugger, either auto-detected or configured in launch.json. C# Dev Kit is licensed like Visual Studio Community, so larger companies need a Visual Studio subscription.
Rider is JetBrains' cross-platform .NET IDE. It combines the ReSharper analysis engine, running as a separate .NET process, with the IntelliJ front end, so it runs the same on Windows, macOS and Linux. Its strengths are refactoring, navigation, hundreds of inspections, a built-in decompiler, database tools and an HTTP client. The trade-offs are cost for commercial use and that some Microsoft-first features, such as the most complete desktop designers, arrive in Visual Studio first. It uses the same SDK and MSBuild, so a mixed team only needs shared .editorconfig and global.json.
Last updated 1 Nov 2026.