随笔分类 -  WCF

摘要:gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发, gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。本系统文章详细描述了如何创建一个自己的GRPC服务,主要功能有三个,登录、获取用户信息、修改用户信息。同时讲解了在Visual Studio 2022中创建gRPC控制台客户端项目的步骤,包括启动新项目向导、选择项目类型与框架、添加项目名称和安装必要的NuGet包,如何调用grpc的服务。 阅读全文
posted @ 2024-04-13 10:59 DotNet菜园 阅读(187) 评论(1) 推荐(0) 编辑
摘要:gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。创建一个自己的服务,创建一个用户信息gRPC服务,主要功能有三个,登录、获取用户信息、修改用户信息。 本文开始介绍一个控制台应用程序的客户端如何创建。 阅读全文
posted @ 2024-04-06 09:17 DotNet菜园 阅读(269) 评论(0) 推荐(0) 编辑
摘要:gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。创建一个自己的服务,创建一个用户信息gRPC服务,主要功能有三个,登录、获取用户信息、修改用户信息。 阅读全文
posted @ 2024-03-30 11:25 DotNet菜园 阅读(244) 评论(0) 推荐(0) 编辑
摘要:gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。创建一个自己的服务,创建一个用户信息gRPC服务,主要功能有三个,登录、获取用户信息、修改用户信息。 阅读全文
posted @ 2024-03-23 09:57 DotNet菜园 阅读(310) 评论(1) 推荐(1) 编辑
摘要:gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。 gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创建客户端。 阅读全文
posted @ 2024-03-16 10:17 DotNet菜园 阅读(583) 评论(0) 推荐(3) 编辑
摘要:RPC(Remote Procedure Call)远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,简单的理解是一个节点请求另一个节点提供的服务。RPC只是一套协议,基于这套协议规范来实现的框架都可以称为 RPC 框架,比较典型的有 Dubbo、Thrift 和 gRPC。gRPC 是Google公司开发的基于HTTP/2设计,面向移动的一个高性能、开源和通用的 RPC 框架,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统。 阅读全文
posted @ 2024-03-09 12:24 DotNet菜园 阅读(384) 评论(0) 推荐(2) 编辑
摘要:本文介绍应用程序中添加书籍的保存功能,涉及两个功能“新增”与“修改”。异常处理的小结。 阅读全文
posted @ 2016-12-01 17:13 DotNet菜园 阅读(2807) 评论(1) 推荐(5) 编辑
摘要:在上一篇文章中我们创建了WCF服务端应用程序,在这一篇文章中我们来学习如何创建WCF的服务端寄宿程序与客户端调用程序。 阅读全文
posted @ 2016-11-17 10:12 DotNet菜园 阅读(1822) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码。创建项目BookMgr.Service的WCF服务代码。 阅读全文
posted @ 2016-11-09 13:42 DotNet菜园 阅读(1807) 评论(0) 推荐(1) 编辑
摘要:在项目BookMgr.Model创建实体类数据 阅读全文
posted @ 2016-11-02 16:01 DotNet菜园 阅读(1821) 评论(0) 推荐(0) 编辑
摘要:通过前面二十几个章节的学习,我们知道了什么是WCF;WCF中的A、B、C;WCF的传输模式;WCF的寄宿方式;WCF的异常处理。本文综合应用以上知识点,一步一步写一个小的WCF应用程序——书籍管理系统(BookMgr)。 这个示例就是一个非常简单的书籍管理系统,功能有:查询、修改、新增、删除(不包括安全、优化等相关问题)、异常处理。WCF的增删改查和WinForm相差无几。WCF只是把具体“实现”写在“服务端”,而“调用”放在了“客户端”。 阅读全文
posted @ 2016-10-27 10:57 DotNet菜园 阅读(2324) 评论(1) 推荐(0) 编辑
摘要:对于路由的实现,本质上就是实现逻辑地址和物理地址的分离。通过前面的示例介绍,我们了解,如何在客户端实现TcpTracer捕获客户端与服务端的通信信息。在这一章节中我们学习如能通过设置ListenUri实现基于服务端的TcpTracer的消息路由。 服务端的物理地址和逻辑地址的分离通过ListenUri实现,ListenUri指定了服务的物理地址,大家可能觉得奇怪,我们设置服务地址的时候一般都是设 置Address(ABC的一部分),但是Address指定的是逻辑地址,而ListenUri指定的是物理地址,如果指定了这个属性的值,那么就指定了服务的物理地址。 阅读全文
posted @ 2016-09-29 15:41 DotNet菜园 阅读(2829) 评论(1) 推荐(1) 编辑
摘要:首先来讲讲TcpTrace实现的基本原理。说简单点,TcpTracer就是一个监听/转发器(Listening/Forwarding),就是一个路由器。当启动的时候,我们需要设置两个端口:监听端口(Listening Port)和目的主机(Destination Server)与目的端口(Destination Port),然后TcpTracer就会在本机的监听端口进行网络监听。一旦有针对该监听端口的请求抵达,他会截获整个请求的消息,并将整个消息显示到消息面板上。随后,TcpTracer会将该消息原封不动地转发给目的主机与目的端口。在另一方面,从目的主机与目的端口发送给原端口的消息,也同样被TcpTracer截获、显示和转发。 说白了就是把要发的消息先给我们查看和备份,再转发出去。 阅读全文
posted @ 2016-09-22 17:13 DotNet菜园 阅读(4558) 评论(0) 推荐(4) 编辑
摘要:为了强调REST的通用性,客户端不用WCF的形式调用服务,而是采用HttpWebResponse通过编程方式直接访问,消息格式我们选XML。 阅读全文
posted @ 2016-09-15 13:53 DotNet菜园 阅读(2628) 评论(0) 推荐(3) 编辑
摘要:本文讲解一下如何创建一个支持REST的WCF服务端程序。 阅读全文
posted @ 2016-08-30 10:56 DotNet菜园 阅读(1869) 评论(0) 推荐(1) 编辑
摘要:WCF如何实现对于Rest支持的呢?弄清这一点是学习Rest WCF的关键。 为了实现于对Rest的支持,在 .NET Framework 中,WCF 在 System.ServiceModel.Web 组件中新增了编程模型和一些基础架构部件。WCF Web编程模型几个重要类型就是: 阅读全文
posted @ 2016-08-25 14:39 DotNet菜园 阅读(2227) 评论(2) 推荐(1) 编辑
摘要:在一个基于面向服务的分布式环境中,借助一个标准的、平台无关的通信协议,使各个服务通过SOAP Message实现相互之间的交互。这个交互的过程实际上就是信息交换的过程。WCF支持不同形式的信息交换,我们把这称之为信息交换模式(Message Exchange Pattern(简称MEP),下同), 常见的MEP包括: 请求/答复,单向模式和双工模式。通过采用双工的MEP,我们可以实现在服务端调用客户端的操作。虽然WCF为我们实现底层的通信细节,使得我们把精力转移到业务逻辑的实现,进行与通信协议无关的编程,但是对通信协议的理解有利于我们根据所处的具体环境选择一个合适的通信协议。说到通信协议, WCF 经常使用的是以下4个:Http,TCP,Named Pipe,MSMQ。 阅读全文
posted @ 2016-08-16 13:03 DotNet菜园 阅读(4684) 评论(1) 推荐(4) 编辑
摘要:双工模式建立在上文所实现的两种模式的基础之上,实现客户端与服务端相互调用:前面介绍的两种方法只是在客户端调用服务端的方法,然后服务端有返回值返回客户端;相互调用是指客户端调用服务端的方法,同时服务端也可以调用客户端的方法。 基于双工MEP (信息交换模式,Message Exchange Pattern,下同)消息交换可以看成是多个基本模式下 (比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。 阅读全文
posted @ 2016-08-08 14:36 DotNet菜园 阅读(3696) 评论(4) 推荐(4) 编辑
摘要:客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务端有了答复后,客户端才会继续向下执行,这种方式相对单向模式来说灵活性差,但是安全性高,因为是单线程的所以安全性极高,适用于有数据返回的请求。 阅读全文
posted @ 2016-07-26 16:27 DotNet菜园 阅读(2495) 评论(1) 推荐(3) 编辑
摘要:第二个示例是通过定制ServiceDebug来获取服务端的异常,但是这种方式只能用于Debug阶段。在我们的WCF应用发布之后,这种获取异常的方式无法在我们的工作环境中使用。我们必须找到一种异常处理方式可以在客户端获取相应的异常提示信息。那就是我们接下来要介绍的基于FaultContract的解决方案。我们知道WCF采用一种基于 Contract,Contract定义了进行交互的双方进行消息交换所遵循的准则和规范。Service Contract定义了包含了所有Operation的Service的接口,Data Contract定义了交互的数据的结构,而FaultContract实际上定义需要再双方之间进行交互的了异常、错误的表示。现在我们来学习如何使用基于FaultContract的异常处理。 阅读全文
posted @ 2016-07-19 13:24 DotNet菜园 阅读(2348) 评论(2) 推荐(1) 编辑