Dotnet Versions and little history

Posted on Mar 18, 2023

Over the years .NET has seen a lot of change. In the old days all we had was .NET Framework, ASP.NET, .NET MVC. The challenge with all these framework was that they could only run in Windows environment. Microsoft’s answer to this was .NET Core in year 2016. ASP.NET Core is a free Open Source successor to ASP.NET. It is a ground up re-write to make it platform independent.

Let’s take a closer look at how these different components fit together:

.NET Framework

This is the classic .NET Framework that we all know and love! It first came around 28 years ago. You can do everything starting from Desktop, Mobile, Web, Game development in it. All running exclusively on Windows. The first version 1.0 came in around 2002 (I think!). At present (2023) we are at version 4.8.1 with CLR version 4.

Why the Need for a New Framework?

From the beginning, the .NET platform was Windows-centric and could not run on other operating systems. However, with Microsoft’s investments in Azure and Linux, and its membership in the Linux Foundation since 2016, it became clear that the platform needed to be able to run on other platforms as well.

How it all started?

With the aim of running everywhere, In 2016, Microsoft came up with .NET Core, which is a ground up re-write/re-imagination of the framework stack. Keep in mind that .NET framework is very old. World and computing has changed a lot over the years. So keeping everything in mind Microsoft created .NET Core. It is a new abstraction layer but still compiles to intermediate language (IL). It is faster than .NET framework.

.NET Core

.NET Core is replacement of .NET framework that works everywhere. Think of it as a foundation stone on top of which everything else is built and things I have already mentioned.

On web side of things ASP.NET 5, an open source web framework for building modern web applications that can be developed and run on Windows, Linux and the Mac was introduced. It worked on .NET Core runtime, MVC 6 programming model, built in support for at the time famous Bower, Grunt etc. It also had new Configuration Model and for the first time in built Dependency Injection Framework.

After a while ASP.NET 5 name was dropped ASP.NET 5 is dead

Naming Conventions

  1. .NET Framework - Works like you would expect.
  2. .NET Core - Write once, run everywhere. Fast!
  3. ASP.NET - Web stack of .NET. Works only in IIS
  4. ASP.NET Core - Web stack of .NET. Works everywhere. Built on top of .NET Core

Version 1.0 to 3.1 .NET Core was addressed as “.NET Core” but after that version 5 came out and we just call them .NET 5, .NET 6 etc It is implicit that it is all .netcore by default.

Version 4 was skipped because Microsoft thought it would confuse users that are familiar with the
.NET Framework, which have been using the 4.x series for a long time. Additionally, it is to
clearly communicate that .NET 5 is the future for the .NET platform. It also gives opportunity
to simplify naming. There is only one .NET going forward, we don’t need a clarifying term like
“Core”. The shorter name is a simplification and also communicates that .NET 5 has uniform
capabilities and behaviors.

Future

.NET Core is the future of .NET

.NET Framework 4.8 will be the last major version of .NET Framework. If you have existing
.NET Framework applications that you are maintaining, there is no need to move these
applications to .NET Core. We will continue to both service and support .NET Framework,
which includes bug–, reliability– and security fixes. It will continue to ship with
Windows (much of Windows depends on .NET Framework) and we will continue to improve
the tooling support for .NET in Visual Studio (Visual Studio is written on .NET Framework). 

.NET Standard

In 2016, Microsoft came up with .NET Standard. Aim here was to bridge gap between .NET Core and .NET Framework. At the time .NET Core was new and a lot of APIs were not available with .NET Core. To help with portability, .NET Standard was introduced by bringing all the APIs that you would expect if you target your app or library to a given .NET Standard. There will be no missing APIs per-say More historical context is documented here. After few year Microsoft decided that the way foreward is .NET Core so there is no more need of any standard (which is a good thing).

.NET Standard is also now dead because the future is .NET (Core) Future of .NET Standard


References

Linux Foundation

ASP.NET 5

ASP.NET 5 is dead

.NET Core is the future of .NET

The future of .NET Standard

Versions of .NET

Last .NET Framework Release - 4.8

Introducing .NET Standard