.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