【譯】gRPC-Web for .NET now available

  .NET 的 gRPC-Web 如今正式發佈了。咱們在一月份發佈了實驗版,從那時起,咱們就根據早期的用戶反饋進行着改進。web

  有了這個版本,gRPC-Web 就變成了 grpc-dotnet 項目的一個徹底受支持的組件,它已經準備就緒。如今能夠經過 gRPC-Web 和 .NET 在瀏覽器中使用 gRPC。編程

開始吧

  剛接觸 gRPC 的開發者,應該學習下微軟的《教程:在 ASP.NET Core 中建立 gRPC 客戶端和服務器》,該教程介紹如何使用 .NET 建立一個 gRPC client 和 server。瀏覽器

  若是你已經有一個 gRPC 應用,那麼《在瀏覽器應用中使用 gRPC》將展現如何將 gRPC-Web 添加到 .NET gRPC server。服務器

gRPC 和 gRPC-Web 是什麼

  gRPC 是一個現代的高性能 RPC(Remote Procedure Call)框架。gRPC 基於 HTTP/二、Protocol Buffers 和其餘基於標準的現代技術。gRPC 是一種開放標準,受到許多編程語言的支持,包括 .NET。框架

  目前在瀏覽器中實現 gRPC HTTP/2 規範是不可能的,由於沒有對請求進行足夠細粒度控制的瀏覽器API。gRPC-Web 是一個標準化的協議,它解決了這個問題,並使 gRPC 在瀏覽器中可用。 gRPC-Web 爲現代瀏覽器應用程序帶來了許多 gRPC 的優秀特性,好比較小的二進制消息和 contract-first 的 API。編程語言

gRPC-Web的新機遇

  gRPC-Web 旨在使 gRPC 在更多的場景中可用,包括:工具

      • 從瀏覽器調用 ASP.NET Core gRPC 應用——瀏覽器 API 不能調用gRPC HTTP/2。gRPC-Web 提供了一個兼容的替代方案。
          • JavaScript SPAs
          • .NET Blazor Web Assembly 應用
      • 在 IIS 和 Azure App Service 中的 Host ASP.NET Core gRPC 應用——一些服務器,如 IIS 和 Azure App Service,目前不能託管 gRPC 服務。雖然這方面的工做正在積極進行,但 gRPC-Web 提供了一個有趣的替代方案,能夠在當今的每一個環境中工做。
      • 從非 .NET Core 平臺調用 gRPC——HttpClient 在全部 .NET 平臺上不支持 HTTP/2。gRPC-Web 能夠用來調用 Blazor 和 Xamarin 的 gRPC 服務。

 

(gRPC 是 Linux 基金會的註冊商標。Blazor 兼容 gRPC-WEB。)性能

  咱們已經與 Blazor 團隊合做,使 gRPC-Web 在 Blazor WebAssembly 應用程序中使用時具備良好的端到端開發體驗。gRPC 工具不只會自動生成強類型的客戶端,讓你從 Blazor 應用程序中調用 gRPC 服務,並且 gRPC 比 JSON 提供了顯著的性能優點。學習

  性能優點的一個很好的例子就是 Blazor 的默認模板應用程序。使用 gRPC 代替 JSON 時,獲取數據頁面上傳輸的數據減小了一半。數據大小從627字節減小到309字節。server

  這裏的性能提升來自於 gRPC 比傳統的基於文本的 JSON 高效的二進制序列化。gRPC-Web 是改進基於瀏覽器的富應用程序的一個使人興奮的機遇。

嘗試下

  有關 gRPC-Web 的更多信息,請查看文檔,或嘗試使用 gRPC-Web 的示例應用程序。

  .NET 的 gRPC-Web 已經在 NuGet 上發佈了:

      • Grpc.AspNetCore.Web ——添加 gRPC-Web 支持到一個 ASP.NET Core gRPC 服務。

      • Grpc.Net.Client.Web ——從 .NET 調用 gRPC-Web 終結點

  咱們期待看到你用 .NET、gRPC 和如今的 gRPC-Web 所創造的東西!

原文連接

       https://devblogs.microsoft.com/aspnet/grpc-web-for-net-now-available/?utm_source=vs_developer_news&utm_medium=referral

相關文章
相關標籤/搜索