net core 3.0 之Grpc新特性小试牛刀
光说好处,没有弊端吗,自然是有的
https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0
和HttpApi有啥区别,如下图
现在.NetCore 3.0还处于预览版,正式版出来相信会有更好的支持和体验
Grpc在3.0中, 也是遵循微软一贯的风格,对开发者友好,极度舒适得开发体验。重大变化的变化
3.0支持编写好的.proto文件直接. 方法名,就可以使用,无需把proto文件生成为.cs 文件再引用到项目中(微软默默帮我们做好了,咱只要定义好protoi接口和参数,关心代码业务就行了)
咱们实际运用起来效果如何,开发用起来爽不爽,咱也不废话,直接开整
dotnet new grpc
我们一定会注意到 Startup 类中 ConfigureServices 方法的语句 services.AddGrpc() 。这个是惯例,不用去管,重点看 Configure 方法里的代码片段:
app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapGrpcService<GreeterService>(); });
syntax = "proto3"; option csharp_namespace = "GrpcGreeter"; package Greet; service Greeter { // 方法体 rpc SayHello (HelloRequest) returns (HelloReply); //这是咱新增的方法 rpc HelloWorld (HelloRequest) returns (HelloReply); } // 请求参数 message HelloRequest { string name = 1; } // 响应实体 message HelloReply { string message = 1; //数据类型和C#大差不差 int32 code=2; }
1 2 3 | Install-Package Grpc.Net.Client -Version 0.1.22-pre3 Install-Package Google.Protobuf Install-Package Grpc.Tools |
1 2 3 4 5 | <ItemGroup> <!-- GrpcServices= "Client" 添加该属性构建相关客户端类文件(元数据) --> <!-- GrpcServices= "Server" 添加该属性构建相关服务端端类文件(元数据) --> <Protobuf Include= "Protos\greet.proto" GrpcServices= "Client" /> </ItemGroup> |
可以看到如下图,重点介绍一下新特性,可以像正常些C#代码一样,直接点出Grpc里定义的方法
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
本文版权归作者和博客园共有,来源网址:https://www.cnblogs.com/DanielYao/欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
作者:DanielYao
出处:https://www.cnblogs.com/DanielYao/p/11394243.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
欢迎大家关注我的微信公众号,新文章会优先发到公众号!
本文来自博客园,作者:打滚的姚先森,转载请注明原文链接:https://www.cnblogs.com/DanielYao/p/11394243.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异