Given that our deployment platform was Linux (for a .Net Core 3.0 project), I was determined to use Linux and VS Code for development. That was a fail; the verbose nature of C# and the Framework APIs make it impossible to be productive without significant help from a full-fledged IDE like Visual Studio. One might think the verbosity can be reduced by clever coding (and adopting a functional style), but that's not so easy. If you're writing a Web App/Service, the Framework APIs and most popular libraries will nudge you strongly to use Dependency Injection throughout the app and implement everything as a class and to extract interfaces out of it.

My wishlist for C# is short:

- Allow functions outside of classes

- Structural typing

- Files and directories already provide excellent namespacing. Adopt it instead of forcing namespace declarations

Btw, Linux as a deployment platform works quite well.

If you install the VS Code's C# extension, you should be getting autocomplete and quick fixes such as adding impport statements automatically.

https://code.visualstudio.com/docs/languages/csharp

Oh no, don’t do that.

The vscode integration is barely beyond autocomplete, and it uses more memory than rider does.

The c# story for vscode still has a long way to go before it’s even close to feature parity.

(...and yes, if you scrabble enough plugins you can get more features, but you get more crashes and even more memory slurping. :/)

What do you mean? The official C# support is from the Omnisharp plugin [1].

Omnisharp is the official .NET cross-platform development support system and is used across many different interfaces (VSCode, Atom, Sublime, etc). It's powered by Roslyn [2], the C# compiler platform, and can use the same packages for analyzers and autofixes that VS uses. It also has official debugging support. This is way beyond autocomplete.

1. https://github.com/OmniSharp/omnisharp-vscode

2. https://github.com/OmniSharp/omnisharp-roslyn