Live data from Hacker News

.NET for Beginners (2020)

dusted.codes

101–110 of 192 posts

Re: .NET for Beginners (2020)

#101

This goes on critiquing how C# has a high barrier to entry because you have to learn [insert long list of popular C# frameworks]. But no, you don't have to learn any of those things, you can just start learning C#. Then: "Just think about the upcoming release of .NET 5 and how it will invalidate most of the lessons taught just a few months ago .... the wider .NET community has failed in making .NET a more beginner fr…

> But no, you don't have to learn any of those things, you can just start learning C#.

The problem for a beginner (on any language or platform) is you have to know what you don't need to know. You get overwhelmed with terminology just in the "create new project" dialog. Most of it is not relevant for a beginner, but as a beginner you don't even know what is relevant and what is irrelevant.

Re: .NET for Beginners (2020)

#102
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

Just install newest .NET 5 and type `dotnet new mvc` or `dotnet new webapi`

Re: .NET for Beginners (2020)

#103
post #71

Earlier quoted context omitted.

I'm currently trying to write a windows app and coming from web development (Python/Django and React) it is bewildering. Part of the problem is with web development, complicated as it is, the tutorials at least get you to a complete, working example. The windows tutorials seem to be very piecemeal where you start with a mostly complete app and fill in a couple things, but never get the whole picture. And like in your…

> Now there are four options WPF, WinForms, UWP and Xamarin. Ok...Why are there four options? What are the differences? Are one or more of them about to be deprecated? You're most likely best of picking WinForms. It's old school, but it seems like it's going to be the one Microsoft will have the hardest time killing. WPF, UWP and Xamarin fine frameworks, but for the 0.9X developer who just want a window, with a few i…

VS + WinForms is like the Playschool Windows GUI development kit.

That sounds like talking it down, but I'm not actually.

Good for things like the sales guy wants something that pulls data out of a company database and sticks it in a excel file. And wants it tomorrow.

Re: .NET for Beginners (2020)

#104
post #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 nami…

I appreciate the reply, and I will try that.

However this sentence made me inadvertently laugh, because it captures every bit of confusion I had.

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

#105
post #89

Earlier quoted context omitted.

Gave it a serious go but it still lives inside the Windows + Visual Studio bubble. Trying to use .NET on Linux with Visual Studio Code is pain: .NET developers expect you to learn APIs through intellisense and don't publish API docs, Windows tutorials assume you're running Visual Studio, and a lot of MS's own API docs are bewildering with .NET jargon that you won't understand.

I've been a .NET developer since 2003, I've been on Linux exclusively for the last 2 years. .NET on Linux with Jetbrains Rider, is a far better experience than Windows and Visual Studio. VSCode isn't worth looking at for .NET Development.

I jumped into .NET w/o any background while running Linux - it's not a pleasant experience when you lack the heavy Windows+VS background you've had. Perhaps Jetbrains Rider is better, but at this point you know all the ins and outs of the platforms - a beginner lack that.

Re: .NET for Beginners (2020)

#106
post #97

Microsoft is just so bad at naming things. ".net framework" means versions of .net before version 5. Version 5 is of course also .net and it is a framework, but apparently it is not ".net framework", since this term refers to the versions up to 4.x. Take "Enterprise Framework" (EF) and "EF Core". These are two independent ORM frameworks. From the names you would probably expect either that "EF Core" was the core of E…

The EF Core thing might make a little more sense with some context. It originally started out only compatible with .NET Core (which was the successor to .NET Framework)

Eventually Microsoft came to the conclusion that doing .NET Framework to .NET Core migration in tandem with an EF6 to EF Core migration would be a huge undertaking for legacy projects. So as of EF Core 2.1 they added support for .NET Framework 4.7.2+ so people could migrate that first, then move to .NET Core. Therefore you end up with the weirdness that it was .NET Core only, then eventually it wasn’t, despite being called EF Core.

