Introduction and Background
Microsoft has released so many editions of .NET framework at the moment that it has already started to get a bit confusing, and there is debate as to how to select which one over which. I haven't yet received any questions regarding .NET Standard but I have received quite a lot of questions, help queries etc. for .NET Core and I really believe that more of the beginners are diving into .NET Core as compared to .NET Framework -- one of the factors is me. I want them to go towards .NET Core. Every time someone comes to me and asks what should they be looking forward to, I say, go towards .NET Core and learn it. But .NET itself is also alive and Microsoft is delivering that too, but so is .NET Standard. So which one to choose?
Note - This won't be a long article, but just a reference piece of content that you can use to quickly make a decision as to use which one over the other.
Introduction To The Continuum
Well, there are many reasons why I must be writing this for you, and there are many reasons why I must stop from writing because all three of these frameworks (.NET framework, .NET Core, .NET Standard) are in a fight to be the successor in the Microsoft technologies. The answer itself is not very obvious as to whether we must invest any of our time in either of these frameworks or not. That has caused great confusion for me too, basically I never worked in the field of PCL systems in .NET framework when it began. However, I loved using .NET Core as it started and I have been working on .NET Core and many areas of it ever since the beta days. So, using a bit of history I want to clarify how these pieces all fit together.
It all started with the .NET framework we all are aware of. It was the framework that started "managed programming", using C# language, which just got introduced by that time, starting in the 2000s. Other languages like C++, Java etc. were all available however the proprietorship of Java by Oracle and memory management obstacles in C++ were a few of (only a few of) the reasons why Microsoft chose to develop a new language. C# was introduced since the start of .NET framework, it had features of both Java as well as C++ and was primarily object-oriented programming language. It was shipped as a proprietary Windows-only framework with a lot of huge advantages, community support, documentation and a lot of how-to samples for everyone to start up on. However, skipping decades of programming and focusing on "now", the priorities of Microsoft are shifting a bit in favor of open source and cloud computing. Their Azure product is something they are interested in more, Satya is interested in this -- as far as I can perceive.
If you somehow go to the Wikipedia page for Usage share of operating systems, you will find that Windows and Linux are always fighting. Mac OS is indeed present in a very strong place but it does not contribute to the fight at hand.

Figure 1 Graph representing overall percentage market shares of operating systems since 2002, to 2015; source Wikipedia.
Microsoft saw this as a big challenge for Azure — Why would they even build a cloud platform, if still the majority are going to run Linux? To tackle this, they started the "Microsoft ❤ Linux" program and started contributing toward the open source community. They started open sourcing products too, .NET framework was the start. Note that .NET was the start when Microsoft had the tools and had to build "great stuff" on top of it? Microsoft has to develop those tools on cross-platforms in order to start shipping their great stuff to other platforms. So, .NET was amended in various ways. What we are going to see here are a lot of things but primarily focusing on how it changed, and how you should change or adapt to these changes in your projects.
.NET Core and .NET Standard
Once the idea of this change is clear, we may want to understand what these two frameworks have for us. Simply speaking, .NET Core was created initially to support cross-platform development — it is worth mentioning that by cross-platform, I mean cross-operating systems too, as C# was used for cross-device programming for a while before (also see Notables section for mention of Mono framework). The platform started supporting Windows, Linux and Mac OS out of the box and you could write your applications that run on multiple platforms. It became a pillar in the .NET environment. MSDN kind of puts it all in a great format,

Figure 2 Columns of .NET family, each having an audience and a base foundation.
This shows how Microsoft had put forth the representation of how they are all going to fit together. They have their own base classes or core libraries, then they build up on top of them and you can select which you want to target, either Windows only, cross-platform, or mobile cross-platform (See Notables).
But if you try to understand this, you find a few things that cause it to be different. For instance, when you start building .NET Core applications, at a very high level they are similar, but small details have been modified to better suit needs. In such, one program cannot be compiled for other targets (say, Xamarin). The problem is a different foundation is being laid. Different structures, and ambiguity in the guarantee of a type, to the library are a few of these cases and thus the concept of "Continuum" cannot be put forth easily. So, they made a better environment,

Figure 3 One standard: .NET Standard to rules them all.
What happens now is that you get to work around on one library. So, in simple words, .NET Standard is just the "standard" that .NET Framework, .NET Core, Xamarin and other future derivatives have to follow so that you get the same behavior in the APIs provided. Although the problem of PCL still comes into play, like, what to do in cases where a library makes no sense for this target, such as the Registry of Windows on Linux and Mac OS etc.? But overall maximum room has been tidied up for the best.
So, up to this point, I hope the basic idea is clear. If so, I can continue and provide my own suggestions for everyone to select an edition,
Selection part
Now that we know what these frameworks are usually built for, and why they should be considered, for your applications. Without further ado,

PANKAJ KUMARPosted Jan 4, 2020, 12:56 AM
Hii Afzaal Ahmad Zeeshan, I have Visual Studio 2015, can I use same for .net Code. if not, then what are the options. Can I use visual studio 2017 Free Edition in my official laptop.
Ales FernandoPosted Oct 28, 2018, 10:32 AM
Thanks a lot.
Prakash ChasiyaPosted Mar 6, 2018, 7:50 AM
Thanks for sharing.
Nigel FernandesPosted Dec 21, 2016, 6:53 PM
Nice, any idea on future of .Net Framework ? Will it be discontinued in favor of .Net Core ?
Chirag SatasiyaPosted Dec 16, 2016, 2:57 AM
Thanks for this article Afzaal. You explain everything right from the birth of. NET, deep dive into current development and conclusion part. Your table Selection part is very informative.
Manav PandyaPosted Dec 16, 2016, 1:22 AM
And Please provide best resource or link with that , Thanks Afzaal Ahmad Zeeshan
Manav PandyaPosted Dec 16, 2016, 1:21 AM
And what to choose to learn MVC or .NET Core MVC
Manav PandyaPosted Dec 16, 2016, 1:18 AM
But i want to ask that which framework and version is best for E-Commerce in MVC ??
Manav PandyaPosted Dec 16, 2016, 1:18 AM
Nicely explained brother Afzaal Ahmad Zeeshan ..