.NET Core Love gRPC

这篇内容主要来自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库之间的区别。

640?wx_fmt=png

在服务器端,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生命周期)。

640?wx_fmt=png

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

640?wx_fmt=png

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上添加对服务的代码优先支持。

640?wx_fmt=png

.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

640?wx_fmt=png



640?wx_fmt=gif

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

中国 .NET 开发者峰会

640?wx_fmt=png 

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

640?wx_fmt=png 

中国 上海

请输入标题

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

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

640?wx_fmt=png

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

相关文章:

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


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

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/313360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用两个队列实现一个栈

栈&#xff1a;先进后出 队列&#xff1a;先进先出 思路&#xff1a;利用一个队列做主队列&#xff0c;另一个队列作为辅助队列&#xff0c;把元素翻转过来即可。 public class Test {class QueueStack {private Queue<Integer> queueA new LinkedList<Integer>…

Magicodes.IE已支持通过模板导出票据

本次更新如下&#xff1a;【重构】重构HTML、PDF导出等逻辑&#xff0c;并修改IExporterByTemplate为&#xff1a;Task ExportListByTemplate(IList dataItems, string htmlTemplate null) where T : class;Task ExportByTemplate(T data, string htmlTemplate null) where T…

complementary prior

Complementary Prior 解决了多层网络中层间参数W无法计算的问题。 多层有向网络如下图&#xff0c;如果计算 W&#xff0c;我们需要知道第一个隐层的后验概率&#xff0c;那么会遇到几个问题&#xff1a;多层sigmoid网络1&#xff09;后验概率几乎不可计算&#xff0c;因为所谓…

Memcached

本文来自 58沈剑&#xff1a;https://mp.weixin.qq.com/s/zh9fq_e2BgdIeR8RKtY6Sg memcache是互联网分层架构中&#xff0c;使用最多的的KV缓存。面试的过程中&#xff0c;memcache相关的问题几乎是必问的&#xff0c;关于memcache的面试提问&#xff0c;你能回答到哪一个层次…

使用FastReport报表工具生成报表PDF文档

在我们开发某个系统的时候&#xff0c;客户总会提出一些特定的报表需求&#xff0c;固定的报表格式符合他们的业务处理需要&#xff0c;也贴合他们的工作场景&#xff0c;因此我们尽可能做出符合他们实际需要的报表&#xff0c;这样我们的系统会得到更好的认同感。本篇随笔介绍…

DXSDK_June10安装错误

今天安装DXSDK_Jun10时&#xff08;下载地址&#xff1a;http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe&#xff09;&#xff0c;出现错误Error Code:s1023 错误原因&#xff1a; 计算机上有安装过更新版的Microsoft Vi…

相交链表

1、题目描述 编写一个程序&#xff0c;找到两个单链表相交的起始节点。 如下面的两个链表&#xff1a; 在节点 c1 开始相交。 示例 1&#xff1a; 输入&#xff1a;intersectVal 8, listA [4,1,8,4,5], listB [5,0,1,8,4,5], skipA 2, skipB 3 输出&#xff1a;Refe…

.NET Core 3.0中IAsyncEnumerableT有什么大不了的?

.NET Core 3.0和C# 8.0最激动人心的特性之一就是IAsyncEnumerable<T>(也就是async流)。但它有什么特别之处呢?我们现在可以用它做哪些以前不可能做到的事&#xff1f;在本文中&#xff0c;我们将了解IAsyncEnumerable<T>要解决哪些挑战&#xff0c;如何在我们自己…

Kullback-Leibler Divergence

本文转自&#xff1a;http://www.cnblogs.com/ywl925/p/3554502.html KL距离&#xff0c;是Kullback-Leibler差异&#xff08;Kullback-Leibler Divergence&#xff09;的简称&#xff0c;也叫做相对熵&#xff08;Relative Entropy&#xff09;。它衡量的是相同事件空间里的两…

合并K个排序链表

