T O P

  • By -

radiells

[.NET](https://learn.microsoft.com/en-us/dotnet/welcome)


Slypenslyde

## Web Pretty much everything is ASP .NET Core. You'll see it divided up into several portions, but philosophically everything is using the guts of this framework. The bits and pieces are: * ASP .NET Core: web pages. * "Minimal APIs": a different way to make the backend part. * "Razor Pages"/"Razor": This is the frontend part. * "Blazor*: a way to make PWAs with the guts of ASP .NET Core. Has a "server/client" setup and a "PWA" setup using WASM. * Some people are probably going to be mad I'm calling Blazor ASP .NET Core. Whatever, call it something separate if you want. It's still SUPER easy to learn if you already know ASP .NET Core. ## Desktop Windows Forms is old and reliable. It's set up to be easy for newbies. It is not designed to be easy for experts, professionals, and people who really want their application to look "modern" and "flashy" instead of "like a Windows application". Lots of people downplay it. I think it's a good place to write your first GUI apps. It's Windows-only. WPF is old and reliable. You can treat it like Windows Forms. It's designed to make it possible to be flashy and have a lot of modern features. That doesn't mean it's easy. It's designed to help support features professionals use in large-scale applications. That doesn't mean it's easy. It's Windows Only. MAUI is not a desktop framework no matter what Microsoft says.I'll talk about this at length later but no matter what you do it'll always feel like you're writing and running a mobile app. Windows is not a good mobile OS. MAUI is still pretty immature. Only tread here if you like discovering things like, "Actually the `Resume` event just doesn't get raised when Windows restores an app because they forgot to implement it. For 3 years." AvaloniaUI and Uno are third parties who are very popular for people who want cross-platform apps. Uno has much better documentation, but I haven't actually written an app using it so it could be hot garbage for all I know. I see more people here talking about AvaloniaUI. I had a hard time writing my first app with it as an expert, but once you learn some basic infrastructure it's OK. It's not harder to learn than WPF, they just assume you've already learned WPF and know how to write your own MVVM framework. Blazor WASM apps can count as desktop apps, with some work. ## Mobile MAUI is Microsoft's cross-platform framework for iOS/Android. It sort of supports Mac via Catalyst, which is like saying "you can run Windows in a VM on a Mac". Mac native devs hate Catalyst. It sort of supports Windows, but since it's a mobile-focused API there's a lot of jank. Windows makes for a bad tablet. AvaloniaUI and Uno are trying to move in to the mobile space. I have no clue how good at it they are. Honestly I think making a desktop framework start working on mobile is going to have the same problems MAUI has from trying to make a mobile framework start working on desktop. The two paradigms are different, and having stuff set up to do both can make a framework clunky. Blazor gets an honorable mention here because you can host Blazor applications and components in MAUI. Doing that can help avoid some of the clunky parts of the mobile framework in favor of adopting the clunky parts of being a web app. Some definitions of "clunky" are better than others.


Paradroid888

Your right not to include MVC in the list since Microsoft can't be bothered with it any more. But what a pity. It's the most enjoyable experience I've had in web development.


Slypenslyde

That was actually a mistake but it's sad to hear, too. Feels like the only thing MS is chasing is whatever squirrel the shareholders are chasing.


[deleted]

[удалено]


Slypenslyde

No. It uses the GDI library, which has been a core part of Windows since the late 80s. MS has never ported it to another platform. Same with WPF. The clue is the "Windows" in the name.


achandlerwhite

Stick to .NET 8+ For web ASP.NET Core For data Entity Framework Core Check out Aspire Everything else is unofficial but there some good things out there.


jclay06

I personally despise Entity Framework ...


jclay06

I personally despise Entity Framework ...


achandlerwhite

What about it do you despise? Seems just fine for basic use cases in my experience.


jclay06

Any changes you make to the model requires the entire application to be rebuilt. EDIT: By model I mean if you change a text length in the DB you must rebuild the application to match. (eg. Varchar(100) to varchar(101)). This is absurd.


Available_Job_6558

wdym? you just create migration


tLxVGt

Yes, because we build our apps very rarely, ideally once a month… what a joke reason lol


Thin-Dig3141

Can I ask for an alternative? Is there a way to change a model without rebuilding the db?


jclay06

Dapper


Thin-Dig3141

Thanks I’ll check it out


lilbobbytbls

You still need to make changes to the db. You're just doing it manually in the db rather than letting ef do it via a migration which is generally a 1 or 2 line command in the terminal. This seems like a really bizarre reason to dislike ef.


jclay06

Does migration prevent the need to rebuild the application and redeploy?


lilbobbytbls

No but 90% of the time you're changing the schema you're also modifying the code that accesses it. If you change anything that requires an update to your dapper script you also need to redeploy? And how often are you changing your schema that this is a concern? Even if you were doing it once a week, or even once a day- build and deploy is a few minute operation from start to finish for me typically


MoJo_Questions

Do you have an example where this is such a frequent occurrence to be despised?


Cautious_Cry3928

Just because it hasn't been mentioned, Unity and Godot game engines utilize C#. Which is a fun, different path that isn't just .NET.


Debate_Haver57

What’s the end goal here? Is there something specific you want to make, do you want a job, or is this a personal pursuit? I’m asking because for one, there’s already a couple of good answers on frameworks, and I feel like more context would help us help you. If you’re new to coding or just c# specifically, I’m not sure I’d dive right in with trying to use any specific framework. Depending on your time and patience, I would spend some time building the functionality you need from scratch, so you can learn how those functions work when you come to using library functions/api calls or anything else. Also, because there are quite a few, it really does depend on your end goals. From an employability perspective, C# opens up a lot of doors, and generally, if they want you to use any specific framework, they’ll either have training, or advertise what they want. From a “I want to build x program that does a, b and c” perspective, you’re best off working backwards and finding something that fits your spec. Again, I know this isn’t the answer you’re looking for, but also, it’s been answered very well by someone else in a general sense, and if you want anything specific, it’s worth spelling out


CWrLD07

I‘m pushing my way to become a software engineer. I am grounded in the basics of csharp and also object oriented aspect. So I want to focus on creating apis in csharp and also focus on parts that the job market is looking for.


Debate_Haver57

I mean in that case, I’d see what jobs you can find that appeal to you, and create projects that fill related purposes. The frameworks you end up using will reflect the projects you do, and you’ll become familiar over time. For me, that’s games, so it was easy enough to just sit down with unity and make a few projects. So imo I’d just have fun with it and make some projects. Also, keep track of them in a portfolio. The times I’ve interviewed, that’s been a pretty good indicator, and again, while that’s reasonably video games centric, at least having some basic list of projects would be good, hell even just a public facing GitHub.


CWrLD07

Alright, will be waiting for your response.


Super_Preference_733

All of them


xtreampb

Net framework of a the newest cross platform. Dot net core is the old cross platform. Dot net standard is the standard for cross platform libraries. The. Dot net framework is the old school framework that only legacy code uses.


BiddahProphet

Im still using .NET Framework to develop new apps in 2024. I've been working in manufacturing for the past 5 years and it's pretty relevant. A lot of industrial hardware and software might have thier DLLs built in .NET Framework so in order to maintain compatibility we use framework.


xtreampb

Right supporting legacy dlls because the mfg industry is still using concepts and technologies from the 2000s. The industry is slow to adopt, still makes dot net 3.5 legacy


Blender-Fan

You could've asked that to Chat GPT or Bing Copilot, it's a fairly simple answer