.NET Core爱gRPC

Posted CNCF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET Core爱gRPC相关的知识,希望对你有一定的参考价值。

这是微软.NET团队的项目经理Sourabh Shirhatti的一篇客座文章。


自2018年11月以来,微软的.NET团队一直与gRPC团队密切合作,为.NET Core开发新的完全托管的gRPC实现。


我们很高兴地宣布,grpc-dotnet现在已经可以在.NET Core 3.0使用了!


如何获得?

grpc-dotnet包刚刚发布到NuGet.org,已经可以在你的项目中使用。这些包还需要最新的.NET Core 3.0共享框架。你可以为开发机和构建服务器下载.NET Core 3.0 SDK,从.NET Core 3.0 download page下载页面来获取共享框架。

https://www.nuget.org/profiles/grpc-packages

https://aka.ms/netcore3download


开始

由于gRPC现在是.NET生态系统中的一等公民,所以.NET SDK中包含了gRPC模板。要开始,请在安装SDK后,到控制台窗口并运行以下命令。

dotnet new grpc -o GrpcGreetercd GrpcGreeterdotnet run

要创建一个gRPC客户端并使用新创建的gRPC Greeter服务进行测试,你可以按照本教程的其余部分进行操作

https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/grpc/grpc-start


gRPC不是已经和.NET Core兼容了吗?

目前有两个官方gRPC给.NET的实现:

  • Grpc.Core:基于原生gRPC Core库的gRPC C#实现。

    https://github.com/grpc/grpc/tree/master/src/csharp

  • grpc-dotnet:完全用C#编写的新实现,没有原生依赖,基于最新发布的.NET Core 3.0。

    https://github.com/grpc/grpc-dotnet


这些实现并存,并且在可用特性、集成、支持平台、成熟度级别和性能方面各有优势。这两个实现共享调用和处理rpc的相同API,从而限制了锁定,并允许用户选择最能满足他们需求的实现。


有什么新鲜事吗?

与现有的基于C-Core的实现(Grpc.Core)不同,新的库(grpc-dotnet)利用了.NET Core Base Class Libraries(BCL)中现有的网络功能。下图突出显示了现有Grpc.Core和新的grpc-dotnet库之间的差异。



在服务器端,Grpc.AspNetCore.Server程序包集成到ASP.NET Core中,使开发者可以受益于日志、配置、依赖项注入、身份验证、授权等常见的跨领域问题,这些问题已由ASP.NET Core解决。现在,ASP.NET生态系统中的流行库,例如,Entity Framework Core(ORM)、Serilog(日志记录库)和Identity Server等,可与gRPC无缝协作。


在客户端,Grpc.Net.Client程序包基于作为.NET Core一部分提供的熟悉的HttpClient API构建。与服务器一样,gRPC客户端从基于HttpClient的软件包生态系统中受益匪浅。现在可以在gRPC客户端中使用现有的程序包,例如Polly(恢复力和故障处理库)和HttpClientFactory(管理HTTPClient生存期)。


下图捕获了gRPC的所有新.NET软件包的详尽列表,以及它们与现有软件包的关系。


.NET Core爱gRPC


除了作为grpc-dotnet的一部分新发布的包之外,我们还对两个栈都进行了改进。Visual Studio 2019提供了对protobuf文件的语言语法支持,并在保存protobuf文件时自动生成gRPC服务器/客户端代码,而无需根据设计时构建进行全面的项目重构。


.NET Core爱gRPC


反馈

我们对于为.NET开发者改进gRPC体验感到非常兴奋。请尝试一下,让我们在grpc-dotnet问题跟踪器了解你可能遇到的任何特性想法或bug。

https://github.com/grpc/grpc-dotnet/issues


点击文末<<阅读原文>>进入网页了解更多。




.NET Core爱gRPC

.NET Core爱gRPC

.NET Core爱gRPC

.NET Core爱gRPC


扫描二维码联系我们,加入中国最终用户支持者计划!




CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux  Foundation,是非营利性组织。 

CNCF云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。

以上是关于.NET Core爱gRPC的主要内容,如果未能解决你的问题,请参考以下文章

GRPC与.NET Core

Asp.net core 通过grpc调用python

WPF .NET Core 中的 gRPC 错误

如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?

[.Net Core] - 在 .NET Core 中创建 gRPC 服务端和客户端

.NET Core Love gRPC