Differences Between .NET Framework, .NET Core, and .NET Standard

.NET is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.

.NET Framework

.NET Framework is the original implementation of .NET. It supports running websites, services, desktop apps, and more on Windows. .NET Framework 4.8 is the last version of .NET Framework

.NET Core 

.NET Core is a cross-platform implementation for running websites, services, and console apps on Windows, Linux, and macOS. .NET is open source on GitHub.

Version Latest Version Visual Studio
.NET 5 VS 2019
.NET Core 3.x – latest VS 209
.NET Core 2.x VS 2017, 2019
.NET Core 1.x VS 2017

Both, .NET 3.1, and .NET Core 2.1 will have long term support.
.NET Core 3.x applications only run on .NET Core Framework.
.NET Core 2.x applications run on .NET Core as well as .NET Framework.

.NET Standard

.NET Standard is a formal specification of the APIs that are common across .NET implementations. This allows the same code and libraries to run on different implementations.

.Net Framework and .Net core have different BCLs, hence .Net Framework library is not compatible with .Net core and vice versa. To solve this problem Microsoft introduced .Net standard.

For example, to develop a library that supports .NetFramework 4.5.1 and .Net Core 1.0, we need to target .Net Standard 1.2 i.e. the lowest .NetStandard version that the 2 frameworks implement.


Xamarin/Mono is a .NET implementation for running apps on all the major mobile operating systems, including iOS and Android.

C# Version History

Version .NET Framework Visual Studio Important Features
C# 1.0 .NET Framework 1.0/1.1 Visual Studio .NET 2002 First release of C#
C# 2.0 .NET Framework 2.0 Visual Studio 2005
  • Generics
  • Partial types
  • Anonymous methods
  • Nullable types
  • Iterators
  • Covariance and contravariance
C# 3.0 .NET Framework 3.0\3.5 Visual Studio 2008
  • Auto-implemented properties
  • Anonymous types
  • Query expressions
  • Lambda expression
  • Expression trees
  • Extension methods
C# 4.0 .NET Framework 4.0 Visual Studio 2010
  • Dynamic binding
  • Named/optional arguments
  • Generic covariant and contravariant
  • Embedded interop types
C# 5.0 .NET Framework 4.5 Visual Studio 2012/2013
  • Asynchronous members
  • Caller info attributes
C# 6.0 .NET Framework 4.6 Visual Studio 2013/2015
  • Static imports
  • Exception filters
  • Property initializers
  • Expression bodied members
  • Null propagator
  • String interpolation
  • nameof operator
  • Dictionary initializer
C# 7.0 .NET Core Visual Studio 2017
  • Improved performance and productivity
  • Azure Support
  • AI Support
  • Game development
  • Cross platform
  • Mobile App Development
  • Window App Development


Leave a Reply

Your email address will not be published. Required fields are marked *