ASP.NET Core
是微軟提供的強大的web
框架,它有很多潛在的強大而有用的功能。
本專欄的目標是幫助您把框架的隱藏能力最大限度地發揮出來,讓您能夠按需定製ASP NET Core框架。本專欄提供了一種具體的操作和實現方法,可以讓你在短時間儘可能地提高效率。
架構概覽
接下來,我們將介紹ASP.NET Core
的基礎架構及其元件。這專欄討論了架構的幾乎所有組成部分。
下圖顯示了ASP.NET Core 6.0
的基礎架構,讓我們從下往上快速瀏覽一下:
底部是Host
層,它是引導web
服務和啟動ASP.NET Core所需的所有的東西,包括日誌記錄、配置和服務提供者(service provider
),這些物件都是上層需要的依賴項。
Host
層之上是中介軟體層。該層負責處理請求物件,比如錯誤處理、許可權控制、HSTS、CORS等等。
此外,還有路由層,它根據定義的路由模式將請求路由到端點endpoints
。端點路由是NET Core的新層,它將路由與上面的UI層分離,以支援不同端點的路由,包括Blazor
、gRPC
和Signal
。
提醒:在
ASP.NET Core
的早期版本中,路由是MVC層的一部分,其他每個UI層都需要實現自己的路由。
實際端點由第四層UI層提供,該層包含著名的UI框架Blazor
、gRPC
、SignalR
和MVC
。作為ASP.NET Core開發人員,這裡是你主要編碼的地方。
最後,在MVC
上面,您將看到WebAPI
和Razor
頁面。
專欄涵蓋的內容
本專欄並未涵蓋架構概述中提到的所有主題。本書涵蓋了Host
層的大部分主題,因為Host
層包含了您可能需要定製的大部分內容。本專欄討論了中介軟體和路由,以及MVC特性和一些更多的WebAPI主題,在這些主題中你可以做一些魔性化定製。
在每篇的開頭,我會提示主題的難度級別。
專欄未涵蓋的內容
專欄不包括Razor Pages
、Signal
、gRPC
和Blazor
。
原因是gRPC
和Signal
已經非常專業化,不需要定製。Blazor
是ASP.NET Core的新成員,雖然尚未廣泛使用。此外,筆者本身對Blazor
還不夠熟悉,不知道定製Blazor
的所有細節。Razor
頁面位於MVC框架之上,MVC的定製也適用於Razor
頁面。
專欄的閱讀物件
本書面向使用ASP.NET Core
的web開發人員,他們可能需要更改框架的預設行為才能完成任務。讀者應具備ASP. NET Core
的基本知識,因為本專欄沒有介紹這些技術的基礎知識。讀者還應該對Visual Studio
、Visual Studio Code
或任何其他支援ASP.NET Core
和C#
的程式碼編輯器有很好的瞭解。
專欄涵蓋的章節
第1篇:“自定義日誌記錄”,介紹如何自定義日誌記錄行為以及如何新增自定義日誌記錄提供程式。
第2篇:自定義應用程式配置,幫助您瞭解如何使用不同的配置源和新增自定義配置提供程式。
第3篇:定製依賴注入,介紹依賴注入(DI
)如何工作,以及如何使用不同的DI
容器。
第4篇:用Kestrel
配置和定製HTTPS
,探討如何以不同的方式配置HTTPS
。
第5篇:配置WebHostBuilder
,幫助您瞭解如何在託管層上設定配置。
第6篇:使用不同的託管模型,介紹在不同平臺上使用不同型別的託管。
第7篇:使用IHostedService
和BackgroundService
,讓您瞭解如何在後臺執行任務。
第8篇:編寫定製中介軟體,探討使用中介軟體的HTTP
上下文。
第9篇:“端點路由”,介紹如何使用新路由提供自定義端點。
第10篇:定製ASP.NET Core
的Identity
,介紹如何擴充套件應用程式的使用者屬性,並幫助您更改Identity UI
。
第11篇:配置Identity
(身份管理),幫助您管理使用者及其角色。
第12篇:使用自定義OutputFormatter
的Content Negotiation
(內容協商),介紹如何基於HTTP Accept
頭輸出不同的內容型別。
第13章,使用自定義ModelBinder
管理輸入,幫您建立具有不同內容型別的輸入模型。
第14章,建立自定義ActionFilter
,介紹如何使用ActionFilter
的面向切面程式設計。
第15章,使用快取,幫助您提高應用程式的效能。
第16章,建立自定義TagHelper
,通過建立TagHelper
簡化您的UI層。
技術準備
讀者應具備ASP.NET Core
的基本知識,以及Visual Studio
、Visual Studio Code
或任何其他支援ASP.NET Core
程式碼編輯器。
安裝最新的NET 6.0 SDK
。請在以下網址查詢最新版本。
使用任何支援ASP NET Core
的程式碼編輯器。我們建議使用Visual Studio Code
(網址),因為它可在所有平臺上使用。
專欄中的所有專案都將使用控制檯、命令提示符、shell
或PowerShell
建立。不建議使用Visual Studio
建立專案,因為基本配置可能會被更改。
除了NET 6.0
,理論上也支援NET Core 3.1
或NET 5.0
,有些章節介紹了NET 6.0和5.0的些許差異。
最後
歡迎你加入我的知識星球,學習更新更全的.NET知識。