【半译】两个gRPC的C#库:grpc-dotnet vs Grpc.Core
grpc-dotnet 是在2019年隨著 .NET Core 3.0 一起發布的一個gPRC官方庫。在ASP.NET Core 的 gRPC項目模板里面就使用了這個庫。
?
.NET Core 3.0之前難道不可以使用gRPC嗎?
目前,gRPC 在.NET上有兩種官方實現:
Grpc.Core:這個是原來的gRPC C#庫,它基于原生gPRC(C-Core)核心庫實現。
grpc-dotnet:這是新的庫,完全使用C#編寫實現,沒有原生依賴,基于.NET Core 3.0。?
grpc-dotnet并沒有替代Grpc.Core,它們并行共存,它們在功能、集成力、支持的平臺、成熟度和性能方面各有優勢。而且這兩種實現使用了相同的API來調用和處理RPC,從而可以避免單庫鎖定,并允許用戶選擇滿足其需求的最佳實現。
?
grpc-dotnet
與原來基于C-Core實現的Grpc.Core不同,grpc-dotnet使用了.NET Core BCL核心庫里面現有的網絡原始類型,請看比較圖:
在服務器端,Grpc.ASPNETCore.Server庫集成到了ASP.NET Core中,使開發人員能夠從ASP.NET Core現有的日志、配置、依賴注入、身份驗證、授權等常見橫切關注點的生態系統中獲益。ASP.NET生態系統中的流行庫,如Entity Framework Core(ORM)、Serilog(日志庫)和Identity Server等,均可以與gRPC無縫協作。
?
在客戶端,Grpc.Net.Client庫基于大家熟悉的HttpClient API構建,該API是.Net Core的一部分。與服務器端一樣,gRPC客戶端可以從構建在HttpClient上的軟件生態系統中受益,例如Polly(彈性和故障處理庫)和HttpClientFactory(管理HTTPClient生命周期)等庫就可以在gRPC客戶端上使用。
?
grpc-dotnet 與Grpc.Core關系圖:
總結
以上是生活随笔為你收集整理的【半译】两个gRPC的C#库:grpc-dotnet vs Grpc.Core的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dotNET Core 3.X 使用 J
- 下一篇: 使用dnSpy调试asp.net cor