ASP.NET Core擴展庫的相關功能介紹
親愛的.Neter們,在我們日復一日的編碼過程中是不是會遇到一些讓人煩惱的事情:
- 日志配置太過復雜,各種模板、參數也搞不清楚,每次都要去查看日志庫的文檔,還需要復制粘貼一些重復代碼,好無賴
- 當需要類型轉換時,使用AutoMapper時感覺配置又復雜,自己寫人肉轉換代碼又冗長,又枯燥,好無聊
- 當調用其他服務時,總是不放心,於是在調用前、調用後總是不斷重復地記錄請求和應答日志?
- 當其他服務需要令牌時,我們不得不管理令牌的生命周期,而且不同第三方服務令牌的認證、維護過程還不一樣,有時調用每一個接口時都要手動傳入token,好麻煩
- 作為應用開發的你,你編寫的服務和很多其他服務交互,經常因為其他服務的問題影響你的開發進度,同時你的服務由於依賴於其他服務,導致調試測試困難
- 在微服務模式下,需要請求鏈路跟蹤,於是,你又在調用其他服務時,不斷第重復傳遞鏈路跟蹤的請求頭
- 作為APIer的你,為瞭快速查找問題,不得不記錄每一個接口的請求和應答內容,於是,你就在控制器裡面增加瞭一堆的日志,你知道這不科學,但時間緊,任務重,就先這樣吧
- ……
也許,以上這些問題,都有相應的庫或者示例代碼來解決,但這實在是太零散瞭,我們沒有精力或不想去做這些,所以結果是常常我們采用瞭最“笨”的辦法。
現在,解決這些問題的綜合庫來瞭,它就是Xfrogcn.AspNetCore.Extensions擴展庫,它深度融合ASP.NET Core的設計模式,使用方式與ASP.NET Core完全一致。
簡介
ASP.NET Core擴展庫是針對.NET Core常用功能的擴展,包含日志、Token提供器、並行隊列處理、HttpClient擴展、輕量級的DTO類型映射等功能。
源碼地址:[GitHub] [Gitee]
包地址:[NuGet]
日志擴展
擴展庫中,我們對Serilog日志庫進行瞭簡單的封裝使其更加容易配置,同時也增強瞭本地文件日志Sink,使其支持更復雜的日志目錄結構。另外,定時日志清理功能可讓你無需關心本地日志管理問題。
輕量級實體映射
在分層設計模式中,各層之間的數據通常通過數據傳輸對象(DTO)來進行數據的傳遞,而大多數情況下,各層數據的定義結構大同小異,如何在這些定義結構中相互轉換,之前我們通過使用AutoMapper庫,但AutoMapper功能龐大,在很多場景下,可能我們隻需要一些基礎功能,那麼此時你可以選擇擴展庫中的輕量級AutoMapper實現。
AspNetCore Http服務端的擴展
針對AspNetCore Http服務端,擴展庫提供瞭以下功能:
- 請求與應答詳細日志記錄
- EnableBufferingAttribute特性,開啟請求的Buffer(可重復讀取)
HttpClient擴展
.NET Core擴展庫中通過HttpFactory及HttpClient來執行HTTP請求調用,HttpClient擴展在此基礎上進行瞭更多功能的擴展,增加易用性、可測試性。
HttpClient包含以下功能:
- 針對HttpClient的相關擴展方法
- 針對HttpRequestMessage及HttpResponseMessage的擴展方法
- 請求日志記錄
- 請求頭的自動傳遞(請求鏈路跟蹤)
- Http請求模擬(用於測試或模擬第三方服務)
- Http受限請求中,可自動獲取及管理訪問令牌
令牌提供器
令牌提供器用於應用的相關訪問令牌的生命周期管理,包含令牌的自動獲取、緩存、失效判斷、自動重試等,主要由HttpClient擴展使用。當然你也可以單獨使用。
並行隊列處理
並行隊列處理可以將一個大的隊列,拆分到多個子隊列進行並行處理,以提高處理效率。同時,在每個子隊列處理中實現瞭處理管道,可靈活擴展。
以上介紹即為擴展庫所支持的功能,後面會有相關的系列文章進行詳細介紹。
以上就是ASP.NET Core擴展庫的相關功能介紹的詳細內容,更多關於ASP.NET Core擴展庫的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- ASP.NET Core擴展庫之Http請求模擬功能的使用
- .NET 6開發TodoList應用引入第三方日志庫
- .net新興日志框架Serilog簡介
- C#中HttpClient使用註意(預熱與長連接)
- ASP.NET Core實現中間件的幾種方式