入围51CTO 2009年度“最受读者欢迎的IT图书作者”评选
《WCF技术剖析(卷1)》自出版以来,深受广大WCF爱好者的厚爱,并入围了51CTO 2009年度“最受读者欢迎的IT图书作者”评选,如果你觉得觉得这本书对你学习和使用WCF还有点帮助,你不妨投上一票(同时入围的还有园子里的一哥李会军同志)。投票地址:http://book....
WCF技术剖析之二十九:换种不同的方式调用WCF服务[提供源代码下载]
我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码和配置;通过ChannelFactory<TChannel>创建服务代理对象。在这篇文章中,我们采用一种独特的方式进行服务的调用。从本质上讲,我们只要能够创建于服务端...
WCF技术剖析之二十八:自己动手获取元数据[附源代码下载]
元数据的发布方式决定了元数据的获取行为,WCF服务元数据架构体系通过ServiceMetadataBehavior实现了基于WS-MEX和HTTP-GET的元数据发布,针对这两种不同的协议,元数据获取的实现方式也是不同的。我们首先来实现基于WS-MEX的元数据获取方式。 [Source Code从这...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
基于HTTP-GET的元数据发布方式与基于WS-MEX原理类似,但是ServiceMetadataBehavior需要做的更多额外的工作。原因很简单,由于在WS-MEX模式下,我们为寄宿的服务添加了相应的MEX终结点,那么当服务被成功寄宿后,WCF已经为元数据的消息交换建立了如图1所示的分发体系,我...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
通过《如何将一个服务发布成WSDL[编程篇]》的介绍我们知道了如何可以通过编程或者配置的方式将ServiceMetadataBehavior这样一个服务形式应用到相应的服务上面,从而实现基于HTTP-GET或者WS-MEX的元数据发布机制。那么在WCF内部具体的实现原理又是怎样的呢?相信很多人对此都...
WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]
对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考《如何导出WCF服务的元数据》),仅仅是完成了一半的工作。被成功导出的以MetadataSet对象表示的元数据需要最终作为可被访问的网络资源发布出来,才能被服务消费者获取,进而有效...
WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[扩展篇]
通过《实现篇》对WSDL元素和终结点三要素的之间的匹配关系的介绍,我们知道了WSDL的Binding元素来源于终结点的绑定对象,那么这些基于Binding的元数据以及相应的策略断言是如何被写入WSDL的呢?WSDL导出扩展(WSDL Export Extension)和策略导出扩展(Policy E...
WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)[实现篇]
元数据的导出就是实现从ServiceEndpoint对象向MetadataSet对象转换的过程,在WCF元数据框架体系中,元数据的导出工作由MetadataExporter实现。MetadataExporter是一个抽象类型,定义了导出元数据的基本行为。WCF定义一个具体的MetadataExpor...
WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]
在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy、WS-Transfer和WSDL,因为WCF元数据结构体系完全是基于WS-MEX等相关的规范之上。熟悉这些基本的WS规范,对于我们全面、深刻的理解WCF整个元数据架构体系具有十分重要的意义。不仅仅是针对元...
WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]
元数据实际上是服务终结点的描述,终结点由地址(Address)、绑定(Binding)和契约(Contract)经典的ABC三要素组成。认真阅读过《WCF技术剖析(卷1)》的读者相对会对这三要素的本质有一个深刻的认识:地址决定了服务的位置并实现相应的寻址机制;契约描述了消息交换模式(Message ...
群星闪耀的两岸三地2009 MVP Open Day
MVP Open Day是微软为各位MVP举办的一年一度的大型线下聚会,今年的主题是“两岸三地”,非常荣幸地,这是我第一次参加Open Day,碰见了有来自香港、台湾和大陆等各地的传闻中的MVP们,见到了传说中的紫柔,还见到了传说中的Sisley、Eddie和MVP Team...
2009 China MVP Open Day 第一天
我是第一次这么有空闲时间,也难得碰到一次大型聚会活动,所以参加了微软举办的MVP OPEN DAY(一年一度的中国区MVP高峰聚会,会有微软的高层来分享技术,和各种丰富的交流活动),来会会各路高手和见见一些传闻中的人物。昨天(2009年12月9号)就到了北京,下午3:10分抵达首都机场,飞机上说外面...
WCF版的PetShop之三:实现分布式的Membership和上下文传递
通过上一篇了解了模块内基本的层次划分之后,接下来我们来聊聊PetShop中一些基本基础功能的实现,以及一些设计、架构上的应用如何同WCF进行集成。本篇讨论两个问题:实现分布式的Membership和客户端到服务端上下文(Context)的传递。 一、 如何实现用户验证 对登录用户的验证是大部分应...
WCF版的PetShop之二:模块中的层次划分[提供源代码下载]
上一篇文章主要讨论的是PetShop的模块划分,在这一篇文章中我们来讨论在一个模块中如何进行层次划分。模块划分应该是基于功能的,一个模块可以看成是服务于某项功能的所有资源的集合;层次划分侧重于关注点分离(SoC:Separation of Concern ),让某一层专注于某项单一的操作,以实现重用...
《程序员羊皮卷》中的职场江湖
【已刊登至《中华读书报》2009年11月11日】 首先我要衷心地感谢Leo(张大志)慷慨地赠予我这本他的新著《程序员羊皮卷》!对于一个整日与电脑打交道的从业者来说,最惬意的周末莫过于捧一本好书,沏一杯香茗,在窗边的小桌旁静静地品读和思考(再伴随窗外这2009年北京的第一场雪,真是太完美了!)。感谢L...
WCF版的PetShop之一:PetShop简介[提供源代码下载]
在《WCF技术剖析(卷1)》的最后一章,我写了一个简单基于WCF的Web应用程序,该程序模拟一个最简单的网上订购的场景,所以我将其命名为PetShop。PetShop的目在于让读者体会到在真正的项目开发中,如何正确地、有效地使用WCF。在这个应用中,还会将个人对设计的一些总结融入其中,希望能够对读者...
WCF技术剖析之二十四: ServiceDebugBehavior服务行为是如何实现异常的传播的?
服务端只有抛出FaultException异常才能被正常地序列化成Fault消息,并实现向客户端传播。对于一般的异常(比如执行Divide操作抛出的DivideByZeroException),在默认的情况下,异常信息无法实现向客户端传递。但是,倘若为某个服务应用了ServiceDebugBehav...
WCF技术剖析之二十二: 深入剖析WCF底层异常处理框架实现原理[下篇]
WCF客户端和服务端的框架体系相互协作,使得开发人员可以按照我们熟悉的方式进行异常的处理:在服务操作执行过程中抛出异常(FaultException),在调用服务时捕获异常,完全感觉不到“分布式”的存在,如同典型的“本地”操作一般。为了实现这样的效果,WCF在内部为我们作了很多。 消息交换是WCF...
《WCF技术剖析》博文系列汇总[持续更新中]
近半年以来,一直忙于我的第一本WCF专著《WCF技术剖析(卷1)》的写作,一直无暇管理自己的Blog。在《WCF技术剖析(卷1)》写作期间,对WCF又有了新的感悟,为此以书名开始本人的第三个WCF系列。本系列的目的在于对《WCF技术剖析》的补充,会对书中的一些内容进行展开讲述,同时会囊括很多由于篇幅...