这篇内容主要来自Microsoft .NET团队程序经理Sourabh Shirhatti的博客文章:https://grpc.io/blog/grpc-on-dotnetcore/, .NET Core 3.0现已提供grpc的.NET 托管实现 grpc-dotnet, gRpc 取代WCF成为 .NET的一等公民。自2018年11月以来,Microsoft的.NET团队一直与gRPC团队密切合作,共同开发适用于.NET Core的gRPC的全新完全托管实现。

gRpc 有非常多的公司在使用,比如 Salesforce,Netflix,Spotify,Fanatics等公司(当然还有Google),特别是整个CNCF 主导下的云原生应用开发生态里gRpc 有着举足轻重的地位。

.NET目前有两种正式的gRPC实现:

  • Grpc.Core:基于本地gRpc Core库的原生 gRpc C#实现,支持.NET Core 2.1/.NET Framework 4.5+/Mono 4+ 。

  • grpc-dotnet:完全以C#编写的新实现,没有任何本机依赖性,并且基于最新发布的.NET Core 3.0。

这两种实现并排共存,并且在可用功能,集成,支持的平台,成熟度和性能方面各有各的优势。两种实现共享用于调用和处理RPC的相同API,用户能够选择最能满足其需求的实现,而不会限制你必须使用某个平台。

与现有的基于C-Core的实现(Grpc.Core)不同,新库(grpc-dotnet)使用.NET Core基本类库(BCL)中的现有网络实现。下图突出显示了现有的Grpc.Core库和新的grpc-dotnet库之间的区别。

在服务器端,Grpc.AspNetCore.Server软件包集成到ASP.NET Core中,使开发人员受益于ASP.NET Core已解决的日志,配置,依赖项注入,身份验证,授权等常见的交叉问题。现在,ASP.NET生态系统中的流行库(例如,实体框架核心(ORM),Serilog(日志记录库)和Identity Server等)与gRPC无缝协作。

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

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

Visual Studio 2019 对protobuf文件的语言语法提供了支持,并在保存protobuf文件时自动生成gRPC服务器/客户端代码,而无需由于设计时构建而需要完全重新编译项目。

gRpc 这么好用如何入门呢 ,微软的文档给我们准备了很详细,具体参见: https://docs.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-3.0

前面我们提到了gRpc 取代WCF成为 .NET的一等公民,我们一定很怀念WCF那种利用代码定义服务锲约的方式,你一定会记得还有一个protobuf 开源实现protobuf-net: https://github.com/protobuf-net , 我以前在腾讯IT 使用WCF + Protobuf 构建微服务的系统,用的也是protobuf-net 这个库,而不是用WCF自带的二进制序列化,获得了更高的负载处理能力。protobuf-net.Grpc 使用本机Grpc.CoreAPI或完全托管的Grpc.Net.ClientGrpc.AspNetCore.ServerAPI 在gRPC上添加对服务的代码优先支持。

.NET 团队还准备了一个电子书《适用于 WCF 开发人员的 ASP.NET Core gRPC》 https://dotnet.microsoft.com/learn/aspnet/architecture#grpc-for-wcf-devs-ebook-swim 对应的代码仓库:https://github.com/dotnet-architecture/grpc-for-wcf-developers


我们从开始筹备2019 中国.NET 开发者峰会已经有好一段时间,从确定主题到寻找举办地,我们都是在业余时间进行,无论多么困难我们一定要办成功这次完全由中国.NET社区自发组织的大会,我们希望通过这次大会汇聚中国.NET社区的能量,能够让大众刷新对.NET的认知,也包括.NETer本身的刷新。

中国 .NET 开发者峰会

2019年11月9日 09:00-18:00

中国 上海

请输入标题

10月20日前购票可享受早鸟票100元优惠,只需199,限量300张,先到先得;超级早鸟票及社区特价票需要审核资料;购买团体票(大于10张)享受整单8折优惠,请通过邮箱联系主办方 dotnet@dotnetconf.cn

https://www.huodongxing.com/event/4514005355700

扫描二维码,或点击【阅读原文】报名

相关文章:

原文链接:https://www.cnblogs.com/shanyou/p/11618376.html


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

