Original text
Rate this translation
Your feedback will be used to help improve Google Translate

Cookie Consent

By clicking “Accept Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage and assist in our marketing efforts. More info

General Published on: Wed Jul 05 2023

Understanding the Difference between .NET Framework, .NET Core, .NET Standard, ASP.NET, and ASP.NET Core

The world of .NET can be confusing with its various frameworks and versions. There is a traditional .NET Framework, the newer .NET Core (or .NET now), and even .NET Standard. To add to the list of confusion, we also have ASP.NET and ASP.NET Core. Let's break it down and clear up the confusion surrounding these different flavors of .NET.

An Introduction to the .NET Framework

So let's start with understanding what the .NET Framework is. If we understand the foundation of it, it will be easier to understand why these changes came into the picture, what those changes are, and why they're important. So, let's start by going back to the year 2000 (23 years from now). That's a long time in the software industry. This is before things like Facebook, Twitter, and YouTube existed.

In January 2002, Microsoft officially launched the first-ever version of .NET framework, which is a software development framework for building and running applications on Windows OS. It started with basic features, then .NET 2.0 came out after 3 years, and this kept on going.

Then in April 2010, .NET framework 4.0 came out. This was a big transition as it had much new stuff and it became the last major version of .NET framework ever to come out. There were some minor versions released (up to 4.8). This was not the death of the .NET framework; an ample number of developers still loved it, and Microsoft is still supporting it.

Why did the .NET core need to exist?

Now, as we have some idea about the .NET framework, let’s understand the importance of .NET core while the .NET framework existed.

·        .NET Framework is compatible with Windows OS (operating system) only.

·        .NET Framework does not allow the construction and deployment of microservices in multiple languages.

·        .NET Framework packages and ships all its libraries together.

·        .NET framework was full of patches and workarounds that slowed it down.

·        .NET framework was designed over 20 years ago when the internet was at a very different place.

To overcome these kinds of limitations and introduce newer technologies, Microsoft launched .NET core 1.0 in June 2016.

.NET core supports cross-platform development which means most platforms like Windows, Mac, Linux, Android, Ios, Xbox, IoT, and more are supported. Also, it is much faster than the .NET framework.

Exploring .NET Core

The first version of .NET core was more of a proof of concept (POC) than a real usable framework because it had limited functionalities. Two years later, .NET core 2.1 was released. It was the first LTS (long-term supported) version of .NET core.

In December 2019, .NET core 3.1 was released with many more features and with long-term support.

At that point, Microsoft was dealing with challenges related to the topic being discussed. If you look, we’ve got

·        .NET Framework 1.0 and .NET core 1.0

·        .NET Framework 2.0 and .NET core 2.0

·        .NET Framework 3.0 and .NET core 3.0.

So, they had these two frameworks with the same versions so far. However, when it comes to version 4.0, it has been the major version of .NET framework, since April 2010 and it will never go beyond. With .NET core, Microsoft took steps to clear up the confusion by skipping the .NET core version 4.0 entirely and jumping over to .NET core 5.0 which came out in November 2020, and they dropped the word “core” from the name. So, from version 5.0, it’s called .NET 5.0 and not .NET core 5.0. After a year, we got a new version of .NET, and this has been continuing since. Currently, the latest version of .NET is .NET 7, which was released recently and brings more advancements to the .NET ecosystem.

.NET Standard Overview

I hope we have a better picture of .NET framework and .NET core now. But what is .NET standard?

.NET Standard was first introduced in September 2016. It is a specification (unlike .NET framework and .NET core) that defines a set of APIs that must be implemented by all .NET frameworks. It addresses the challenge of code sharing for .NET developers across various platforms by providing a common set of APIs that can be used in different environments.

Think of .NET Standard as a dedicated framework for developing class libraries. It serves as an evolution of the portable class library and focuses solely on defining the APIs. Now, you may wonder, what APIs are covered by .NET Standard? In simple terms, .NET Standard comes in different versions, and each version includes a specific set of APIs.

What about ASP.NET and ASP.NET Core?

In one line, I can conclude ASP.NET and ASP.NET Core are frameworks for web applications that are built on .NET framework and .NET respectively.

ASP.NET is a web framework that is built upon .NET framework and has three project types:

·        WebForms

·        MVC

·        WebAPI

ASP.NET core is also a web framework, but it’s built upon .NET Core or .NET. It powers web applications. It is like ASP.NET but there are some differences. ASP.NET core has:

·        Razor Pages

·        MVC

·        API

·        Blazor Server

·        Blazor WebAssembly

These five project types are replacements for the three project types that we have in ASP.NET. ASP.NET and ASP.NET Core represent two distinct eras in the evolution of Microsoft's web development frameworks. While ASP.NET holds its ground as a reliable choice for Windows-based development, ASP.NET Core emerges as a forward-looking and versatile framework that embraces cross-platform compatibility, performance enhancements, unified development models, and a thriving community. Understanding the differences between these frameworks empowers developers to choose the right tool for their projects, ensuring optimal performance, scalability, and future-proofing their applications.

Teesha Jain

Application Engineer

Teesha Jain is an Application Engineer at Hexaview, specializing in C# .NET development. With a strong command of the language, she contributes to the development of efficient software solutions. In her free time, she enjoys exploring various technical subjects and expanding her knowledge. Her continuous learning mindset helps her stay updated with industry trends and adopt new technologies.