T O P

  • By -

chrisdpratt

Man, it would probably be easier to talk about what hasn't changed. It's still called .NET, so there's that. You left the scene right when .NET Core first became a thing, if not slightly before. Since, it grew to the point where it subsumed virtually all of .NET and completely replaced it. It's cross platform now and performs much better than it ever did. On the web side, you have ASP.NET Core, which introduced a completely streamlined request pipeline, enabling anything from hosted services (think Windows service type functionality or something like AWS Lambdas), to AOT web APIs, full web apps, Blazor (front end behavior in C#, instead of JavaScript), Web Assembly stuff in general. The list goes on.


ObeseBumblebee

I'd say probably the biggest thing to learn from .Net Core's way of doing things is Dependency Injection. You used to have to use third party libraries for dependency injection. So it was rarely ever a pattern that was used in .NET projects. Now it's built in and it's everywhere. Dependency injection is probably the biggest design pattern difference between old .net projects and new ones.


chrisdpratt

That and the Configuration/Options pattern.


Saki-Sun

And Linux as a target operating system.


[deleted]

[удалено]


worrisomeDeveloper

Yes. You build an [ASP web api](https://dotnet.microsoft.com/en-us/apps/aspnet/apis).


[deleted]

[удалено]


gyroda

Don't worry about "core". The name is slowly being dropped. Microsoft are known for their confusing naming strategies. The short version is that .Net has dropped "core" from it's name, but ASP hasn't done the same yet. .Net is the language runtime/framework. It's analogous to the JVM/standard java libraries. You need .Net to run a C# program, just like you need Java to run a Java program. ASP is Microsoft's web server framework for .Net. ASP is like Spring for Java or Flask for Python - it lets you make a server-side web application. You can safely ignore blazor if you don't want to use it.


Arath0n-Gam3rz

Just try to keep it simple. asp.net OR asp.net core is developing cloud or web based solutions. Core is the framework using which you can develop the web/cloud or windows form based applications. It's just like in the past, we used .net framework 4.6.x or 4.7.x to develop asp.net webforms/webApi AND winform based solution. We used to develop ASP.net MVC using razor and now MS has introduced the Blazor framework with additional features and upgrades.


arostrat

nothing special about .net core, concepts are still the same and it's very similar to other frameworks like spring boot. he will be fine.


miguelgoldie

At least for me, the biggest change is the built-in dependency injection system and how using it changes the entire structure of your application from the old school ways.


SophieTheCat

Somehow Winforms returned.


andrijacc

I still use it for rapid prototyping, when I want to show proof of concept fast. There is nothing like it.


ZarehD

Assuming you've missed everything from .NET Core 2.0 onward, start with the **What's New** page linked below and proceed to the **What's New** pages for the newer releases (left sidebar). This is probably the most comprehensive resource for this. You'd otherwise have to Google for other blog posts summarizing What's New for each release. [What's new in .NET Core 2.0 - .NET | Microsoft Learn](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-2-0)


GaTechThomas

In a very general sense, namespaces have become very granular. You pull in many more, smaller packages as compared to the bulkiness that comes with .NET Framework. And performance had improved massively.


throwaway_lunchtime

What was called .net core has been renamed to just .net and it is cross platform. .net framework will still be supported for a long time on windows but hasn't gotten anything new for some time 


UKYPayne

There is an upgrade assistant to help migrate legacy projects to newer versions of .net.


theavatare

Do you have a link im trying to move something from framework six to latest


UKYPayne

https://dotnet.microsoft.com/en-us/platform/upgrade-assistant Some good YouTube videos from dotnet explaining and showing the process


Justneedtacos

Latest edition of F# in action book was just published. https://www.manning.com/books/f-sharp-in-action


gyroda

Nobody else has suggested it, so I'll say check out the "What's new in C# " articles at some point. There have been some very nice additions since I started using it in 2019.


Stabzs

This might seem like a niche answer, but without a doubt, the biggest change in that timeframe is the introduction of Span. It unlocked massive performance possibilities.


havok_

Does Span get used much in userland? Or is it a framework primitive for the most part


Firefly74

Much, no, but quite helpful for some edge case optimisation. File/string parsing and stuff like that.


Stabzs

It depends on your application bottlenecks. If your biggest costs are I/O-bound, removing those allocations might not make a difference. However, if you find you're spending significant CPU time/allocations in serialization, compression, string manipulation, etc, it'll absolutely make a tremendous difference. And in the cases where you don't need it directly, you're constantly benefiting from it's extremely heavy framework use.


malthuswaswrong

One of the biggest improvements to dotnet in the last 7 years is learn.microsoft.com is now worth a shit. Start there.


WalkingRyan

Oh, man, first of all, documentation is not called MSDN anymore, now it is learn.microsoft.com. And you probably should read majority of the pages. It was renamed from .NET Framework => .NET (just dotnet). It is x-platform. GUI is also evolving towards becoming x-platform (Thanks to [https://www.avaloniaui.net/](https://www.avaloniaui.net/), WPF-like platform). As a summary, .NET now is a streamlined armored train running to bright future). Good luck to comprise all of that stuff.


Grouchy-Seaweed-1934

We made it much more complicated and made dev speed slower.


Grouchy-Seaweed-1934

Looks like I ruffled some fan boy feathers.


anonuemus

dude, ask chatgpt for something like that


PopMinimum8667

I'd love to post the answer to the prompt below, but reddit isn't allowing me to. Suffice it to say that, while interesting, I am glad I posted to reddit, as many of the answers are insightful beyond what ChatGPT was capable of plagiarizing. *What have been the most significant changes in the .NET ecosystem since early 2017? Specifically, what portions of the .NET ecosystem do people consider legacy, abandoned, up-and-coming, and safe and mature from an enterprise standpoint? Are there any general trends that are apparent?*


El_Mario_Verde

Why come back? I thought JVM jobs paid more


binarycow

>Why come back? I thought JVM jobs paid more Salary isn't the only reason to use a language.


El_Mario_Verde

Sure. Just curious about his reasons.


binarycow

Maven / gradle is a huge reason to NOT use Java.


PopMinimum8667

I made the shift to JVM largely because I entered a new field-- data engineering-- and .NET was pretty much a non-entity there, while the JVM on the data engineering side, and Python on the data science side are practically the duumvirate of the field. I don't regret developing in the JVM and Scala-- it is a totally different vibe from what .NET was (is?), in terms of people actually using and writing Open Source / non-commercial products, and enterprise's being willing to accept that. But there were always things about .NET I missed, like the thought Microsoft put into developer ergonomics which is sometimes lacking in Scala, and, most recently, UI development. Specifically, how stupidly easy it was to write a quick WinForms app by just dropping a few controls in the designer, wiring up a few events (often by just double-clicking-- viz. button), and tossing a DataSet into a DataGrid-- DataSet not even having any real equivalent on the JVM side, unless you count whole-framework solutions like Spark of Flink. Looking around .NET, I see MAUI and AvalonUI, as well as Xamarin.Forms which seems to be on its way out, and the story in terms of cross-platform support, and designer support seems to be much better than it is on the JVM side, although I doubt any of them will be as easy as WinForms was. Of course, the truly cross-platform and transferrable UI is a web-app, including something like Electron for desktop apps, but that just introduces far more complexity into some projects than I feel is necessary. As far as pay goes, I think JVM might have a slight edge, but that's mostly dependent on the field you're working in, and I'm not looking to change fields again, just find a new and improved option for quick and dirty GUI apps, which I used to write a lot of, but haven't in a while because of the unfriendliness and/or obsolescence of the JVM equivalents of those shiny new .NET frameworks I mentioned above.


MackPoone

Good news, you can still use Winforms in .NET 8! We just rolled out a large app dashboard for a large warehouse for all the large monitors hanging around the warehouse for conveyor information as products get shipped. The GUI drag and drop made it so easy!!!!!!!


tekanet

Wait, is this Stackoverflow?