隨着 netcore的出現及流行,概念東西越搞越多,混亂不堪,由此一篇來理一理
先上一張圖,此圖經常見到
總體的脈絡結構大致都是這樣,自下而上,越往下越是基礎層,其中.net standard library定義了一些列的標準函數接口,由不同框架去實現。 也就是 net framework ,net core,xmarin都實現了該標準裏的接口。
可以看到 asp.net ,wpf,windows forms 基於 net framework,asp.net core等基於net core等
由此我們知道net framework , net core ,xamarin 其實是一些框架 實現了net standard 標準 ,asp.net 就是構建windows上網站的框架 ,asp.net core 就是跨平臺的網站框架。
那麼這張圖有歧義嗎?
上面兩張圖,懵了吧,asp.net core可以基於 net framework
ASP.NET和ASP.NET Core 概念背景介紹
ASP.NET是由微軟在.NET Framework框架中所提供,開發Web應用程序的類別庫,ASP.NET可以運行在安裝了.NET Framework的IIS服務器上,若要在非微軟的平臺上運行,則需要使用Mono平臺,很多人都把 ASP.NET 當做是一種編程語言,但它實際上只是一個由 .NET Framework 提供的一種開發平臺 (development platform),並非編程語言。也可認爲ASP.NET是.NET組件,任何.NET語言,例如C#,可以引用該組件,創建網頁或Web服務。
爲了因應雲端化所誘發的多作業平臺集成與開發能力,微軟特別開發一個新一代的 ASP.NET,稱爲 ASP.NET vNext,並於 2014 年命名爲 ASP.NET 5,但隨後於 2016 年將它更名爲 ASP.NET Core,由於架構上的差異頗大,因此未來 ASP.NET 與 ASP.NET Core 將是分別發展與維護,Windows 平臺的 ASP.NET 4.6 以上版本仍維持 Windows Only,但 ASP.NET Core 則是具有跨平臺 (Windows, Mac OSX 與 Linux) 的能力。
ASP.NET Core 是新一代的 ASP.NET,早期稱爲 ASP.NET vNext,並且在推出初期命名爲 ASP.NET 5,但隨着 .NET Core 的成熟,以及 ASP.NET 5 的命名會使得外界將它視爲 ASP.NET 的升級版,但它其實是新一代從頭開始打造的 ASP.NET 核心功能,因此微軟宣佈將它改爲與 .NET Core 同步的名稱[1],即 ASP.NET Core。
ASP.NET Core 可運行於 Windows 平臺以及非 Windows 平臺,如 Mac OSX 以及 Ubuntu Linux 操作系統,是 Microsoft 第一個具有跨平臺能力的 Web 開發框架。 (注意,當你選擇.net framework 作爲框架依賴,那麼就無法跨平臺了,當然如果是mono那當然是可以的吧)