.NET Framework, Core, Standard: What Are We Talking About?

C#
.NET

By Daniel Laufenberg on 07/28/2024

By Daniel Laufenberg on 07/28/2024

confused_developer

Naming in the .NET ecosystem has been one of the most confusing topics, especially for new developers. When I started developing in the .NET ecosystem, .NET Core was just gaining popularity. However, I kept stumbling upon phrases on coding forums like “xx does not run on ASP .NET 4.8” and “.NET Standard xyz is not supported for .NET Framework xyz,” which plunged me into a whirlwind of confusion. If you are someone who just entered the .NET space, your natural reaction might be, “What the heck are all these .NET variations?”

Let me break down the differences in the simplest way possible.

TL;DR
  • .NET Framework: A legacy framework introduced in February 2002 that runs exclusively on Windows.

  • .NET Core: The newer version of .NET that runs on Linux, Windows, and macOS. The confusing part is that the "Core" naming was removed starting with .NET 5.

  • .NET Standard: A set of standards for building libraries that support .NET Framework, .NET Core, and other runtimes.

.NET Framework

Although companies typically do not start new projects (unless there is a good justification) with this version of .NET, many still rely on .NET Framework for their business applications. These applications include legacy internal desktop apps or web apps that haven't been migrated. .NET Framework is only supported in a Windows-based environment, so you need a Windows server to run applications built with it. Some notable application types you can build include WPF, WinForm, and ASP.NET. While it will be supported for the time being, it is no longer being actively developed, and Microsoft does not plan on releasing new versions.

.NET Core

.NET Core is a significant evolution of .NET. Unlike .NET Framework, which requires a Windows-based system to run, .NET Core is fully cross-platform and can run on macOS and Linux. This evolution allowed companies that do not typically use Windows systems to consider .NET as a viable option for their application development. The first version of .NET Core (1.0) was released on June 27, 2016, and now we have .NET 7 available for production use as of November 2022. Since the release of .NET 5, Microsoft has removed the "Core" branding from its name, and we now just call it .NET for any later versions of .NET Core. While it may seem like an unnecessary complication to drop the Core branding, Microsoft did this to imply that these versions of .NET are the main implementation going forward (more at What's new in .NET 5). You can build a lot with .NET Core. Since .NET 5, Microsoft has unified all application types to run on the .NET ecosystem, including mobile applications, which previously required a separate SDK (Xamarin).

.NET Standard

.NET Standard is not really an application development framework on its own but rather a standard for building C# libraries that are supported across different versions of .NET. .NET Standard extends to .NET Framework, .NET Core, Xamarin, Mono, UWP, and Unity. For example, a class library built on .NET Standard can run on .NET Framework 4.6.1 and up, and .NET Core 2.0 or higher. As many companies need to write code that can be supported both in legacy and new systems, building a cross-compatible library based on .NET Standard eliminates the need for writing duplicate code. 

One last thing…

Hopefully, I was able to clarify the differences between the various names used in the .NET ecosystem. Pro-tip: When looking at answers on StackOverflow or other coding forums, if the .NET version is not specifically stated, check the date of the post. If the post is older than June 2016, it's most likely referring to .NET Framework. If there is a code snippet, you can Google the namespace being used, which will help you narrow down the list of possible versions.

Thanks for reading!

Related Posts


webapp_and_entra_id

Integrating Microsoft Entra ID into a Web App (Razor Pages)

Learn how to integrate Microsoft Entra ID with a Razor Pages app for robust access control. Follow our step-by-step guide.