本篇會先簡單描述 .NET 的介紹,以及整理一些基本知識,不會有太深入的技術探討而是觀念上的釐清整理,並對去年參加的 .NET Conf 做個紀錄。
先簡單看個圖示,比較容易理解。
- .NET Framework:最早釋出的框架,.NET Framework 1.0 於 2002 年發行,支援運行在 Windows 上
- .NET Core:於 2014 年發佈的跨平台框架
- Xamarin:通過 C# 可編寫原生的 Android、iOS 和Windows 應用程式
.NET Standard 是為了提供 .NET 跨平臺基礎函式庫,讓開發者撰寫可運行於任何平臺執行的函式庫,但 .NET Standard 也存在許多問題。
Web 框架
透過官方要要進行安裝的話,會發現到有兩個可以裝,一個是 Runtime (run app),一個是 SDK (build app),runtime 可以讓你執行程式而 SDK 則可以開發 .NET 的專案
如果選擇 runtime 並是 Windows 的話,會發現有一個 Download Hosting Bundle
如果想要讓 ASP.NET Core 在 IIS 上執行,IIS 會去觸發 ASP .NET Core ,讓它run 起來,但沒裝 ASP.NET Core Hosting bundle,IIS 就不會執行觸發 ASP .NET Core,便會發生起不來的狀況,因此會需要安裝 Hosting Bundle,而在安裝 Hosting bundle 的時候,會去設定 IIS,所以如果這時 IIS 還沒裝的話,會沒辦法去設定。
因此根據這頁的描述便會下載:
- .NET Core
- ASP.NET Core Runtime
- 也就是 Hosting Bundle
而 ASP .NET Core runtime 裡面主要包含了 ASP.NET Core 相關 dll,但不包含 Hosting Bundle
那,為什麼有那麼複雜的選項?
因為,ASP .NET Core 是可以 不用 放在 IIS 上跑的 (Self-hosting),也因此,如果需要運行於 IIS 上,請裝完整東西,包含 Hosting Bundle + .NET Core + ASP.NET Core Runtime,不想放在 IIS 上,則安裝 .NET Core + ASP.NET Core runtime
如果想自己處理 asp.net core dll , 又不想跑在 iis 上 只需要裝 .NET Core Runtime
那,為什麼要可以選擇使用 IIS 或不用 IIS 呢?
透過 IIS 可以輕鬆的達到一些效果,例如 AD 驗證、簡單設定 SSL 或 Log 等機制,不過 IIS 本身也很肥大,效能相對來說也較差
.NET 5 (2020/11 release)
隨著時代進步,微服務、容器化崛起,微軟開始搶占 Linux 等跨平台市場,所以推出了 .NET Core,而目前便以 .NET Core 為核心。
不再更新 .NET Standard 函式庫,而 .NET 5 將成為取代.NET Standard 定位的產品,但之後的版本將會繼續支援 .NET Standard 2.1 和更之前的版本。
.NET Framework 4.8 為最後的版本,只會保留於 Windows 上
同時,支援C# 9.0 新語法,並增添了在容器化技術、API、雲端服務方面上的功能、效能提升,接下來每年都會釋出新版本,而雙數版本為長期支援(LTS)版本。
透過此篇整理一下在 .NET 世界裡各種名詞雷同迷失的你,如果有寫得不完整或有誤的地方,歡迎提出!