Introduction
Microsoft .NET has three flavours in the market right now. Namely, .NET Framework, .NET Core and .NET Standard. All these types address different concerns related to application development. We will try to understand, How .NET Core and .NET Standard are related. Also, we look at how .NET Framework and .NET Standard are linked to each other, what is not available in .NET Standard, and their key differences. First, let us have a brief summary of each version.
.NET Framework
Microsoft .NET Framework is the original / initial implementation of .NET . It can run applications on Windows platform only. The full implementation of .NET is in .NET Framework. The latest version is .NET Framework 4.8. It was released on 2019-04-18. Web applications built using this platform can only be hosted on IIS. It supports ASP.NET Web Forms, WinForms, WCF, Silverlight, etc. The building blocks of .NET Framework are Common Language Runtime (CLR) and Base Class Libraries (BCL) and Common Intermediate Language (CIL). The Code written in C#, F# or VB is converted by the compiler into Common Intermediate Language. The code is executed by CLR using Just In Time Compiler (JIT) to machine-specific code.
.NET Core
.NET Core is the cross-platform and open-source implementation of .NET hosted on Github in the form of multiple repositories. It can run applications on multiple platforms. It is maintained by Microsoft and .NET community. They are released under MIT, Apache 2 and Creative Commons Attribution 4.0. It is free. The latest version available right now is .NET Core 3.1. It was released on 2020-02-18. It supports modern application frameworks such as gRPC, ML.NET for Machine Learning, ASP.NET Core Razor Pages, Blazor (for WebAssembly), UWP etc. The building blocks of .NET Core are CoreCLR and CoreFX. CoreCLR is a runtime for .NET Core. It includes JIT, GC and several low-level classes. CoreFX is made of foundation class libraries. These come as alternatives to CLR and BCL of .NET Framework. It comes integrated with .NET Core CLI. As per Microsoft, all the innovations will take place in .NET Core only.
.NET Standard
.NET Standard is a specification that can be used across all .NET implementations. It is used for developing library projects only. This means if we are creating a library in .NET Standard we can use those in .NET Framework and .NET Core. To create uniformity means to allow usage in all the .NET implementations. .NET Standard has support for Mono platform, Xamarin, Universal Windows Platform, and Unity. The implementation compatibility chart is available here. This can guide you which .NET Standard Implementation version is compatible with all the packages. This means we should use this to create library projects using .NET Standard, which must be used instead of Portable Class Libraries Project types. Now, let us take a look at a few more details.


Join the conversation! Your thoughts help the community grow.