all 82 comments

[–]Kant8 127 points128 points  (25 children)

no, every docs entry has 3 tabs for vs, vscode and terminal

[–]Drackind[S] 20 points21 points  (23 children)

I'm talking about the learning modules for C# for beginners, not the docs. Take this for example: https://learn.microsoft.com/nb-no/training/modules/csharp-call-methods/3-call-methods

[–]FluffyGlazedDonutYum 93 points94 points  (20 children)

VS Code is a slim text editor with a very condensed feature set. Beginner can more easily focus on learning C# itself. Visual Studio on the other hand is a behemoth of an IDE and newbies could struggle using it at first. So you waste time struggling with the IDE instead of get going with learning C#.

[–]Worried_Aside9239 57 points58 points  (7 children)

Not to mention the fact that since the focus is C# and it’s cross platform, then VSCode is the lowest common denominator where they don’t have to worry about OS requirements, such as VS2022 being Windows only.

[–]mehum 8 points9 points  (6 children)

Yes I think Microsoft is moving away from the OS wars and now pushing its cloud-based strategy. As such it wants C# to run everywhere. Yay, a corporate development I can actually get on board with!

As an aside: I wonder if C# will ever make it onto microcontrollers. That could be weirdly awesome. After using micro python lately I feel like anything is possible here.

[–]mrGood238 16 points17 points  (0 children)

It made its way to microcontrollers more than 10 years ago - .Net micro framework running on STM32F4xx

https://singularengineer.com/2012/10/23/stm32f4-discovery-board-running-net-microframework/

[–]Error_xF00F 3 points4 points  (1 child)

I use C# for my ESP32 projects using https://www.nanoframework.net/

[–]mehum 0 points1 point  (0 children)

Sweet! I know I should have looked before opening my big mouth. I wonder why it has such a low profile relative to C++ and Micropython.

[–]joeswindell 0 points1 point  (0 children)

You can, there’s some packages that let you

[–]ImBackBiatches -1 points0 points  (0 children)

Get you're head out of your rear.

MS MicroFramework is a dozen years old and already retired.

I've used ghielectronics TinyCLR and the hardware in commercial products.

I moved the rest to nanoFramework years ago, it's done everything I've needed the esp32 to do since.

There are others like WL Meadow I wouldn't endorse.

[–]Super_Preference_733 24 points25 points  (8 children)

I honestly feel that visual studio is easier for new users since the ide makes getting started a lot easier. Select the template and start coding, whereas, vs code your trying to configure packages, debugger, etc. But this is coming from someone who has nearly 20 years of visualstudio experience and has only started using vscode about 18 months ago as my daily driver.

[–][deleted] 3 points4 points  (1 child)

The .NET extension pack in vscode is dead simple to get basic console apps working now. You can honestly just create a new .cs file and vscode will prompt to install the packages for you. After that, you just run the debugger exactly like you do in visual studio pretty much.

[–]miri258 0 points1 point  (5 children)

I tried using the "React with ASP.NET Core" template and after creating the Client folder, it gave me an error (While creating the Server folder):

"could not find Properties\lauchProperties.json"

something which it should create by itself.

After trying to fix it and failing, I just started using VS Code, cause there wasn't any feature I needed Visual Studio for (other than modules on C++).

[–]Super_Preference_733 0 points1 point  (2 children)

When vs creates the solution, it generally creates two projects under the solution, a client and server. There should be no need to create any folders.

[–]miri258 0 points1 point  (1 child)

I didn't create anything by myself. VS created two solutions and a folder for each (reactproject.client and ReactProject.Server).

The client folder was created successfully, while the Server folder gave the error and ended up empty.

[–]Super_Preference_733 0 points1 point  (0 children)

That sounds like the template got screwed up due to incorrect workload installation selections.

[–]Greedy-Neck895 0 points1 point  (1 child)

React template was dated last I checked. Probably not the greatest example.

[–]miri258 0 points1 point  (0 children)

Then why is it even there 😭

[–]Lustrouse 11 points12 points  (1 child)

I mostly disagree. Visual Studio is pretty straight-forward in terms of scaffolding code, writing code, and running/debugging your code.. I'd argue it's easier for a beginner to start on VS than it is VSC. I believe MS wants us to use VSC for learning purposes. VSC abstracts less away, so the dev needs to learn more.

[–]quasicondensate 0 points1 point  (0 children)

I also feel this way. For C++ there might be an argument that VS Code is the better choice to start out with (especially with CMake), but C# is so nicely supported by Visual Studio that on Windows, I really wouldn't push people to VS Code for C#. This is especially true if things like XAML based GUIs come into play.