As for Standard.. can’t help but agree, it was a bit of a mess unless you really understood what it meant for API compatibility. But with .NET 5.0, Standard is pretty much gone for new code. See https://devblogs.microsoft.com/dotnet/the-future-of-net-stan.... So I think Microsoft is slowly learning and fixing up some mistakes made in the “Core” era

Re: .NET for Beginners (2020)

#107
post #89

Earlier quoted context omitted.

Gave it a serious go but it still lives inside the Windows + Visual Studio bubble. Trying to use .NET on Linux with Visual Studio Code is pain: .NET developers expect you to learn APIs through intellisense and don't publish API docs, Windows tutorials assume you're running Visual Studio, and a lot of MS's own API docs are bewildering with .NET jargon that you won't understand.

> Gave it a serious go but it still lives inside the Windows + Visual Studio bubble. I work in a small shop and most of the developers use Visual Studio with Linux or a Mac. Most of the developers that don't bother with anything outside of Windows won't be open sourcing their libs or documenting their stuff anyways. This may have been true back in 2016/7 when .NET Core first turned up but it just isn't true anymore.…

Java projects publish Javadoc which is good - you can sit down and understand an API. It's not the same story on .NET.

> Windows tutorials will expect you to use Visual Studio as that is the IDE that primary IDE of people using Windows.

Yep, hence the bubble. Python doesn't have this problem, for example.

Re: .NET for Beginners (2020)

#108

Earlier quoted context omitted.

> Gave it a serious go but it still lives inside the Windows + Visual Studio bubble. I work in a small shop and most of the developers use Visual Studio with Linux or a Mac. Most of the developers that don't bother with anything outside of Windows won't be open sourcing their libs or documenting their stuff anyways. This may have been true back in 2016/7 when .NET Core first turned up but it just isn't true anymore.…

Java projects publish Javadoc which is good - you can sit down and understand an API. It's not the same story on .NET. > Windows tutorials will expect you to use Visual Studio as that is the IDE that primary IDE of people using Windows. Yep, hence the bubble. Python doesn't have this problem, for example.

> Java projects publish Javadoc which is good - you can sit down and understand an API. It's not the same story on .NET.

Almost all the projects I use with .NET have sufficient docs on their sites. MSDN has the full docs on their site. If there are specific projects that are a problem that are outside of that. Well that is a problem with their project, go and complain to them.

> Yep, hence the bubble. Python doesn't have this problem, for example.

Yes Python does have similar problems. A lot of time people assume you are using a *nix machine and if you aren't then you normally have to faff with some work around. Go has the same problem a lot of things just don't work properly on Windows (at the least the last time I bothered). The same is true with Java, Go, Ruby etc.

As for the tutorials. I've just gone on the ASP.NET site and there is a tutorial for Windows, Linux and MacOS in the tabs on the site.

Re: .NET for Beginners (2020)

#110
post #97

Microsoft is just so bad at naming things. ".net framework" means versions of .net before version 5. Version 5 is of course also .net and it is a framework, but apparently it is not ".net framework", since this term refers to the versions up to 4.x. Take "Enterprise Framework" (EF) and "EF Core". These are two independent ORM frameworks. From the names you would probably expect either that "EF Core" was the core of E…

The EF Core thing might make a little more sense with some context. It originally started out only compatible with .NET Core (which was the successor to .NET Framework) Eventually Microsoft came to the conclusion that doing .NET Framework to .NET Core migration in tandem with an EF6 to EF Core migration would be a huge undertaking for legacy projects. So as of EF Core 2.1 they added support for .NET Framework 4.7.2+…

I guess the whole .net core mess made sense in the beginning, it just got out of hand.

As I understand it, core was conceived as an experimental alternative runtime which made it possible to run asp.net on non-windows platforms. It was not initially planned to be the replacement for full .net framework, so it didn't need to be fully backwards-compatible with the regular framework, which saved them some effort in the beginning. When the strategy changed to make core the next version of .net, the incompatibilites was so entrenched it was too late to solve, so we ended up with this enormous mess.

Post reply on HN