C# (pronounced C Sharp) was developed by Microsoft in 2000 as part of its .NET framework and continues to be very common in today’s development world.
Whether you’re looking to get started with C# or looking to improve your workflow, it’s always a good idea to take some consideration into what IDE, or Integrated Development Environment, to use.
In this article, I will list some of the more common IDEs in use and then share some internet opinions of C# users to hopefully paint a more complete picture of some of the pros and cons of each one.
Without further ado, let’s get started.
Visual Studio Code (VS Code)
Visual Studio Code is a relatively lightweight IDE by Microsoft, and it’s a great option for many languages in general and especially for C#.
Below, I will list some of VSCode’s details and features.
- Download here
- “Our focus with VS Code is to be a great editor for cross-platform C# development” — Visual Studio Code
- C# language support with optional install through Marketplace
- Support for .NET Core projects
- Support for MSBuild projects
- Support for C# scripts (CSX)
- Re-name re-factoring
- Built-in snippets
- Trigger suggest
- Search for symbols
- Find references/peek definition
- Quick fixes/suggestions
Also, VS Code is not to be confused with Visual Studio. Visual Studio is another IDE option, and I’ll go over it in the next section. This Redditor weighs in:
VS Code isn’t the light version of Visual Studio — it’s a completely different product, and we can thank the marketing department of MS for the confusing name.
Now, let’s go over some opinions on the internet regarding VS Code for C# development.
on the other hand even stuff like IntelliSense feels way more reliably in VS than VSC.
I’m not happy about that because I’d want to use it from time to time on Linux or something, but the difference between real VS is felt.
Once you use VS code you will never go back, rockingg it on my 3GB of RAM virtual machine and it doesn’t give me any problems
If you’re making web apps, VS Code is the better way (I use VS Code for Web even I have VS Pro). If you’re making Xamarin apps or Web Forms or WPF, you have to use VS Community/Pro for sure.
VSCode is great unless you need the xaml designer for uwp, wpf, or winforms.
Visual Studio is one of the main heavy hitter IDEs when it comes to C#. In fact, if you ask around, you’ll find that most developers will answer that they use either VS Code or Visual Studio for their C# development (for all the rest, read on in this article for the other IDEs).
- Community edition is free
- Professional edition is $45 a month for businesses
- Enterprise edition is $250 per month for businesses
- Pricing details can be found here
- Edition comparison can be found here
- Download here
- Get started with C# with Visual Studio
- Feature list here
Regular Visual Studio is actually pretty performant when used with C# and barely uses any RAM. VSCode is a lot more bloated due to it basically being a website.
Visual Studio is WPF and it also eats lot of memory (plus it is heavy on CPU), but honestly, I would go with Visual Studio and suffer with poor performance because there is no other good alternative. You could take some older version of VS, but you loose .NET support for latest releases.
Deffo use VS. It might seem a little daunting at first but just follow simple tutorials and keep at it and eventually making programs to manipulate strings the way you want will seem trivial. There are other alternatives out there like VScode and jet brains rider I believe is one but regular visual studio is the industry standard for reasons that will probably become apparent if you’re ever working on larger, more complicated projects.
If we’re talking about tooling, Visual Studio is really good, but its editing features leave a lot to be desired.
For example, in every other text editor / IDE I use, highlighting some text and pressing the open parentheses key would wrap the entire selection in parentheses, whereas Visual Studio would just replace the entire selection with an open parentheses.
Some developers, for what it’s worth, suggest using a combination of VS Code and Visual Studio.
Imo use both vscode and visual studio. You can actually open a solution folder in vscode and visual studio at the same time.
I do all my c#, data tools, debugging etc in visual studio.
I do all my js and html in vscode.
We tend to have cold fusion and python files in our solutions too which makes vscode ideal.
It’s a lot to grasp but both of them play together nicely. I never use just one.
I echo some other people’s thoughts of using both. I use Code when I want to edit code files and push them to a repository. I use Visual Studio when I need to run and debug a project.
One thing I haven’t seen mentioned is the price associated with Visual Studio. Code is free for all to use, but the free version of Visual Studio (Community) has restrictions on who can use it for what.
Rider is a JetBrains product, which probably is music to the ears of some developers who already are deep in the JetBrains ecosystem (think IntelliJ IDEA, for example).
Rider is a “[f]ast & powerful, cross-platform .NET IDE” according to JetBrains, and it’s a definite option for C# developers.
- Not free
- Download here (with free 30-day trial)
The yearly billing works as follows:
- $139 for first year
- $111 for the second year
- $83 for the third year onwards
If you prefer monthly billing, then it’s $13.90 per month.
Pricing details can be found here.
Below, I’ve listed the features that JetBrains touts.
- 2200+ live code inspections
- Hundreds of context actions and refactorings brought by ReSharper
- Code analysis and code editing
- Unit test runner
- Navigation and search
- Drag and drop tabs
Rider is great. I don’t think I’ll ever use VS again due to how bad performance is in comparison.
I have been using Rider at work for 1,5 years. Everyone else uses Visual Studio.
We have never had any issues. Just remember to gitignore Rider-specific folders/files.
I am using rider from a some time — i will never go back to vs. Rider is a few steps behind vs in some places like wpf-preview or resx files editing. But looks beatiful, i can use vim plugin. And is so faster
My company evaluated both [Editor: Rider and Visual Studio] when we started working in C# and concluded that rider is better on every metric we looked at.
We have non developers (designers, QA) who don’t work with code enough to warrant buying a license but sometimes need to build or edit projects, they use visual studio community without issues.
Rider is much more opinionated about style, which we like a lot, but it’s also fully configurable so if you don’t want to see style warnings that are ok in your team you can just turn them off.
— /u/pbtree on /r/csharp
I tried using Rider once. I liked it a lot. Until I tried doing WPF/XAML work in it. Maybe they improved it but back then working with XAML in Rider was a pain, so I had to switch back to Visual Studio. I wish I could go back to Rider though, since I really enjoyed the experience.
LINQPad is billed as a “.NET Programmer’s Playground” by those who work on it. Its site lists its features:
- Download here
- Instantly test any C#/F#/VB snippet or program
- Query databases in LINQ (or SQL) — SQL/Azure, Oracle, SQLite, Postgres & MySQL
- Enjoy rich output formatting, optional autocompletion and integrated debugging
- Script and automate in your favorite .NET language
- Super lightweight — single 20MB executable!
Cant stop loving linqpad. Supports all the .net languages. Lets you test sql, auto entitizes your dbs.
LINQPad .Dump() method is awsome for e.g exploring data structures.
It’s…a combination of things. Mostly, the fact that it’s a sandbox that I can quickly test out something without needing to open VS, create a project (which I’ll eventually just delete later). Or if I am working on some project in VS, and want to test out some component completely isolated.
Dump()is a godsend. I guess it's suffice to say it's a better C# Interactive window than what VS provides. It's by no means something that you'd replace VS with, but something that works best in tandem with it.
The ability to quickly connect to any database and run LINQ queries on it has been a godsend for me. I’ve even found a driver for CSV files, and I can’t begin to tell you how useful it has been for me to be able to use LINQ on CSV files with very little setup past just telling it what file to read in.
The fact that it’s portable as well has been great; I’ve run into a few situations where I wanted to script something up on a computer that didn’t have VS installed.
Ultimately, no, there isn’t anything (significant) that LINQPad provides that VS doesn’t, so I can understand why it’s difficult to reason why to pay for it. However, licenses are only necessary per major version (which nets you at least a few years of usage out of it), and with LINQPad 6 being the first one that supports .NET Core, you’d get the most longevity out of it now.
I like linqpad for quick tests… for Visual Studio I’d have to create a new solution with a new project… with linqpad I can just run a bit of source.
I use the free version, the lack of syntax highlighting doesn’t both me too much… it still shows the exceptions if you hover the mouse over the error indicators.
— EDIT —
Another resource that is useful for quick tests and such is dotnet fiddle.
linqpad is slightly better in my opinion though b/c it’s ran locally so it’s easy to work with local files… for example, I might do something in linqpad if I want to quickly rename all the files in a dir and I also don’t feel like looking up powershell syntax.
It has an entire library of visual controls (text boxes, drop downs, buttons, etc). Whenever I have a db query I need to run over and over again, instead if editing SQL I throw up a text box for each parameter, wire up some event handlers and load the results into a dump container.
With the controls, .Dump(), and dump container, I can crank out utility apps in a tenth the time it takes in visual studio.
Also, if I want to debug a large process that works over a large dataset, nothing better than LINQPad. I don’t have to set breakpoints and wait for the process to run so I can debug it. Also, this might destroy state that causes the bug in the first place. With LINQPad, I can pull in the data, slice and dice it any way I want without losing state. I can pull out bits of code from my app and test them with that data. All without having to run the actual (long running) process and potentially destroying the buggy data, causing me to have to start all over again from square one.
I would never write and actual production application in LINQPad. But, that’s not what it’s for. It is by far the best tool in my developer tool belt.
Hopefully by now, you’ll have a better idea of which IDE is best for C#. IDEs are always a personal decision, though, and so the best advice I can give is just try all of these out to see what you like and to have in your toolbelt for different use cases.