Live data from Hacker News

.NET for Beginners (2020)

dusted.codes

61–70 of 192 posts

Re: .NET for Beginners (2020)

#61

Earlier quoted context omitted.

Is 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.

Depends on why they would be learning C# I do most of what I do with C# in WSL with VS Code (WSL Remote) ... because that's where I do most of my Programming. Where I work, pushing towards most of what we write to be able to deploy/operate in Linux/Docker environments. Doesn't make C# less of a language for the teams that have over a decade of experience with C#, but it is a mindset shift. The bigger issues I have ar…

Per the last versions of .net vs .net core that I worked with (4.....6.2(?) and .net core who even knows), I definitely agree with the frustrations.

That's a major reason why, when I answered the top question, I was responding in a way to reference a new developer. I don't think they should be required to think of all of that hell, so I just wanted to point them to a particular library and to just live with it until they're asking the hard questions and have to move to something more complicated. For beginner-beginners, that shouldn't happen for a while.

Someone higher up said that this post should have been titled something like .NET for Professional Beginners, developers that already have a lot of experience and are wanting to develop a single, specific, advanced usecase, or a use case where they are required to work with .net core, it was like that.

I ran into something similar at my present job, trying to set up a webserver in Kotlin. It reminds me a lot of the woes I have with .net core with the numerous, almost adjacent, but not quite in the same package gradle packages.

At this point, I'm not sure there's very many batteries fully included languages left. C# was kinda the last bastion of it. Elsewhere someone, maybe you?, referenced PHP, but even that isn't batteries included. The only batteries included are the ones that PHP is good at, webservices.

Python is all about packages, and it just went through async hell, where the syntax for async changed over and over again over each version, so Google searching, as you mentioned struggling with in other threads, can be painful there, as well.

Ruby requires you to learn Rails (which isn't Ruby! it's written in Ruby but not part of the base framework!)

...

I guess Go is probably the closest to general purpose with its default framework.

Re: .NET for Beginners (2020)

#62

The complaint around all the different concurrent iterations of .NET rings true to me. It used to be that you only needed "current version of .net" and then you just ran forward with all of the standard libaries and Visual Studio handled all of that for you and it was wonderful. Now you need to work with .NET Core and download a bunch of disjoint nuget packages to make everything work; and, then you download a specif…

It got a lot better in .NET Core three when they stopped using Nuget packages for the core framework works. Now building and updating apps based on just the core frameworks no longer installs and restores Nuget packages. This makes it faster, simpler, and takes less space on disk. You probably still will have more Nuget packages in your ASP.NET Core project than a classic .NET Framework project would. Details about t…

I'm really glad they stopped that. Adding, I think it was Owin (part of the .net core framework), and then being required to update to a new version of the ... collections api? it's been a while, clearly, was one of my "... seriously?" moments when working with migrating to .net core last.

Re: .NET for Beginners (2020)

#63
post #21

I'd like to see some data around the central claim. Is C# really that hard for beginners? I watch a lot of beginners on twitch (for several years now) start with C# and almost zero idea about programming. They all seem do pretty well, whether they are learning unity, winforms, web dev. They don't even stop and wonder any of the issues discussed in the article, they simply make the project type they want in visual stu…

> Is C# really that hard for beginners?.

No data but from a lot of anecdotal experience I don't believe so - quite3e opposite.

I've never seen beginners (interns generally) or non-C# programmers (adept at other languages) come up to speed and start meaningfully contributing to projects on any other language other than C#.

