I have the opposite stance. Visual Studio is my primary dislike in working with C#. It's mighty, I'll give it that. The debugging experience is strong. But it's slow, sluggish, components or itself crash sporadically; the extension ecosystem isn't great.
Working with containers/docker is a bit painful, too: as with all things Microsoft, there are layers of indirection to just make it work™. While it does, it's wonderful. Almost inevitably however, one runs into edge cases that are impossible to solve, because the config you need hasn't been surfaced to the GUI. That's where I prefer more 'hackable' IDEs like VSCode. In these situations, it might just allow you to drop a line of bash into some JSON config. Simple and works, no GUI work from the devs required.
One my of favorite pet peeves is running unit tests in parallel from inside VS, using the GUI/shortcuts. The setting for running unit tests in parallel is a nested setting, only accessible via GUI. Running unit tests in sequence is incredibly slow in our case (and when would you ever want unit tests _not_ run in parallel?). The setting is then stored somewhere in the `.vs/` directory, in _binary files_. You cannot version control them, and `git clean` regularly knocks that directory out, wiping the setting. Annoying, but not annoying enough to do anything about!
I agree with you around VS and I use it all the time. The problem is that Rider for example is the same. I've had the chance to do a project with Rider recently and I have to say performance-wise both VS and Rider are just slow and prone to crashes and random errors. It's true they offer immense power. Debugging and profiling is unmatched in both IDEs. However, what I'd like is a more modular approach in both of them where I can disable certain things to take a load off the dev experience. I'm not sure if their architecture would allow for such a change, but I'd love to see it.
I'm back to my usual VSCode setup now for .NET/C# work, but there even though I have more than 50 extensions, they are all enabled on per-project basis so the experience is pretty light. I still have to boot up VS/Rider from time to time, but it won't be my first choice.
Comments
My main reason for using C# is that's it's nice enough but Visual Studio feels amazing.
I have the opposite stance. Visual Studio is my primary dislike in working with C#. It's mighty, I'll give it that. The debugging experience is strong. But it's slow, sluggish, components or itself crash sporadically; the extension ecosystem isn't great.
Working with containers/docker is a bit painful, too: as with all things Microsoft, there are layers of indirection to just make it work™. While it does, it's wonderful. Almost inevitably however, one runs into edge cases that are impossible to solve, because the config you need hasn't been surfaced to the GUI. That's where I prefer more 'hackable' IDEs like VSCode. In these situations, it might just allow you to drop a line of bash into some JSON config. Simple and works, no GUI work from the devs required.
One my of favorite pet peeves is running unit tests in parallel from inside VS, using the GUI/shortcuts. The setting for running unit tests in parallel is a nested setting, only accessible via GUI. Running unit tests in sequence is incredibly slow in our case (and when would you ever want unit tests _not_ run in parallel?). The setting is then stored somewhere in the `.vs/` directory, in _binary files_. You cannot version control them, and `git clean` regularly knocks that directory out, wiping the setting. Annoying, but not annoying enough to do anything about!
I agree with you around VS and I use it all the time. The problem is that Rider for example is the same. I've had the chance to do a project with Rider recently and I have to say performance-wise both VS and Rider are just slow and prone to crashes and random errors. It's true they offer immense power. Debugging and profiling is unmatched in both IDEs. However, what I'd like is a more modular approach in both of them where I can disable certain things to take a load off the dev experience. I'm not sure if their architecture would allow for such a change, but I'd love to see it.
I'm back to my usual VSCode setup now for .NET/C# work, but there even though I have more than 50 extensions, they are all enabled on per-project basis so the experience is pretty light. I still have to boot up VS/Rider from time to time, but it won't be my first choice.