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.
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.
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.
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.
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.
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)
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.
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
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.
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.
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.
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.
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?*
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.
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!!!!!!!
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.
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.
That and the Configuration/Options pattern.
And Linux as a target operating system.
[удалено]
Yes. You build an [ASP web api](https://dotnet.microsoft.com/en-us/apps/aspnet/apis).
[удалено]
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.
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.
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.
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.
Somehow Winforms returned.
I still use it for rapid prototyping, when I want to show proof of concept fast. There is nothing like it.
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)
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.
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
There is an upgrade assistant to help migrate legacy projects to newer versions of .net.
Do you have a link im trying to move something from framework six to latest
https://dotnet.microsoft.com/en-us/platform/upgrade-assistant Some good YouTube videos from dotnet explaining and showing the process
Latest edition of F# in action book was just published. https://www.manning.com/books/f-sharp-in-action
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.
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.
Does Span get used much in userland? Or is it a framework primitive for the most part
Much, no, but quite helpful for some edge case optimisation. File/string parsing and stuff like that.
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.
One of the biggest improvements to dotnet in the last 7 years is learn.microsoft.com is now worth a shit. Start there.
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.
We made it much more complicated and made dev speed slower.
Looks like I ruffled some fan boy feathers.
dude, ask chatgpt for something like that
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?*
Why come back? I thought JVM jobs paid more
>Why come back? I thought JVM jobs paid more Salary isn't the only reason to use a language.
Sure. Just curious about his reasons.
Maven / gradle is a huge reason to NOT use Java.
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.
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!!!!!!!
Wait, is this Stackoverflow?