The .net family is now composed to two different libraries you can use to build applications. In this article I will try to give an overview of each and how they relate to the .Net Standard.
.NET Framework
The .net Framework is the full “stack’ .NET flavour that’s distributed with Windows. It is the framework that we have all been using for the past 15 years.
.NET Core
This is the latest/Ne .NET implementation. It’s open source and available for multiple OS’s. With .NET Core, you can build cross-platform console apps.
.NET Standard
.NET Standard is the set of fundamental APIs that all .NET implementations must implement. In simple terms it allows a library built with .NET Standard to be consumed by both .NET Framework and .NET Core/ASP .NET Core and now the Xamarin Apps.
All .NET stacks implement the .NET Standard. The confusing part is that different .NET (Core/Framework) version are using different versions of the .NET standard. Compatibility issues may still arise, so its important that if your environment spans .NET framework and .NET Core stacks. These are based on the same .NET Framework.
The following picture gives an overview of the how .NET Framework, .NET Core and .NET Framework relate to each other
When to use .NET Framework or .NET Core
The following are the main aspects that will help
Cross Platform. If you application is required to run on different OS platform. .net Core is the way forward as it can be deployed on multiple platforms independently of the underlying operating system.
Dependency on other libraries. If you application will be dependent on other third party libraries or nuget packages you have to make sure that these libraries are supported for the .net stack you need.
Performance / Cost
When your system needs the best possible performance and scalability, .NET Core and ASP.NET Core are your best options. Higher performance translates into costs. A system running with ASP.NET Core will run with lower systems requirements which translates in reduced servers / VM Cost.