【译】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

相关文章
相关标签/搜索