ASP.NET Core擴展庫

親愛的.Neter們,在咱們日復一日的編碼過程當中是否是會遇到一些讓人煩惱的事情:git

  • 日誌配置太過複雜,各類模板、參數也搞不清楚,每次都要去查看日誌庫的文檔,還須要複製粘貼一些重複代碼,好無賴
  • 當須要類型轉換時,使用AutoMapper時感受配置又複雜,本身寫人肉轉換代碼又冗長,又枯燥,好無聊
  • 當調用其餘服務時,老是不放心,因而在調用前、調用後老是不斷重複地記錄請求和應答日誌?
  • 當其餘服務須要令牌時,咱們不得無論理令牌的生命週期,並且不一樣第三方服務令牌的認證、維護過程還不同,有時調用每個接口時都要手動傳入token,好麻煩
  • 做爲應用開發的你,你編寫的服務和不少其餘服務交互,常常由於其餘服務的問題影響你的開發進度,同時你的服務因爲依賴於其餘服務,致使調試測試困難
  • 在微服務模式下,須要請求鏈路跟蹤,因而,你又在調用其餘服務時,不斷第重複傳遞鏈路跟蹤的請求頭
  • 做爲APIer的你,爲了快速查找問題,不得不記錄每個接口的請求和應答內容,因而,你就在控制器裏面增長了一堆的日誌,你知道這不科學,但時間緊,任務重,就先這樣吧
  • ......

也許,以上這些問題,都有相應的庫或者示例代碼來解決,但這實在是太零散了,咱們沒有精力或不想去作這些,因此結果是經常咱們採用了最「笨」的辦法。github

如今,解決這些問題的綜合庫來了,它就是Xfrogcn.AspNetCore.Extensions擴展庫,它深度融合ASP.NET Core的設計模式,使用方式與ASP.NET Core徹底一致。設計模式

簡介

ASP.NET Core擴展庫是針對.NET Core經常使用功能的擴展,包含日誌、Token提供器、並行隊列處理、HttpClient擴展、輕量級的DTO類型映射等功能。緩存

源碼地址:[GitHub]  [Gitee]
包地址:[NuGet]app

日誌擴展

擴展庫中,咱們對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擴展使用。固然你也能夠單獨使用。

並行隊列處理

並行隊列處理能夠將一個大的隊列,拆分到多個子隊列進行並行處理,以提升處理效率。同時,在每一個子隊列處理中實現了處理管道,可靈活擴展。

以上介紹即爲擴展庫所支持的功能,後面會有相關的系列文章進行詳細介紹。

相關文章
相關標籤/搜索