為什麼要使用 ASP.NET Core? .NET Core 剛發佈的時候根據介紹就有點心裡癢癢, 大概看了一下沒敢付諸於行動, 現在2.0發佈了一段時間了, 之前對其"不穩定"的顧慮也打消的差不多了, 決定踏實的研究一下. 至於為什麼要使用core, 官方是這樣說的: ASP.NET Core 是 ...
為什麼要使用 ASP.NET Core?
.NET Core 剛發佈的時候根據介紹就有點心裡癢癢, 大概看了一下沒敢付諸於行動, 現在2.0發佈了一段時間了, 之前對其"不穩定"的顧慮也打消的差不多了,
決定踏實的研究一下.
至於為什麼要使用core, 官方是這樣說的:
ASP.NET Core 是重新設計的 ASP.NET,更改了體繫結構,形成了更精簡的模塊化框架。
ASP.NET Core 具有如下優點:
- 生成 Web UI 和 Web API 的統一場景。
- 集成新式客戶端框架和開發工作流。
- 基於環境的雲就緒配置系統。
- 內置依賴項註入。
- 輕型的高性能模塊化 HTTP 請求管道。
- 能夠在 IIS、Nginx、Apache、Docker 上進行托管或在自己的進程中進行自托管。
- 定目標到 .NET Core 時,可以使用並行應用版本控制。
- 簡化新式 Web 開發的工具。
- 能夠在 Windows、macOS 和 Linux 進行生成和運行。
- 開放源代碼和以社區為中心。
ASP.NET Core 完全作為 NuGet 包的一部分提供。 這樣一來,可以將應用優化為只包含必需 NuGet 包。
總結一下: 主要吸引我的是跨平臺、高性能.
如何跨平臺?
先來看一下.NET Framework和Core的大體結構.
.NET Framework本身是個"跨Windows"的平臺, 而在這個基礎上, 又支持C#和VB等語言進行 "跨語言",
這些語言都遵守CLS, 編譯成CIL執行. 從我們多層架構設計的角度來看, 只換最底層, 還是很可行的.
.NET Core 重做了一個CoreCLR的運行時,以及一個叫做CoreFX的BCL. 這裡要說一下, ASP.NET Core 完全作為 NuGet 包的一部分提供。
這樣一來,可以將應用優化為只包含必需 NuGet 包, 使應用更加靈活、模塊化的同時提高性能.
文中將.NET Standard放在這裡可能有點不合適, .NET Standard不是包含在.NET Core中的, 它是一組API規範,
.NET Core通過實現.NET Standard與 .NET Framework做相容.
至於跨平臺, 因為90%的CoreFX代碼都是與平臺無關的, 如下圖
這一切使我們可以放心的一起"跨平臺"啦.