- .NET Framework
The first version of .NET, there will be no new versions but it has extended support.
- .NET Core
Successor to the .NET Framework, cross-platform and open source.
Short for .NET Core, Microsoft promotes it that way now, and it's the term we should be using for new projects.
- .NET Standard
Set of API specifications implemented by all the runtimes.
Sometimes these terms are confusing, but once you understand them you will gain extra confidence when you talk about this topic with colleagues or in technical interviews.
Development environment/platform that provides libraries to develop software in an easier and faster way, it was created and promoted by Microsoft, its first production version was released on February 13, 2002, available only for the Windows platform in its versions 98, ME, NT 4.0, 2000 and XP.
The latest version of the .NET Framework is 4.8, it was released on April 18, 2019, and an end-of-support date has not been announced yet.
".NET Framework 4.8 is the last version of .NET Framework. .NET Framework is serviced monthly with security and reliability bug fixes. .NET Framework will continue to be included with Windows, with no plans to remove it. You don't need to migrate your .NET Framework apps, but for new development, use .NET 5 or later."
Although it is true that .NET Framework is a robust and mature environment that has proven to be stable and easy to adapt to, it had, among other things, the limitation of being only compatible with Windows.
This is fixed in .NET Core, which among many other things is cross-platform and open source.
While .NET is cross-platform, you can still access some Windows-specific APIs configuring your target framework.
Starting with .NET Core 5.0, Microsoft started calling it simply ".NET".
They basically renamed .NET Core to just .NET 😆
Due to all the runtimes that there were, people began to create code that only worked in some, to fix this, .NET Standard was created.
Is not something that you install, but a formal specification of APIs that you can use, with the purpose of sharing code between runtimes.
Use .NET Standard when you want to share code within the .NET Ecosystem's various runtimes.
What should I use?
As a general rule for new developments, .NET should be used, and only use .NET Framework if you necessarily want to use technologies not supported in .NET such as WCF, web forms, or very specific Windows APIs.
I started learning .NET a couple of days ago and everything is going great, I also made a blog about the best way to create a gitignore for .NET projects 🔥
If you find any errors, do not hesitate to comment and I will update the article 🚀