目前,.NET 版 gRPC-Web 現已在 NuGet 上發布:
Grpc.AspNetCore.Web —— 將 gRPC-Web 支持添加到 ASP.NET Core gRPC 服務
Grpc.Net.Client.Web —— 從 .NET 調用 gRPC-Web 端點
有關 gRPC-Web 的更多信息,可查看文檔,或嘗試使用 gRPC-Web 的示例應用程序。
今年一月份的時候,微軟曾宣布對 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 的更多信息,可查看文檔,或嘗試使用 gRPC-Web 的示例應用程序。