.NET 新手村 — 打什麼打,要打去練舞室打

Where
5 min readApr 16, 2021

本篇會先簡單描述 .NET 的介紹,以及整理一些基本知識,不會有太深入的技術探討而是觀念上的釐清整理,並對去年參加的 .NET Conf 做個紀錄。

[問卦] .NET Conf 2020 day1 — ptt 八卦版

先簡單看個圖示,比較容易理解。

  • .NET Framework:最早釋出的框架,.NET Framework 1.0 於 2002 年發行,支援運行在 Windows 上
  • .NET Core:於 2014 年發佈的跨平台框架
  • Xamarin:通過 C# 可編寫原生的 AndroidiOS 和Windows 應用程式

.NET Standard 是為了提供 .NET 跨平臺基礎函式庫,讓開發者撰寫可運行於任何平臺執行的函式庫,但 .NET Standard 也存在許多問題。

Web 框架

  • ASP .NET:免費的 web 架構,可用於使用 HTML、CSS 和 JavaScript 建立網站和 web 應用程式,ASP.NET 支援三種開發模式,Web Pages、 MVC (Model View Controller)、Web Forms,基本上需於 IIS (Internet Information Server) 上執行
  • ASP .NET Core:開放原始碼、跨平台架構,用於在 Windows 、macOS 或 Linux 上建置 Web 應用程式,並且可裝載於 KestrelIISHTTP.sysNginxApacheDocker

透過官方要要進行安裝的話,會發現到有兩個可以裝,一個是 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 還沒裝的話,會沒辦法去設定。

因此根據這頁的描述便會下載:

  1. .NET Core
  2. ASP.NET Core Runtime
  3. 也就是 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 世界裡各種名詞雷同迷失的你,如果有寫得不完整或有誤的地方,歡迎提出!

--

--