题目描述 合并 k 个排序链表&#xff0c;返回合并后的排序链表。请分析和描述算法的复杂度。 示例: 输入: [1->4->5,1->3->4,2->6 ] 输出: 1->1->2->3->4->4->5->6解法 归并排序法 public ListNode mergeKLists(ListNode[] lists) {i…

Shader 坐标转换

转自&#xff1a;http://www.ownself.org/blog/2010/kong-jian-zuo-biao-zhuan-huan.html 这个比较基础了&#xff0c;不过基础最重要&#xff0c;往往应该理解透彻&#xff0c;并且反复复习。 我们知道在3D画面渲染过程中对于模型的计算的一部分被称为Transforming and Ligh…

致所有.Net者和有梦想的朋友们 - 共勉

这篇文章很早就想写的了&#xff0c;主要是人到了一定的年纪&#xff0c;就想唠叨一些看法&#xff0c;认不认可不重要&#xff0c;重要的是生活给予你的酸甜苦辣&#xff0c;你都想一吐为快。 这里主要基于多年来自己的一个行业感受和以及生活感想&#xff0c;唠叨一下工作以及…

ReLU的起源

论文参考&#xff1a;Deep Sparse Rectifier Neural Networks 网页参考&#xff1a;http://www.mamicode.com/info-detail-873243.html 起源&#xff1a;传统激活函数、脑神经元激活频率研究、稀疏激活性 传统Sigmoid系激活函数 传统神经网络中最常用的两个激活函数&…

二叉树的锯齿形层次遍历

1、题目描述 给定一个二叉树&#xff0c;返回其节点值的锯齿形层次遍历。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 例如&#xff1a; 给定二叉树 [3,9,20,null,null,15,7], 3/ \9 2…

Asp.NET Core 轻松学-项目目录和文件作用介绍

前言上一章介绍了 Asp.Net Core 的前世今生&#xff0c;并创建了一个控制台项目编译并运行成功&#xff0c;本章的内容介绍 .NETCore 的各种常用命令、Asp.Net Core MVC 项目文件目录等信息&#xff0c;通过对命令的学习和操作&#xff0c;对项目结构的认识&#xff0c;进一步理…

Dubbo 常见服务治理策略

1、Dubbo体系结构 2、Dubbo容错机制 Dubbo集群容错架构图 各节点关系&#xff1a; 这里的Invoker是Provider的一个可调用Service的抽象&#xff0c;Invoker封装了Provider地址及Service接口信息。Directory代表多个Invoker&#xff0c;可以把它看成List&#xff0c;但与Lis…

Python 依赖库

ImportError: No module named cv2 解决方法&#xfeff;&#xfeff;import cv2时会出现这个问题 解决方法&#xff1a;将openCV安装目录里的python文件夹内的cv2.pyd复制到Python安装目录里Lib中site-packages内即可解决. 当然 要注意32位还是64位。 ImportError DLL load …

IT技术人员的35个特点,你占几个?

作者&#xff1a;zollty&#xff0c;资深程序员和架构师&#xff0c;私底下是个爱折腾的技术极客&#xff0c;架构师社区合伙人&#xff01;1、价值观对生活的一般看法&#xff1a;追求简单&#xff0c;安定&#xff0c;可控制的生活&#xff0c;但对家庭生活的责任持消极态度草…

ReentrantLock可重入锁使用及原理

使用场景&#xff1a;https://www.cnblogs.com/XJJD/p/8758713.html 原理实现&#xff1a;https://blog.csdn.net/weixin_39910081/article/details/80147754

LNK2001

转载自 http://bbs.csdn.net/topics/100140880 学习VC&#xff0b;&#xff0b;时经常会遇到链接错误LNK2001&#xff0c;该错误非常讨厌&#xff0c;因为对于 编程者来说&#xff0c;最好改的错误莫过于编译错误&#xff0c;而一般说来发生连接错误时&#xff0c;编译都已通…