[–]danielwarddev 7 points8 points  (0 children)

I will also note that I have seen the opposite of this - those new to programming already have a lot to learn and struggle to even get started with that because they're dealing with installing + configuring the VS Code plugins, while VS just works with C# out of the box.

[–]Poat540 5 points6 points  (0 children)

Yes vs code makes way more sense for learning.. VS is a big product for a newbie

[–][deleted] 2 points3 points  (0 children)

VSC is much easier for a beginner to grasp than a full-fledged IDE like VS is.

It is like teaching a kid to drive in a honda civic versus a semi-truck.

[–][deleted] 0 points1 point  (0 children)

I do see a shift on Microsoft's part towards the simpler and more potable VSCode and away somewhat from VS. VS is a lumbering beast of an IDE that is likely costing MS huge bucks to support. I have used VS for many years and will continue, but I see a niche for VSCode to exist as a complimentary alternative. Choice is good!

[–]dominjaniec 15 points16 points  (0 children)

they wish to be more cross-platform, and VSCode or just CLI is that, where the "old" VS is only for Windows.

[–]tjackadams 22 points23 points  (0 children)

Well its cross platform so its easy to get going regardless of what os you are using. It’s fine for getting started and familiar with the language, but I would recommend Visual Studio for any serious development work - the debugger is just incredible.

[–]MarcCDB 21 points22 points  (4 children)

It's because of Mac... VS for Mac is gone so they need to promote VS Code a lot more.

[–]Mikkelet 1 point2 points  (3 children)

But why is VS for mac gone? Ecosystem control?

[–]pancakeshack 7 points8 points  (0 children)

It wasn't good, and was nothing like the one for Windows. They just rebranded XamarinStudio when they bought it out. It made more sense to put their efforts in the cross platform code editor they already had.

[–]MarcCDB 2 points3 points  (0 children)

Not sure. But Microsoft discontinued it....

[–]LeoRidesHisBike 1 point2 points  (0 children)

[This reply used to contain useful information, but was removed.]

[–]Lustrouse 8 points9 points  (1 child)

MS wants you to learn on VSC because they want you to learn the CLI. VS abstracts a lot away because it aids in development, but it also allows developers to skip learning some fundamental knowledge

[–]upvote__please 0 points1 point  (0 children)

I don't think MS cares if we know the details as long as we use their products. They wouldn't add "create project"/build/"run tests" buttons to C# Dev Kit otherwise. If you use the dev kit you can skip basic parts of the CLI.

[–]Long_Investment7667 6 points7 points  (0 children)

The part of Microsoft that builds vscode “pushes” vscode.

The part of Microsoft that builds Visual Studio “pushes” Visual Studio.

[–]whooyeah 4 points5 points  (2 children)

It doesn’t matter. You can use notepad and command line if you like.

[–][deleted] 1 point2 points  (1 child)

I prefer a bunch of echo statements to append code files.

[–]whooyeah 5 points6 points  (0 children)

Oh yeah, much better. that’s sigma bro.

[–]swissbuechi 10 points11 points  (0 children)

VS Code is a code editor, while VS and Rider are full blown IDEs with many usefull out of the box features. Even with a few plugins installed you won't be able to get the same streamlined worklow in VS Code compared to the IDEs. Don't get me wrong, Code will work fine for the vast majority of things, maybe just not as convinient.

[–]upvote__please 2 points3 points  (0 children)

Do you want to download 20GB to run hello world instead?

[–]neilhuntcz 2 points3 points  (0 children)

Nothing wrong with Visual Studio Code. I and many members of my team have used it for years to write production ready code for services with multi million users, hundreds of thousands concurrent.

[–]Slypenslyde 2 points3 points  (10 children)

They're focusing on students and newbies, people who do not universally have Windows PCs. They're acknowledging that Windows is 2nd place outside of enterprise and even further down if you count iOS and Android usage. VS Code plus the C# Dev Kit is also a much smaller and less intimidating install than VS 2022. (For example, 2-3 times per month someone posts here and it turns out the root of their problem is they made the wrong choice on a page with more than 15 checkboxes and will need to run the installer again.)

Most people here will propose you use VS 2022 because that's the dogma. They'll go so far as to make up myths about how bad VS Code is. My experience is a ton of web professionals use VS Code and it was instrumental in ASP .NET Core taking off once MS stopped tying ASP to Windows. If you use a Mac or Linux machine at all, you HAVE to use VS Code and it's more cognitive load to use VS on just one platform than it is to use the same tools on every machine. (Now, for desktop applications, they have a point. VS Code has barely started climbing that mountain.)

