今年一月份的時候,微軟曾宣布對 gRPC-Web for .NET 的實驗性支持,現在它已正式發布。
gRPC 是谷歌開源的高性能、通用 RPC 框架,支持包括 .NET 在內的多種程式語言。它面向移動和基於 HTTP/2 標準設計,但當前,瀏覽器中無法實現 gRPC HTTP/2 規範,因為沒有瀏覽器 API 能夠對請求進行足夠的細粒度控制。gRPC-Web 是解決此問題並使 gRPC 在瀏覽器中可用的標準化協議。
gRPC-Web 即 gRPC for Web Clients。它是一個 JavaScript 庫,使 Web 應用程式能夠直接與後端 gRPC 服務通信,不需要 HTTP 伺服器充當中介。它旨在使 gRPC 在更多情況下可用,包括但不限於:
• 從瀏覽器調用 ASP.NET Core gRPC 應用程式
JavaScript SPAs
.NET Blazor Web Assembly apps
• 在 IIS 和 Azure App Service 中託管 ASP.NET Core gRPC 應用程式
• 從非 .NET Core 平臺調用 gRPC —— 在所有 .NET 平臺上,HttpClient 均不支持 HTTP/2,而 gRPC-Web 可用於從 Blazor 和 Xamarin 調用 gRPC 服務
微軟表示正在與 Blazor 團隊合作,使 gRPC-Web 在 Blazor WebAssembly 應用程式中使用時為端到端開發人員提供更好的體驗。
根據微軟的說法,gRPC 與 JSON 相比具有明顯的性能優勢。以 Blazor 的默認模板為例,相比 JSON,使用 gRPC 時,在提取數據頁面上傳輸的數據減半,數據大小也從 627 字節減少到 309 字節。
目前,.NET 版 gRPC-Web 現已在 NuGet 上發布:
Grpc.AspNetCore.Web —— 將 gRPC-Web 支持添加到 ASP.NET Core gRPC 服務
Grpc.Net.Client.Web —— 從 .NET 調用 gRPC-Web 端點
原標題:微軟正式發布 gRPC-Web for .NET