.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 GrpcGreeter
cd GrpcGreeter
dotnet 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软件包的详尽列表,以及它们与现有软件包的关系。
除了作为grpc-dotnet的一部分新发布的包之外,我们还对两个栈都进行了改进。Visual Studio 2019提供了对protobuf文件的语言语法支持,并在保存protobuf文件时自动生成gRPC服务器/客户端代码,而无需根据设计时构建进行全面的项目重构。
反馈
我们对于为.NET开发者改进gRPC体验感到非常兴奋。请尝试一下,让我们在grpc-dotnet问题跟踪器上了解你可能遇到的任何特性想法或bug。
https://github.com/grpc/grpc-dotnet/issues
点击文末<<阅读原文>>进入网页了解更多。
:
:
:
:
扫描二维码联系我们,加入中国最终用户支持者计划!
CNCF (Cloud Native Computing Foundation)成立于2015年12月,隶属于Linux Foundation,是非营利性组织。
CNCF(云原生计算基金会)致力于培育和维护一个厂商中立的开源生态系统,来推广云原生技术。我们通过将最前沿的模式民主化,让这些创新为大众所用。请长按以下二维码进行关注。
以上是关于.NET Core爱gRPC的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET Core 中为 gRPC 服务添加全局异常处理 ?