.NET family
.NET Framework 4.x (curr 4.7.2)
.NET Core Framework (curr. 2.1)
Xamarin Framework
When to use
cross-platform applications - (web/service) that should be able to run across platforms (Windows, Linux and MacOS)
Characteristcs
Open Source
Editors
Even third party editors like Sublime, Emacs, VI and more work well and can get editor intellisense using the open source Omnisharp project
its runtime (CoreCLR) and libraries are cross-platform.
.NET Core is directly and officially supported by Microsoft and will have a heavy investment moving forward.
Visual Studio Code on Mac, Linux
microservices - if you want to build very performant and scalable microservices
Best performant and scalable systems - system needs the best possible performance and scalability so you get the best responsiveness no matter how many users you have, then is where .NET Core and ASP.NET Core really shine
.NET Core is designed for CLI - provides simple command line tools available on all supported platforms
Desktop apps including Windows 7 and Windows 8
Windows Forms applications
WCF services implementation
Azure’s products that still don’t support .NET Core
Need to use third party .NET libraries or NuGet packages not available for .NET Core
running across OS platforms is a requirement for your system
In Bounded loosely-coupled services or web applications that require the best possible performance and scalability and can be implemented with .NET Core
Some long-term mission-critical and core-business subsystems/microservices
.NET Framework will be evolving and getting investment from Microsoft, it’ll be at a slower pace than with .NET Core due to its own nature (The .NET Framework is older and not designed with a modular architecture that can be evolving at a much faster pace, autonomously per NuGet package)
do not use the .NET Framework if what you want to do can be perfectly done with .NET Core, like many front-end web sites or microservices.
Asp.Net Core
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications.
https://docs.microsoft.com/en-us/aspnet/core/choose-aspnet-framework
Asp.Net MVC
4.x
ASP.NET 4.6 is the more mature platform. It's battle-tested and released and available today.
.NET Core is essentially a fork of the NET Framework whose implementation is also optimized around factoring concerns.
https://blogs.msdn.microsoft.com/dotnet/2014/12/04/introducing-net-core/
The .NET Core platform is a new .NET stack that is optimized for open source development and agile delivery on NuGet. We’re working with the Mono community to make it great on Windows, Linux and Mac, and Microsoft will support it on all three platforms.
.NET Core VS ASP.NET Core
.NET is the framework that we have to follow in order to produce our applications, they can be mobile, desktop or web applications
ASP.NET is a part used for we applications that exists inside .NET
ASP.NET is an open source web framework for building modern web apps and services with .NET. ASP.NET