.NET Core Love gRPC相关推荐

  1. .NET Core使用gRPC打造服务间通信基础设施

    一.什么是RPC rpc(远程过程调用)是一个古老而新颖的名词,他几乎与http协议同时或更早诞生,也是互联网数据传输过程中非常重要的传输机制. 利用这种传输机制,不同进程(或服务)间像调用本地进程中 ...

  2. .NET Core 使用 grpc 实现微服务

    GRPC 是Google发布的一个开源.高性能.通用RPC(Remote Procedure Call)框架.提供跨语言.跨平台支持.以下以一个.NET Core Console项目演示如何使用GRP ...

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

    咨询区 Dmitriy 我在 ASP.NET Core 中使用 GRPC.ASPNETCore 工具包写 gRPC 服务,现在我想实现 gRPC 的异常全局拦截,我的代码如下: app.UseExce ...

  4. 基于 gRPC 和 .NET Core 的服务器流

    原文:https://bit.ly/3lpz8Ll 作者:Chandan Rauniyar 翻译:精致码农-王亮 早在 2019 年,我写过<用 Mapbox 绘制位置数据>一文,详细介绍 ...

  5. 旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

    一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能第一时间发现问题. 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行:一方面,AWS对Li ...

  6. 【半译】两个gRPC的C#库:grpc-dotnet vs Grpc.Core

    grpc-dotnet 是在2019年随着 .NET Core 3.0 一起发布的一个gPRC官方库.在ASP.NET Core 的 gRPC项目模板里面就使用了这个库. .NET Core 3.0之 ...

  7. ASP.NET Core gRPC 使用 Consul 服务注册发现

    一. 前言 gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍 ...

  8. .NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端

    .NET Core ❤ gRPC 千呼万唤的 .NET Core 3.0 终于在 9 月份正式发布,在它的众多新特性中,除了性能得到了大大提高,比较受关注的应该是 ASP.NET Core 3.0 对 ...

  9. ASP.NET Core 3.0 使用gRPC

    一.简介 gRPC 是一个由Google开源的,跨语言的,高性能的远程过程调用(RPC)框架.gRPC使客户端和服务端应用程序可以透明地进行通信,并简化了连接系统的构建.它使用HTTP/2作为通信协议 ...

最新文章

  1. ebpf 学习-bpftrace 语法 入门
  2. mysql 语句碎片
  3. 数据导入和整理模块---pandas
  4. Echarts动态加载地图数据(Dynamic load Echarts map data)
  5. Facebook 号称击败谷歌,推出最强聊天机器人
  6. Android日志拦截器,Retrofit2日志拦截器的使用
  7. c# 非顶层截屏_C#中三种截屏方式总结
  8. Java基础- super 和 this 解析
  9. 我们学过 飞鸽传书 的应该知道
  10. Samsung Galaxy S III GT-I9300详细刷机教程
  11. 【京东个人中心】——Nodejs/Ajax/HTML5/Mysql爬坑之注册与登录监听
  12. 【Keras】Win10系统 + Anaconda+TensorFlow+Keras 环境搭建教程
  13. android 重新打开活动,android – RxJava在活动恢复后重新订阅事件
  14. linux dd后无法启动盘,dd后新盘系统无法启动,解决(上)
  15. 软件常见的各种版本英文缩写
  16. U盘写保护不能格式化文件不能删除解决办法
  17. 互联网应用的两种工作模式:客户/服务器模式与P2P模式
  18. C++(数据结构与算法):55---无权图与有权图的描述(邻接矩阵、邻接链表、邻接数组、十字链表、邻接多重表)
  19. 编程求x的n次方_用C语言程序设计:求x的n次方的函数。
  20. 小程序 6位数密码输入

热门文章

  1. HTFS.Software.v7.3-ISO 1DVD(传热模拟,最新完全解密版)
  2. HDU3363_贪心
  3. psa name_Windows 10安全性PSA:启用自动商店更新
  4. java读取excel某个单元格的值_java poi怎么获取excel单元格的内容
  5. Oracle 12C CDB、PDB常用管理命令
  6. Hadoop部署方式-高可用集群部署(High Availability)
  7. E-MapReduce上如何升级EMR-Core
  8. Java8新的异步编程方式 CompletableFuture(三)
  9. Ubuntu 每日技巧- 自动备份Ubuntu 14.04到Box云存储上
  10. Struts2 OGNL