0

I'm just curious what .NET developers think about using Visual Studio vs VS Code + CLI. I'm currently doing the Microsoft's official .NET tutorial and it uses VS Code for some weird reason. I don't understand why I would do this considering Visual Studio has literally EVERYTHING and you don't have to faff about with the CLI commands and installations, and it includes winforms.

I'm a junior developer getting into .NET development so please do help me understand this! Am I missing something?

Mashie
  • 41
  • 3
  • 1
    Hi there, I believe your question is off-topic because it is opinion-based. Please see [What topics can I ask about here?](https://stackoverflow.com/help/on-topic). – Julia Feb 18 '22 at 09:28
  • https://stackoverflow.com/questions/30527522/what-are-the-differences-between-visual-studio-code-and-visual-studio – Jerdine Sabio Feb 18 '22 at 09:29
  • Size-of-audience appeal perhaps.. I think the number of operating systems VSC+CLI+dotnet is available on is greater than the number of OS VS is available on. Windows-centric devs tend to forget about e.g. linux. Tutorials that say "`execute CLI command dotnet blah blah..` work on platforms that have dotnet command (many); tuts that say "Open VS, make a new XYZ project" only work on platforms that have VS (fewer) – Caius Jard Feb 18 '22 at 09:33
  • The full version of Visual Studio is not free. – PMF Feb 18 '22 at 09:36
  • @PMF but we should never confuse cost with value :D – Caius Jard Feb 18 '22 at 09:36
  • there are pretty many reasons to favour one over the other, literally too many for a question here. – MakePeaceGreatAgain Feb 18 '22 at 09:36
  • @CaiusJard Fully agree, but this could be a reason why MS decided to do the turorials on VS Code. – PMF Feb 18 '22 at 09:37
  • @CaiusJard you can do cross-plattform on both VS and VS Code, actually – MakePeaceGreatAgain Feb 18 '22 at 09:37
  • Not saying you can't, just saying (AFAIK) there isn't a Linux VS so making tutorials VS centric alienates a section of devs – Caius Jard Feb 18 '22 at 09:39
  • @PMF Yuuuup: My VS Enterprise subscription was $6000 for the first year - $2000 for subsequent years (that'll shut-up anyone complaining about Adobe), **but** we get perpetual licenses and no requirement for online activation, which I value very much. – Dai Feb 18 '22 at 09:40
  • @CaiusJard That's a point, particularly for beginners. For advanced devs, it doesn't play a big role any more. If I need a tool that's not available for the OS I'm working on, I just fire up a VM and get the task done. – PMF Feb 18 '22 at 09:41
  • @Dai Luckily, those bills get directly routed to our finance department ;-) – PMF Feb 18 '22 at 09:42
  • 1
    @Dai and probably worth every cent, like the mechanic who spends thousands on racks of Snap-on tools because they're a vital part of the job. I think people sometimes forget that with software because it's relatively intangible; they spent money of the physical laptop, but for some reason the software should be free.. (And then they develop software to sell to pay their mortgage.. I still struggle with the logic there) – Caius Jard Feb 18 '22 at 09:43

1 Answers1

1

The difference is purely one of developer convenience. Behind the scenes, VS calls the CLI for you.

I personally prefer UIs over CLIs (C#, Git, ...), but this requires me to learn both. For example when setting up a CI/CD pipeline, I'm still having to use CLI commands to get the job done. When a git rebase runs into conflicts, I open a terminal to fix it.

If you develop using the CLI based approach, then you only have to learn the CLI. This can help you be prepared for the cases where there simply isn't a UI available to help you out.

You don't have to always use the CLI if you prefer working in VS (I do), but don't underestimate the value of having at least some CLI experience for when you need it.

Flater
  • 12,908
  • 4
  • 39
  • 62
  • "VS calls the CLI for you." - this is not strictly true. The _design-time_ environment in VS has an unholy mix of modern, MSBuild-based features which work the same (or almost the same) way they do in VS Code (e.g. Language Servers), there's a lot of legacy (going back to VS 6.0 days) stuff that won't ever be supported by VS Code, like how T4 templates work in VS vs. command-line, or the EnvDTE COM model, etc. – Dai Feb 18 '22 at 09:43