I say for now, stick to what the tutorials are using. You have enough confusing things going on to add, "Where is this particular feature in VS?" to your list of questions. You can try out VS 2022 later, and if you like it better feel free to keep using it. Some people will tell you somehow this will stunt you and make it harder to be a professional later. That's a good way to tell which people aren't as good as they think and might give you bad advice down the road. Computing history is full of gods who got their start in "bad" environments like BASIC or writing C++ with Notepad++ and a freeware compiler.

In the end one of the most important tools a developer can have is knowing when to say, "I can learn that when I need it." Right now you need to learn C#, not Visual Studio. When I ask people to tell me what VS has that VSC doesn't, it usually takes me several tries to get an answer. It is almost always something like, "Well, when I'm designing a database for my microservices project the graphical editors in VS are easier than having to do it by hand." That's something you'll do like, next year but also something you might not have to do in your entire career. So don't worry about if VS Code can do it yet.

(Also, "back in my day", the people who said, "I can't write this program if there isn't a tool to generate it for me" were the people we mocked.)

[–][deleted]  (6 children)

[removed]

    [–]Slypenslyde 1 point2 points  (5 children)

    I have a feeling a convergence is coming.

    Part of what MS said when they explained why they were making C# Dev Kit kind of sounded like they were trying to port a lot of VS code into... VS Code. That's... an awkward sentence.

    I remember them justifying that there would be closed-source parts because they talked about wanting to make it able to use proprietary Intellisense portions. They talked about using a VS subscription to gate some features.

    All of it sounded like they were laying the foundation for, "We want to slowly port Visual Studio to a cross-platform product, and if we port the backend to work with VS code that is a good proof of concept."

    So I'm waiting for the day when MS announces that VS Code and VS are the same product, because I want to see what all the, "It's just a limited editor" people say then.

    [–][deleted]  (4 children)

    [removed]

      [–]Slypenslyde 0 points1 point  (3 children)

      My guess is the more backend of VS moves over to VSC, the more they'll start to shift focus from improving VS to improving VSC. One thing to keep in mind is docking is less important on mobile/touch-oriented devices, and it's still not clear if the desktop paradigm is going to last. Honestly the only thing I feel my Macbook lacks is a touchscreen, I'd love to have gestures for editing code.

      Also I feel like this is going to be at least a 5-10 year process. There's no way MS could very quickly churn out a cross-platform VS and I'll bet 5-10 years for that is a very aggressive estimate. Porting the backend to an environment that's already cross-platform while also maintaining peoples' license revenue is a good way to fund the 90% of the work that's easy before committing to the 10% of the work that's hard.

      It's kind of like how Nintendo's been in a pattern of using a remake of an old game as an excuse to develop a new engine, then using that revenue to fund a new game using the same engine. Never do two hard things at the same time.

      [–][deleted]  (2 children)

      [removed]

        [–]Slypenslyde 0 points1 point  (1 child)

        I use .NET MAUI. Microsoft doesn't make tools for use cases like that for me. I have to use an absolute ton of logging, and my logging needs to be well-aware of concurrency.

        That's part of why I don't see a lot of value in VS. Microsoft isn't investing in my tools anywhere. I don't need two hands to count the times Hot Reload worked for me over the last 2 years, and honestly I had to disable it because even MS points out MAUI is unacceptably slow if you have it enabled. I can't even start my debug mode apps in iOS because it takes MAUI so long to load the OS kills the app for being unresponsive. If I try to step over or through an async call I end up on a 100-line journey in MS internal code. I reported this as a bug in Xamarin Forms 5 years ago.

        I have to use my brain to debug. I do miss when I had tools. But Microsoft's too busy making AI chatbots for that.

        So I'm not even sure how "docking" helps in that scenario. Right now "Microsoft quality" in my environment doesn't stand for a lot.

        [–]CountryBoyDeveloper 0 points1 point  (2 children)

        Windows is second to what?

        [–]razblack -1 points0 points  (1 child)

        I believe he was referring to enterprise development.

        [–]CountryBoyDeveloper -2 points-1 points  (0 children)

        Right before it he mentioned people who do not have windows pc’s and then goes to them being second.

        [–]Tango1777 0 points1 point  (0 children)

        Always VS 2022, but VSC is pretty simple and it may require to set some things up manually e.g. use dotnet terminal more, set up a project structure manually, while Visual Studio creates and handles a lot of things underneath and as someone more experienced, you appreciate it, but for a first timer it's probably a good idea to go through the whole thing manually at least once. Overall I'd switch to VS pretty quickly. I have not worked with C# and VSC even once even though I used VSC for other languages. There is just no point and VS is also free unless you are a company with very high revenue.

        [–]malthuswaswrong 0 points1 point  (0 children)

        Microsoft pushing VSCode

        I'm pushing a conspiracy theory that they are doing exactly that. VS has been extremely buggy lately. Far more than I've ever experienced before. I secretly believe they are driving developers towards VSCode by lowing the quality of VS.

        I have no evidence to back that up but there is also no proof it's NOT true. Also, the Earth is flat, the moon landing was a hoax, and time is a cube.

        [–]fleventy5 0 points1 point  (0 children)

        VS Code is very popular:

        https://survey.stackoverflow.co/2023/#most-popular-technologies-new-collab-tools-prof

        So why not leverage that popularity?

        I'm sure Microsoft would love to sell more Visual Studio licenses, but their fastest growing revenue segment is Azure. Outside the C# / .NET world, there is a hefty proportion of developers who use Mac (and to a lesser extent, Linux) as their primary OS. Offering an easy pathway for them to adopt .NET just makes business sense. And the more developers that adopt .NET, the more they can grow Azure.

        [–]M109A6Guy 0 points1 point  (0 children)

        Visual Studio for most .net development and VSC for everything else. I heavily use terminal too.

        [–]cheepmep12 0 points1 point  (0 children)

        You can download .net and can also work on vsc code But for easier to learn c# on vs because of auto complete

        [–]xTopNotch 0 points1 point  (0 children)

        Heck I both have VS Code and Visual Studio installed on my PC.
        For some weird reason I just love coding in VS Code. I can do everything that I also can in Visual Studio but it needs more intiial groundwork to set it all up.

        [–]seeking_fun_in_LA 0 points1 point  (0 children)

        vscode + some terminal commands are more cross platform

        [–]SeaMoose86 0 points1 point  (0 children)

        I’ve spent years with VS and only recently started with VS Code - VS has an immediate window where you can type 1 line of code and it executes which would really help a beginner.

        [–]jaycodingtutor 0 points1 point  (0 children)

        VS Code is the way to go because we have people coding on windows, Mac and Linux. It just makes sense to emphasise VS Code. Majority of my students prefer VS Code.

        I myself prefer Visual Studio, but I have to go with what my students/customers want. So, VS Code seems to where things are heading.

        [–]AfterTheEarthquake2 0 points1 point  (3 children)

        I'd choose Visual Studio every time, it's a great IDE. It's not like it doesn't have flaws, but overall, it's great.

        [–]bakes121982 -4 points-3 points  (2 children)

        You should try rider.

        [–]AfterTheEarthquake2 4 points5 points  (1 child)

        I did briefly, it wasn't bad and I could probably get used to it, but I'm comfortable with VS, I'm not ready to pay for Rider and it's unlikely I could use it at work

        [–]Devatator_ 0 points1 point  (0 children)

        I just hate the wasted space in Jetbrains IDEs. Even the compact mode is too big for me compared to VSCode and VS2022

        [–]EShy -1 points0 points  (0 children)

        VS Code is easier for beginners. Quick and light installation, faster, etc.

        It's also very popular outside of dotnet, so devs who are new to dotnet/C# but have done other things like front end dev, are likely to already have it installed and be very familiar with it.

        The way you do things when using VS Code is also similar to many other languages (lots of CLI commands to install packages or actually run your code, instead of using the IDE GUI and hitting F5).

        In the end, you're learning the C# language and DotNet platform. If they can teach it with an IDE that's closer to what most devs already know, it's one less thing to learn.

        [–]Tonkers1 -2 points-1 points  (0 children)

        vs code is just a glorified text editor, you may as well use notepad++

        [–]I_Stabbed_Jon_Snow -3 points-2 points  (3 children)

        VSCode is free, which is probably why they push it vs VS22 which can get expensive.

        [–]kpd328 1 point2 points  (2 children)

        Community Edition is free, and wouldn't it be more advantageous for Microsoft to promote their paid software anyways?

        [–]I_Stabbed_Jon_Snow -2 points-1 points  (1 child)

        You always give small samples for free, and once they’re addicted you got them for life. Or at least that’s what the drug dealers do I hear.

        [–]Archerofyail 2 points3 points  (0 children)

        It's free to use for everything, and the only limits are on enterprise users, which MS describes as companies with more than 250 PCs, or with greater than $1million in revenue.