With other languages (I've worked with) this just isn't true. I've never seen anyone but the most prodigious pick up C++, Java, JavaScript as quickly in professional contexts.

IMO C# is such an easy on-boarding languages that when hiring into C# teams it's not even a factor considering a candidates particular language experience.

As much as this is due to the language and well-organized libraries I think the tooling is just as much to thank. The dev experience in VS with a copy of ReSharper installed is unparalleled in software engineering.

Re: .NET for Beginners (2020)

#64
.NET carries a lot of baggage, but .NET Core is absolutely awesome. I would really encourage everyone to give it a try. I have personally used Blazor and its really good. Not to mention building WebAPIs with ASP.NET Core and EntityFrameworkCore.

Most of your dev needs will be met by .NET Core.

Re: .NET for Beginners (2020)

#65
post #21

I'd like to see some data around the central claim. Is C# really that hard for beginners? I watch a lot of beginners on twitch (for several years now) start with C# and almost zero idea about programming. They all seem do pretty well, whether they are learning unity, winforms, web dev. They don't even stop and wonder any of the issues discussed in the article, they simply make the project type they want in visual stu…

I don't think C# is hard for beginners. I monitor the Git repository of our Infrastructure Team and they develop small tools in C#.NET really easily. None of them would claim to be programmers or have any formal training as such. The tools they make are simple but sophisticated in what they accomplish and interact with. The article makes a good point but 90% of is irrelevant to a beginner. Open Visual Studio, pick yo…

The biggest issue I had picking up C# over the last year (and still have) is figuring out the MS ecosystem. There’s three different frameworks for everything, all of which are either incomplete or to be deprecated.

Windows-only desktop app is the latest to confound me, let alone cross platform.

The .NET variants confused the hell out of me for the longest time until I just sat on Wikipedia and read the whole damn history, because every variant and version seems to be in play simultaneously

Re: .NET for Beginners (2020)

#66
post #32

I agree with all of the above. I love C# as a language having used it in Unity in the past. I wanted to try to a server backend with it, but I was lost as to which framework to use (ASP.net / .NET Core / .Net 5) so I ended up choosing neither. Which is a shame, because I really really like the language

> I wanted to try to a server backend with it, but I was lost as to which framework to use (ASP.net / .NET Core / .Net 5) so I ended up choosing neither.

The new C# tutorials have solved a lot of this issue just by completely skipping over the legacy parts of .NET (.NET Framework & ASP.NET) and using the CLI to create a new project.

You install .NET 5 (for context, it's just a newer version of .NET Core with the naming realigned), and then write `dotnet new webapi` which will create a new ASP.NET Core API project.

Re: .NET for Beginners (2020)

#67

Earlier quoted context omitted.

I will agree and disagree... a lot of things around the edges really do change between versions of .Net .. while C# is pretty progressive, the .Net framework does have some rough edges if you're either inexperienced, or have tended to hold on to a version for too long and now need to jump ahead a version or two. The evolution of .Net Core (now just .Net 5) has been interesting and at times very painful.

The evolution of .Net standard, core, and framework has been mind boggling and difficult. I’ve lost track, and I don’t even know how to keep tabs on this any more. Too much information. I envy the greenfield developers who can start with .Net Core or .Net 5.

For those that care, Framework is the old original .NET for Windows; Core is the new multiplatform .NET; Standard was an, ahem, standard, for writing code that would work under both Framework and Core.

Since the release of .NET 5 "unifies" Framework & Core (for some value of n), there is no longer a need for Framework, Core, nor a unifying Standard.

Re: .NET for Beginners (2020)

#68

Earlier quoted context omitted.

Mono was created by Miguel de Icaza, a Mexican (Now Mexican-American) programmer. Microsoft had nothing to do with it. Novell purchased it. Eventually Microsoft warmed up to it. Miguel de Icaza now works at Microsoft.

Mono was an implementation of the CLI ... the "Design" of the language, and CLI were absolutely designed to be cross-platform.

You've gone from saying "C# and .Net (CLR) were absolutely written/meant to be portable" to "CLI was absolutely designed to be cross-platform." I feel you are not arguing in the spirit of my assertion that "C# was never intended to run everywhere" Sure, it was designed cross-platform so it would run on Dos/Windows ME and Windows NT.

Re: .NET for Beginners (2020)

#69
post #21

I'd like to see some data around the central claim. Is C# really that hard for beginners? I watch a lot of beginners on twitch (for several years now) start with C# and almost zero idea about programming. They all seem do pretty well, whether they are learning unity, winforms, web dev. They don't even stop and wonder any of the issues discussed in the article, they simply make the project type they want in visual stu…

> Is C# really that hard for beginners?. No data but from a lot of anecdotal experience I don't believe so - quite3e opposite. I've never seen beginners (interns generally) or non-C# programmers (adept at other languages) come up to speed and start meaningfully contributing to projects on any other language other than C#. With other languages (I've worked with) this just isn't true. I've never seen anyone but the mos…

It’s been a long time, but having been a student working on a .NET project with no C# background, I’d say that for me it had less to do with the language than the discoverability of language features through Visual Studio.

Re: .NET for Beginners (2020)

#70

Earlier quoted context omitted.

Okay, where do you start in Learning C#? What do I have to install? What should I install? Even those are complex questions with a few answers. I started with C# two decades ago with the command line compiler and a very large book. There was really only a single option, and since I didn't have MSDN access, no beta VS for me. Today, I would suggest that a developer start with .Net 5 and VS Code, with the extension ins…

> 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.

> 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/gene...

Post reply on HN