Windows Communication Foundation (WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service Model Layer),使用户用最少的时间和经历建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。我将通过几篇文章和大家一起学习WCF,希望能对新手学习WCF有些帮助。 从功能的角度来看,WCF 完全可以看作是ASMX,.Net Remoting,Enterprise Serv
WCF 数据服务默认使用IIS 作为 Data Service 宿主,很显然这是个极好的选择,我们可以利用 IIS 强大的基础功能。除此以外,我们页可以像 WCF 那样直接使用 Self-Host 模式。可以使用 WCF ServiceHost 或 WebServiceHost 类承载 WCF Data Services,具体参见MSDN http://msdn.microsoft.com/zh-cn/library/cc668805.aspx WCF Data Services / WCF Behavio
【推荐序一】 Windows Communication Foundation (WCF)是用来在不同应用间进行互通信的一个编程框架,它是.Net Framework中偏重于通信的重要组成部分。原代码名为Indigo的这个编程框架,在其Beta2 版本正式更名为WCF,于2006年12月作为.Net Framework 3.0的四套API之一,一起发布。 从Native Win32到Managed的世界,应用进程间的通信机制一直是开发者最为关注的方面,在.Net Framework 2.0(2005年1
WCF是构建和运行互联系统的一系列技术的总称,它是建立在Web Service架构上的一个全新的通信平台。你可以把它看成是.NET平台上的新一代的Web Service。WCF为我们提供了安全、可靠的的消息通信,也为我们提供了更好的可互操作性是的我们可以和其他的平台进行“交流”。
WCF(Windows Communication Foundation)是微软开发的一种服务导向的框架,用于构建分布式应用程序。WCF是.NET框架中的一部分,提供了一种统一的编程模型,使开发人员可以轻松地创建、配置和管理分布式应用程序。WCF支持多种传输协议和编码方式,如TCP、HTTP、SOAP和JSON等。WCF框架可以使客户端应用程序和分布式服务之间的通信变得更加简单和可靠。
如果你安装了 VS 2010 的 Silverlight 4 开发工具,会发现一项重量级的安装项目,WCF RIA Services,用于Silverlight数据访问服务,比WCF和ADO.NET Data Service和Web服务都要简单. 在一个三层架构的应用程序中,中间层介于表示层和数据层之间,你所写的业务逻辑和数据验证都将在中间层出现。创建拥有良好用户体验的RIA应用,你需要客户端和服务端有着相同的业务规则,因此在客户端和服务端保证同步的中间层变得至关重要。WCF RIA Services可以让
.NET Core下的WCF客户端也是开源的,这次发布.NET Core 2.0,同时也发布了 WCF for .NET Core 2.0.0, 本文介绍在.NET Core下如何通过Proxy 消费WCF服务。 我们现在直接可以在 standard 2.0下调用wcf服务了,不过 Microsoft WCF Web Service Reference Provider 目前是beta阶段,要使用这个插件,需要安装一个Visual Studio插件,下载地址: https://marketplace.vis
第一次邂逅WCF是在微软举办的一场关于Windows Vista技术推广培训上,时间大概是2005年10月份,当时对WCF可谓是一见钟情。如果读者也像我一样,之前习惯了采用.NET Remoting、XML Web Service、WSE、MSMQ来架构你分布式应用的话,应该不难想象我第一次接触WCF时心中的那份震撼。WCF是Windows平台下所有分布式技术集大成者,它将这一系列独立的分布式技术整合,提供一个统一的应用编程接口,这本身就是一项创举。这些被整合的分布式技术不仅仅包含提到的这些,还包括DCOM
WCF是构建和运行互联系统的一系列技术的总称,它是建立在Web Service架构上的一个全新的通信平台。你可以把它看成是.NET平台上的新一代的Web Service。WCF为我们提供了安全、可靠的的消息通信,也为我们提供了更好的可互操作性是的我们可以和其他的平台进行“交流”。 微软斥巨资打造WCF,在我们看来主要出于下面两个目的:实现其对现有的分布式技术的整合以及顺应SOA的浪潮。在WCF之前,微软已经为了提供了一套完整的基于分布式的技术和产品,这些技术和产品使我们构建一个基于于分布式的互联系统变得
和传统的分布式远程调用一样,WCF的服务调用借助于服务代理(Service Proxy)。而ChannelFactory<T>则是服务代理的创建者。WCF采用基于终结点(Endpoint)服务消费方式:WCF服务通过一个或者多个终结点暴露给潜在的服务消费者,服务的消费中通过与之匹配的终结点与之交互。在客户端,我们具有两种典型的服务代理创建方式,其一是通过诸如SvcUtil.exe这样的工具导入服务的元数据生成相应的服务代理(一个继承自ClientBase<T>的类型)代码和相关配置;其二是直接通过相应的终结
Windows Communication Foundation (WCF)是一个面向服务编程的综合分层架构。该架构的顶层称为服务模型层(Service Model Layer),使用户用最少的时间和经历建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。我将通过几篇文章和大家一起学习WCF,希望能对新手学习WCF有些帮助。
开发环境:vs2008英文版(SP1) + IIS + Windows2003 整个解决方案有4个项目 01.WCF ---Class Libary项目,用于生成WCF所需的类/接口文件 02.BLL ---Class LIbary项目,演示用的业务逻辑层(仅做分层演示用,无实际意义) 03.WEB ---Web Application,WCF服务将发布在这个项目中(即本例是把WCF宿主在IIS里) 04.Client--Console Application,命令行程序,用于演示调用WCF的客户端
近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析》的写作,一直无暇管理自己的Blog。到目前为止《WCF技术剖析(卷1)》的写作暂告一段落,初步预计于下个月由武汉博文视点出版。在《WCF技术剖析》写作期间,对WCF又有了新的感悟,为此以书名开始本人的第三个WCF系列。本系列的目的在于对《WCF技术剖析》的补充,会对书中的一些内容进行展开讲述,同时会囊括很多由于篇幅的原因忍痛割弃的内容。 1、通过一个ASP.NET程序模拟WCF基础架构 本系列的第一篇,我将会对WCF的基本架构作一个大致的讲解。不过,
服务(Service)的本质就是提供服务消费者期望的某种功能,服务的价值体现在两个方面:服务本身的质量和寄宿服务的平台应付消费者的数量,并发(Concurrency)的关注的是第二个要素。WCF服务寄宿于资源有限的环境中,要实现服务效用的最大化,需要考虑如何利用现有的资源实现最大的吞吐量(Throughput)。提高吞吐量就某个寄宿的服务实例(Service Instance)来说,一个重要的途径就是让它能够同时处理来自各个客户端(服务代理)的并发访问。WCF实现了一套完整的并发控制体系,为你提供了不同的并
在2月11日,J.D. Meier在其博客上宣布Patterns & Practices WCF Security Guide发布。J.D. Meier在博客中写道: 对于端对端的应用场景而言,该指南将指导开发者如何设计和实现WCF中的认证与授权。通过这一规定性的指南文档(其中包括指南、常见问题回答、最佳实践), 你可以一目了然地获知如何你的WCF服务的安全性。本篇指南是patterns & practices、WCF团队成员以及行业专家共同协作的成果。 通过本篇指南,可以了解到WCF的安全性,如何为服务
客户端调用WCF服务可以通过添加服务引用的方式添加,这种方式使用起来比较简单,适合小项目使用。服务端与服务端的耦合较深,而且添加服务引用的方式生成一大堆臃肿的文件。
你是否使用WCF 3.5 或者WCF REST Starter Kit开发过Restful的服务?这些技术在.NET 4里头的名称叫做WCF WebHttp Services。Msdn的相关文档在这里:http://msdn.microsoft.com/en-us/library/bb412169(VS.100).aspx, 如果你只使用WCF构建过Soap的Web service,对于掌握这一新技术的更好的技术资源是.NET Endpoint上的一个序列文章:Introducing WCF WebHttp
WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解。 1、 WCF服务的IIS服务寄宿 我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿。这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用。 创建这种方式IIS
本随笔参考自WCF编程系列(一)初识WCF,纯属读书笔记,加深记忆。 1、简介:Windows Communication Foundation(WCF)是微软为构建面向服务的应用程序所提供的统一编程模型。在WCF之前,.NET Framework提供了多种分布式技术,如ASP.NET Web服务、.NET Framework远程处理、企业服务、WSE以及Microsoft消息队列。一般我们在编写一个应用程序时通常会同时使用多项技术,所以,微软将这些分布式应用程序集成到了一起,形成了WCF这个框架。即通过W
WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在,如同典型的“本地”操作一般。为了实现这样的效果,WCF在内部为我们作了很多。 消息交换是WCF进行通信的唯一手段,消息不仅仅是正常服务调用请求和回复的载体,服务端抛出的异常,甚至是服务的元数据都是通过消息的形式传向客户端的。所以,实现异常与消息之间的转换是整个异常处理体系的核心,而WCF的异常处理框架就着
WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。是Windows平台上开发分布式应用最佳的实践方式。 WCF是.Net框架中的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由三部分组成 - WCF服务,WCF服务主机和WCF服务客户端。WCF平台有时也被称为服务模型。WCF的基本特征是互操作性。这是微软用于构建面向服务的应用程序的最新技术之一。根据基于消息的通信的概念中,一个HTTP请求可以被均匀地表示,WCF是一个统一的API而不管不同的传输机制。
Ido Flatow最近发布了一篇文章,其中讲述了一系列WCF将在.NET 4.5中做出的变更。 由于减少了噪音,WCF自动生成的配置文件会大大减小。从WCF的第一个版本开始,开发者就发现他们需要维护有接近30种设定的app.config文件,而事实上都只是默认值。了解配置文件的人会删除冗余的设定,但是遗憾的是很多人都没有学到这项技巧。有了WCF 4.5,配置文件默认只会有绑定类型和名称。 当然,这会引出相关的培训问题,“我怎么知道设定都是什么呢?” 为了回答这个问题,我们还会在配置文件中看到消息提示和自动
对于希望对WCF的消息交换有一个深层次了解的读者来说,tcpTracer绝对是一个不可多得好工具。我们将tcpTracer置于服务和服务代理之间,tcpTracer会帮助我们接获、显示和转发流经他的消息。 从本质上讲,tcpTracer是一个路由器。当启动的时候,我们需要设置两个端口:原端口(source port)和目的端口(destination port),然后tcpTracer就会在原端口进行网络监听。一旦请求抵达,他会截获整个请求的消息,并将整个消息显示到消息面板上。随后,tcpTracer会将
在最近发布的Visual Studio 2012及.NET 4.5中, 微软正式推出新的网络服务框架ASP.NET Web API。作为ASP.NET MVC 4的一部分,ASP.NET Web API这套开源框架的设计目的是简化RESTful服务的开发和使用。 ASP.NET Web API 与之前的内建HTTP服务解决方案的不同之处在于,它一开始就是围绕HTTP协议及其消息语义构建起来的。与WCF REST或ASP.NET AJAX加ASMX相比,它不是对现有框架的增强,而是一个全新的平台。新的ASP.
2022年4月28日,我们达到了一个重要的里程碑,并发布了CoreWCF的1.0.0版本。对Matt Connew (微软WCF团队成员)来说,这是5年前即 2017年1月开始的漫长旅程的结束。Matt Connew 用3 周的时间来构建一个基于 .NET Core 的 WCF 服务实现的POC 基本原型。在3周结束时,Matt Connew 有了一个可以工作的玩具,可以使用BasicHttpBinding托管服务。然后,Matt Connew 的原型作为概念证明坐在那里收集灰尘,同时决定如何处理它。.NET团队在2019年的Build 大会上 已经决定了不在继续在.NET Core中支持WCF,这也是微软官宣的事情,我想大家都记忆尤新,没有资源将这个玩具开发为具有与 WCF 功能奇偶校验的完整产品,但是有许多客户 无法在不对其WCF服务进行完全重写的情况下迁移到 .NET Core。 Matt Connew最终决定 将花一些时间打磨一下的原型实现,包括添加NetTcp支持,并将代码捐赠给开源社区,托管到.NET基金会,看看这是否社区将围绕它构建的东西,以便在Microsoft之外生存下去。
在.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型类型、泛型委托和泛型方法。序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念。而集合代表一组对象的组合,集合具有可迭代(Enumerable)的特性,可以通过某个迭代规则遍历集合中的每一个元素。由于范型类型和集合类型在序列化和反序列化上具有一些特殊的行为和规则,在这篇文章中,我将会对此进行详细介绍。上篇先来说所泛型数据契约。 一、泛型与数据契约 面向对象通过继承实现了代码的重用,而泛型则实现了“算法的重用”。我们
在WCF中,每个终结点都包含两个不同的地址——逻辑地址和物理地址。逻辑地址就是终结点Address属性表示的地址。至于物理地址,对于消息发送放来讲,就是消息被真正发送的目的地址;而对于消息的接收放来讲,就是监听器真正监听的地址。 一、服务端的物理地址 在默认的情况下,终结点的逻辑地址和物理地址是同一个URI。换句话说,终结的逻辑地址是必须的,如何物理地址没有指定的,默认使用逻辑地址作为物理地址。对于消息接收方的终结点来讲,物理地址就是监听地址,通过ServiceEndpoint的ListenUri表示:
近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析(卷1)》的写作,一直无暇管理自己的Blog。在《WCF技术剖析(卷1)》写作期间,对WCF又有了新的感悟,为此以书名开始本人的第三个WCF系列。本系列的目的在于对《WCF技术剖析》的补充,会对书中的一些内容进行展开讲述,同时会囊括很多由于篇幅的原因忍痛割弃的内容。 [第1篇] 通过一个ASP.NET程序模拟WCF基础架构 本系列的第一篇,我将会对WCF的基本架构作一个大致的讲解。不过,一改传统对WCF的工作流程进行平铺直叙,我将另辟蹊径,借助于我
最近跟高老师讨论nginx跟tomcat集群做负载均衡方案。感觉很有意思。想到自己项目中服务用的WCF技术,于是就想WCF如何做负载均衡,Google了一会,发现wcf4.0的路由服务好像可以实现。不过在研究路由服务期间,我有了个自己的方案,哈哈。
WCF提供一组綜合Logging及Tracing功能,它是利用.NET Framework中的System.Diagnostics tracing机制。WCF应用程序可以在转换或是服务层时记录日志,也可以在程序里面编写trace的相关的代码将log输出。而Tracing级别则是可以配置的,缺省配置是在Severity级别的信息才会被记录下來。而TraceViewer可以打开WCF Trace File。 WCF和早期的分布式技术相比,它的Logging及Tracing功能是我们所喜欢的,甚至可以监控这样的功
KB2538826 解释了WCF服务在突发的请求下会发生的问题:当您的 WCF 服务接收请求的突发时,默认.Net I/O 完成端口 (IOCP) 线程池可能不扩大需尽快和你 WCF 的响应时间会随之增加。这篇文章《WCF scales up slowly with bursts of work》解释了到底发生了什么。 解决方案是通过另一个线程池执行WCF服务,实施这一解决方案可能会产生少量的开销。 每个WCF服务的性能测试结果会有所不同。 WCF Listener Recommended solut
最近在学习WCF技术,闲来做了一个小小的WCF三层架构模式的Demo,对传统的C-S架构模式有了全新的诠释和新的理解!
http://www.infoq.com/news/2012/02/WCF-4.5
引言 服务(Service)的本质就是提供服务消费者期望的某种功能,服务的价值体现在两个方面:服务本身的质量和寄宿服务的平台应付消费者的数量,并发(Concurrency)的关注的是第二个要素。WCF服务寄宿于资源有限的环境中,要实现服务效用的最大化,需要考虑如何利用现有的资源实现最大的吞吐量(Throughput)。提高吞吐量就某个寄宿的服务实例(Service Instance)来说,一个重要的途径就是让它能够同时处理来自各个客户端(服务代理)的并发访问。WCF实现了一套完整的并发控制体系,为你提供了不
第1章 WCF简介 (WCF Overview) 1.1 SOA基本概念的和设计思想 1.2 WCF是对现有Windows平台下分布式通信技术的整合 1.3 构建一个简单的WCF应用 步骤一:构建整个解决方案 步骤二:创建服务契约 步骤三:创建服务 步骤四:通过自我寄宿的方式寄宿服务 步骤五:创建客户端调用服务 步骤
如果一个类型,不一定是数据契约,和给定的数据契约具有很大的差异,而我们要将该类型的对象序列化成基于数据契约对应的XML。反之,对于一段给定的基于数据契约的XML,要通过反序列化生成该类型的对象,我们该如何实现这样的场景? 比如下面定义了两个类型Contact和Customer,其中Customer是数据契约,Contact的Sex属性相当于Customer的Gender属性,而Contact的FullName可以看成是Customer的FirstName和LastName的组合。现在我们要做的是将一个Co
现在我能找到的关于WCF性能方面的文章主要有几个,一个是微软Connected Frameworks Team的Saurabh Gupta (PM)2007年初发布了一个WCF的性能测试报告 作者使用WCF比较了四种常用的分布式技术 ASP.NET Web Services (ASMX) Web Services Enhancements (WSE) .NET Enterprise Services (ES) .NET Remoting ASMX--比传统的ASP.NET WebServices 快
在介绍终结点的ListenUriMode时,我们提到了两个特殊的对象ChannelDispatcher和ChannelListener。这两个对象在整个WCF的消息分发系统中具有重要的地位,在这节里,我们对WCF的整个消息分发过程作一个简单的介绍。 一、连接请求的监听 当我们通过ServiceHost对某个服务进行寄宿的时候,实际上WCF是在为我们创建一个监听器,并监听来自外界的服务访问请求。我们举一个例子,比如针对服务CalculateService,具有如下的配置:该服务具有基于BasicHttpBi
转载:http://www.csframework.com/archive/1/arc-1-20150109-2193.htm
我们知道WCF有3种典型的对service instance进行实例化的方式,他们分别与WCF的三种InstanceContextMode相匹配,他们分别是PerCall,PerSession和Single。PerCall为每次service invocation创建一个新的service instance; 而PerSession则让一个service instance处理来自通过各Session(一般是同一个proxy对象)的调用请求;而Single则是用同一个service instance来处理所有
作为团队里面挖掘机出身的我,怎么能不多挖一些坑好将小伙伴们都埋进去呢。本文来告诉大家一个有趣且简单的方法,此方法可以将本机的 WCF 玩坏,不敢说真的搞炸本机所有 WCF 应用,但搞炸大部分基于 WCF 的软件还是没有问题的。阅读本文,你可以不仅可以了解到有这样的逗比方法,更重要的是在你的 WCF 模块炸掉的时候,你知道要甩锅给谁
《我的WCF之旅》系列自开篇以来,得到了园子里很多朋友的厚爱,并荣登了博客园2007年度系列博文Top 10。由于工作原因,沉寂了几个月,今天开始WCF新的旅程。如果说《我的WCF之旅》主要是对WCF基本原理概括性介绍,而对于这个新的系列,我将和大家分享我对WCF的一些实现机制、设计原理的理解,以及我在实际的项目开发中的一些实践经验(比如在后续的一些文章中,我将介绍通过WCF Extension实现一些在真正的分布式项目开发中很有现实意义的功能)。 Windows Communication Foundat
从 .NET 3.5 开始 WCF 已经支持用 WebHttpBinding 构建 RESTful Web 服务,基于 WCF 框架的 RESTful Web 服务还是建立在 WCF Message 栈上,还是基于RPC风格的,因为 REST 的工作原理有所不同,它不需要依赖 SOAP 协议,因此 WCF 消息管道对于它经过了特殊的消息优化。但 REST 集成在 WCF 消息管道上还是不理想,所以微软重新开始构造基于Http 协议特点的RESTful的Web API, 从2010年10月份开始把代码放在co
通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了。概括地说,基于IIS的服务寄宿依赖于两个重要的对象:System.ServiceModel.Activation.HttpModule和System. ServiceModel.Activation.HttpHandler。 一、通过HttpModule实现服务寄宿 在默认的情况下,基于IIS的服务寄宿是通过一个特殊的HttpMo
菜菜刚开始接触WCF,一切都要从零开始,所以在此也记下笔记,以作日后翻看,大家也可以多多指点。
我们都知道,WCF支持Duplex的消息交换模式,它允许在service的执行过程中实现对client的回调。WCF这种双向通信的方式是我们可以以Event Broker或者订阅/发布的方式来定义和调用WCF Service。今天我们就给大家一个具体的例子:通过WCF的duplex communication方式现在Session管理。 一、Session 管理提供的具体功能 我们的例子实现了下面一些Session Management相关的功能: Start/End Session:可以调用service
什么是WCF Web Api ? 越来越多的互联网应用向外开放他们的功能,例如Flickr,Twitter和Facebook,国内也掀起了开放的浪潮。处理这些社会化的应用外,企业的组织也在暴露企业的应用功能。WCF Web API允许开发人员通过HTTP开放他们的应用程序、数据和服务。这允许开发人员可以充分利用HTTP作为应用程序的协议,应用程序可以和丰富的客户端进行交互,不仅仅是浏览器、移动设备、桌面应用还是其他的后端服务。他们还可以利用网络的高速缓存和代理的基础设施,通过提供适当的控制和实体头的方式,在
微软北京时间2015.5.20 在其 .NET Foundation GitHub 开源项目页中开放了 WCF 分布式服务框架的代码。WCF突然之间成为一个热门话题,在各大网站上都有不同的报道:dot
老的Windows通讯开发平台有:WebService和.net Remoting等。
领取专属 10元无门槛券
手把手带您无忧上云