1. 簡單說,都是.net standard所定義的接口的實現,都是 .net standard的兒子。
C#
is a programming language, using which you can create a programs, with some new features in 7th version.
.Net Standard
is a rule (well, standard) by which libraries should be built to be understandable by each other.
Portable Class Libraries is a special version of libraries being able to be consumed either by .Net
Framework or .Net
Core.
.Net Core is a framework, like general .Net, with different architecture, which supports .Net Standard starting from v1.6
, so it cannot easily interact with previous versions of .Net
.
.Net 4.7
is a new version of .Net
Framework which supports .Net Standard 1.6 too, so it would be able to interact with a .Net
Core apps.
Announced .Net
Standard 2.0 will provide a universal platform for .Net
Framework, .Net
Core, Xamarin, etc., to run.
.NET Core & .NET Framework 都是 NET Standard Library 的實現,一種是跨平台,而另一種是Windows下特有的,除實現NET Standard Library外 .NET Core 和 .NET Framework 都有各自特有的實現。.NET Standard Library 是跨操作系統的關鍵所在,它定義了一組接口,而每個操作系統有各自的實現,.NET Core通過nuget可以動態下載當前操作系統的實現,從而實現跨操作系統(暨跨操作系統共享代碼)。
.NET Core 更依賴於Nuget,允許本地application在部署時動態下載需要的class library。而.NET Framework需要在系統中預裝。這樣.NET Core的部署比.NET Framework 更簡單快速同樣也更輕便。
ASP.NET Core 有兩種形態的存在:
ASP.NET Core Web Application(.NET Core)
依賴於.NET Core的ASP.NET 只可以調用.NET Core的API,可以在多個操作系統上運行。(可見下圖下半部分的Reference Manager,在assemblies中沒有.NET Framework 中的庫)
ASP.NET Core Web Application(.NET Framework)
依賴於.NET Core & .NET Framework 的ASP.NET 可以調用.NET Core&.NET Framework的API ,只可以在Windows下運行

3 .NET Core & Mono
Mono是.NET Framework的開源版本的實現,在某些特性上和.NET Core 很類似比如開源,跨操作系統。目前.NET CORE 會從Mono上吸取經驗,發展壯大最終可以更好的在除Windows外的其他操作系統上運行。另外Mone支持的App Models要比.NET Core多(例如Windows Forms)。