Introduction to .NET Core

.NET Core: This is the latest .NET implementation. It’s open source and available for multiple OSes. With .NET Core, you can build cross-platform console apps and ASP.NET Core Web applications and cloud services.

.NET Core is a new cross-platform and fully open source .NET implementation that was forked from .NET Framework and Silverlight. It’s optimized for mobile and server workloads by enabling self-contained XCOPY deployments.

Introduction to .NET Standard

.NET Standard: This is the set of fundamental APIs (commonly referred to as base class library or BCL) that all .NET implementations must implement. By targeting .NET Standard, you can build libraries that you can share across all your .NET apps, no matter on which .NET implementation or OS they run.

When you’re building modern experiences, your app often spans multiple form factors and, therefore, multiple .NET implementations. In this day and age, customers pretty much expect that they can use your Web app from their mobile phone and that data can be shared via a cloud-based back end. When using a laptop, they also want to get access via a Web site. And for your own infrastructure, you likely want to use command-line tools and potentially even desktop apps for letting your staff manage the system.

In such an environment, code sharing becomes a major challenge. You need to understand where APIs are available and make sure that shared components only use APIs that are available across all .NET implementations you’re using.

OS

Open Source

Purpose

.NETFramework

Windows

No

Used for building Windows desktop applications and ASP.NET Web apps running on IIS.

.NETCore

Windows, Linux, macOS

Yes

Used for building cross-platform console apps and ASP.NET Core Web apps and cloud services.

Xamarin

iOS, Android, macOS

Yes

Used for building mobile applications for iOS and Android, as well as desktop apps for macOS.

.NET Standard

N/A

Yes

Used for building libraries that can be referenced from all .NET implementations, such as .NET Framework, .NET Core and Xamarin.

I have been using NHibernate for large corporate projects for a while now, but wanted to leverage a lighter ORM for some personal projects. I did not want the overhead of configuring NHibernate and wanted something "lighter".