4 ms·
> Okay, where do you start in Learning C#? What do I have to install? What should I install? Visual Studio Community Edition 2019. Done. edit: I would encou
by t-writescode 6y ago
> Okay, where do you start in Learning C#? What do I have to install? What should I install?
Visual Studio Community Edition 2019.
Done.
edit: I would encourage using regular .Net, not .Net Core until they've reached a certain threshold.
- tracker1 6y agoI would consider .Net 5 that threshold... there's no more Core, fyi. As for VS Community, if someone is getting started in C#, I'd suggest VS Code and learning the CLI tool before jumping in on the IDE bandwagon if only to learn the platform better in getting started.
- t-writescode 6y ago> I'd suggest VS Code and learning the CLI tool before jumping in on the IDE bandwagon if only to learn the platform better in getting started. I absolutely hate most CLI tools and C#'s is no exception. I'm happy to say that I have never, in any of my time developing, been in a situation where I absolutely had to use one for C#. It's made me very happy. .csproj's and .sln files are such a better design pattern for project management than raw folders that I wouldn't torment someone by requiring them to learn that alternative model when any good C# IDE will do all of that for them. Same with Java. If you want to require someone to learn everything CLI, then they should probably be learning a different language, to start. In a similar tone, if I was teaching someone Python, I would start them with running `python` and then just ... typing commands. I wouldn't teach them if __name__ == __main__ until later on. Same reason. Unnecessary complexity for the kind of work they're doing. When you start wanting to configure CI on Jenkins (not TFS, because TFS handles all this for you, too), then the command line has any value for C#, imo.
- tracker1 6y agoAnd if you're targeting Docker deployments on Linux? Or have developers on Linux or MacOS laptops?
- t-writescode 6y agoSure doesn't sound like beginner C# questions at this point, eh?
- mikeyjk 6y agoI'm sorry but it definitely does, there are plenty of developers using Linux coming from language set (a,b,c) trying to pick up language 'c'. I would consider myself a beginner for language 'd'.
- t-writescode 6y agoI was specifically thinking about the Docker part of the question when it was asked. I certainly wouldn't encourage the first thing someone does when writing C# be "create an application that will run in a Docker container". Running locally and getting one's feet under them seems like a better first step. It is valid, though, that the Linux development experience for C# is worse overall. If you're using Linux, though, your options are greatly reduced, though, so life becomes easier. You're either developing for Mono or .Net Core. As I wouldn't recommend developing in C# for a Linux developer, in general, though, but that is my bias against .Net Core speaking out. If someone's a Unity Developer on Linux, I would recommend MonoDevelop or whatever Unity's recommended IDE and pipeline are.
- tracker1 6y agoIf you're experienced with other languages, you are... Also, there are plenty of beginners with Macbooks.
- t-writescode 6y agoIs it bad that I would steer someone away from learning C# if they're on a MacBook, unless they're learning Unity? And then I would recommend what Unity recommends.
- tracker1 6y ago
- tracker1 6y agoAlso... "I don't see an option to create a web project." or "Where's the project to start a video game" ... There's lots of bundle options in the VS installer that someone may not understand, and if you install the kitchen sink, you may well fill a 256-512gb ssd. Or... I'm running a Mac.
- deleted 6y ago[deleted]
- Smaug123 6y agoVS for Mac is becoming an actual native app in the upcoming VS 2022, so progress is at least being made there!
- manigandham 6y agoThere is no "regular .NET" anymore. It's just .NET 5, a cross-platform framework that is the next version of .NET Core taking over as the single framework.
- Hawxy 6y ago> I would encourage using regular .Net, not .Net Core until they've reached a certain threshold This is terrible advice. .NET Framework has so many gotchas in its dependency management and binding redirect hell, not to mention ASP.NET 4.x is full of hidden "magic" and serious usability problems. Anyone starting a new project should be on .NET 5/Core, and that's been true since the Core 2.x releases. Also, the generic hosting model[0] is a productivity game changer and gives you a complete batteries-included experience no matter the project type. [0] https://docs.microsoft.com/en-us/dotnet/core/extensions/generic-host https://docs.microsoft.com/en-us/dotnet/core/extensions/gene...
- valdiorn 6y agowoah, I was a pretty expert C#/.NET developer until about 5 years ago, when I switched to Python and C++ for my dayjob. I've not kept up with the ecosystem since then. .NET Core was sort of in its infancy, and we were debating moving over at the point when I left that company, so I've never used Core. but ...I can barely read that page and understand what's going on! This is something I did notice with the c# codebases I worked on; you could date them to the month based on whatever "hot shit" patterns were used by each project. I thought this was normal for every language, but since working on large codebases in other languages, I've found that it's mostly a C# thing (Java has a bit of that too). But man, it's insane how much the language and the ecosystem has changed in 5 years.