微軟發布.NET框架已經21年了,現在還是不少企業的首選開發框架。尤其最近幾年微軟.net全面擁抱linux以及今年即將發布的.net 6基本支持所有的移動平臺開發,必定能解決很多開發者跨平臺的苦惱。
今天給大家說一下我們產品中用的比較多8個的.NET庫,
Swashbuckle
此.NET庫可幫助您管理和測試.NET web API。它還使用Swagger為應用程序構建API文檔。對于新手來說,Swagger是一組描述RESTAPI狀態的規則。它們都是機器可讀的,并且可以被人理解。
主要功能包括:
- 提供與Swagger UI的無縫集成
- 對身份驗證OAuth2方案、API密鑰和基本身份驗證的廣泛支持
- 對XML注釋的支持
Swashback有三個主要組件:
- Swashback.AspNetCore.Swagger-這是一個Swagger對象模型,提供了將Swagger文檔API公開為JSON端點(即公開可用的URL)的功能。
- Swashback.AspNetCore.swagggergen-提供生成API的對象、返回類型和工作流的功能。
- Swashback.AspNetCore.SwaggerUI-這是Swashback提供的SwaggerUI的嵌入式版本。
FluentEmail
FluentEmail是一個開源的.Net庫,可幫助您在不到10分鐘的時間內在.Net應用程序中實現電子郵件功能。它支持Razor用于預構建電子郵件模板,并通過SMTP協議通過常用的電子郵件傳遞服務(如SendGrid和MailGun)方便地發送郵件。它使您能夠更好地控制通過電子郵件傳遞服務發送郵件的方式。
FluentEmail包包括:
- FluentEmail.core-這是一個基本包,有助于通過SMTP發送電子郵件。因為它是基本包,所以它只包括基本默認值和域模型。
- FluentEmail.mailgun-用于使用mailgun REST API發送電子郵件。
- FluentEmail.SendGrid-用于通過SendGrid REST API發送電子郵件。
- FluentEmail.SMTP-通過SMTP協議發送電子郵件。
xUnit
Xunit是一個免費的、開源的、以社區為中心的測試工具,它允許測試小型的獨立組件,而不是在程序的大塊后面進行測試。這使得設計目標和簡單性與框架的特性保持一致。安裝此軟件包將安裝以下依賴項:
- Xunit.Core-包括所有用于編寫單元測試用例的庫,用于測試應用程序的所有可能場景
- Xunit.assert-包括用于驗證條件是否有效的斷言庫。
- Xunit.analyzers-安裝此軟件包可以為測試團隊提供代碼分析器,幫助他們在編寫健壯的測試用例時發現并修復頻繁出現的問題和其他錯誤。
App Metrics
App Metrics是一個跨平臺、開源的庫,它記錄了應用程序中的大量指標。這包括在特定時間登錄的用戶數、請求數、DB查詢的運行時間、API的響應時間、可用的可用內存等等。它支持一系列實用程序,如計數器、計時器和直方圖,以測量.NET應用程序、MVC或web API的每個端點的性能和錯誤。
常見的基于App.Metrics+InfluxDB+Grafana實現統一性能監控。
HashLib
Hashlib包含幾個哈希算法的實現,您可以使用這些算法對.NET應用程序中的文件、流和所有類型的數據進行哈希。哈希通常用于使用哈希鍵以更快的速度從數據庫中檢索特定數據。
散列鍵用于獲取數據的直接位置,而不是使用索引結構。總之,利用HashLib庫可以簡化應用程序中元素的搜索。
AutoMapper
Automapper是對象映射器的對象。通過這種方式,我們可以將一種類型的一個對象的屬性映射到另一個對象的屬性。automapper廣泛用于使用DTO(數據傳輸對象)的情況。通過這種方式,可以很容易地將對象屬性從視圖(View)對象分配給DTO對象,并將DTO對象分配給域(Model)模型。
EntityFramework/Dapper
Entity Framework (EF)和Dapper都是ORM,使.NET開發人員能夠使用特定于域的對象處理關系數據。就性能而言,Dapper擁有Micro ORM之王(King of Micro ORM)的稱號。實體框架允許通過編寫代碼或使用EF設計器中的boxes and lines來創建模型,并生成新的數據庫。
Polly
這個基本上是分布式系統中必不可少的組件,和Spring cloud類似。Polly is a library that allows developers to express resilience and transient fault handling policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
當然還有一些其他常用的類庫,newtonsoft,castle,moq,serilog,nunit等等。






