定制ASP NET 6.0框架系列文章
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篇:定制.NET 6.0的Middleware中間件,探討使用中間件的HTTP上下文。
第9篇:在.NET 6.0中自定義接口路由。
第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知識。有些同學反饋更新慢,這里打個小廣告,如果您想提前閱讀,可以訂閱我的知識星球,感謝您的捧場。
浙公網安備 33010602011771號