Reflection

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

随笔分类 -  WCF

摘要:在实际的应用程序中,可能经常会遇到在Service端如何统一处理异常,记Log等的问题。这些问题可能很多AOP框架已经给出了解决方案。其实对于WCF来说简单的做一下扩展就可以解决这个问题了。由于处理异常,记日志主要针对的是Operation级别,所以我选择的扩展点是IOperationInvoker接口,这个接口提供在Operation调用时的拦截。先看一下它的定义:publicinterface... 阅读全文
posted @ 2008-05-23 16:56 Reflection 阅读(3724) 评论(8) 推荐(2)

摘要:我们常说的WCF里面有ABC,那么B代表的就是Binding。那首先来大致了解一下什么是Binding。从图上可以看出,Binding为WCF运行时建立了Channel Stack,定义了消息在传输过程中比较重要的三件事:传输、编码、协议(包括安全性、可靠性等)。其中传输和编码是必须要提供的。从我们开发者的角度来说,Binding就是一个Binding Element的集合。Binding Ele... 阅读全文
posted @ 2008-05-22 15:25 Reflection 阅读(873) 评论(0) 推荐(0)

摘要:这一篇中,我将和大家探讨一下如何扩展WCF service端的Dispatcher。因为可以讨论的方面是十分多的,所以在这里我只是列举了几个可能是比较常用的扩展点。至于关于Dispatcher其他的扩展,相信大家不难找出。首先我们看一下Dispatcher的结构:图是从MSDN上搞到的,有点大。我们可以看到在ServiceHost下有两个Dispatcher:ChannelDispatcher、E... 阅读全文
posted @ 2008-05-21 15:45 Reflection 阅读(725) 评论(0) 推荐(0)

摘要:研究如何扩展WCF,其实是想更深入的了解一下WCF的架构,以及它的一些设计思想。所以在下面的几篇文章中,我想和大家一起探讨一下我们可以如何来扩展WCF,如何往它的体系结构中加入我们的东西。由于本人也才疏学浅,所以有讲的不对的地方,还希望大家不吝赐教。好,言归正传,我们首先来看看WCF的一个runtime architecture。把这个图上的内容搞清楚了,我想对于WCF的编程模型和如何来扩展就会比... 阅读全文
posted @ 2008-05-21 13:08 Reflection 阅读(635) 评论(1) 推荐(0)

摘要:在本次实验中,你将会和一个银行的程序打交道。通过这个程序,你将会看到如何加入transaction。首先你需要创建一个数据库。打开Transactions文件夹,使用Bank.sql脚本创建数据库。打开Bank.sln解决方案。想往常一样,解决方案中包含了服务端和客户端的程序。我们先来看服务端。服务端包含了AccountService和AccountManger两个服务。AccountServic... 阅读全文
posted @ 2008-04-11 16:41 Reflection 阅读(2160) 评论(5) 推荐(0)

摘要:在本次实验中你将会看到几种不同的operation方式:request/reply、one-way和duplex callbacks。打开Operation文件夹下的Operation.sln解决方案。程序是一个交通灯的管理系统。解决方案包含了三个项目:TrafficLightClient项目包含了一个winform程序,用来表示单个交通灯:TrafficController项目包含了一个winf... 阅读全文
posted @ 2008-04-11 16:32 Reflection 阅读(720) 评论(2) 推荐(0)

摘要:在本次实验中你将会体会到三种不同的实例管理模式。打开Instance Management文件夹下的InstanceManagement.sln解决方案。解决方案中包含了一个简单的服务器端和客户端。它们都被配置为了BasicHttpBinding。<services><servicename="MyNamespace.MyService"><endpointaddre... 阅读全文
posted @ 2008-04-11 13:03 Reflection 阅读(1592) 评论(2) 推荐(0)

摘要:在本次实验中,你将会了解到Data Contract以及有继承关系的Data Contract。打开Data Contract文件夹下的Know Type.sln解决方案。解决方案中包含了一个简单的contract管理的服务端和客户端。在Host项目中的ContractManager文件包含了以下一些服务: [DataContract] class Contact { string m_Fi... 阅读全文
posted @ 2008-04-11 09:57 Reflection 阅读(790) 评论(1) 推荐(0)

摘要:在本次实验中,你将会将一个普通的C/S程序移植为一个WCF的C/S程序。并且你也将会尝试不同的方式来完成WCF的配置工作,尝试不同的宿主方式和绑定设置。 经典Client/Server程序 打开Essentials文件夹下的WCFEssentials.sln解决方案。解决方案中包含了一个名字为MyClient的winform客户端和一个名为Service的类库。在Service project中... 阅读全文
posted @ 2008-04-10 22:25 Reflection 阅读(917) 评论(4) 推荐(0)

摘要:我一开始在学习WCF的时候,没有找到什么好的学习资料,只有网上搜资料,东看一些西看一些,加上自己动手去摸索。 最近从IDesign上得到了一个很好的入门的学习资料。这个资料中没有太多的原理性东西,都是step by step的教你如何做程序,如何去设计基于WCF的程序。于是我打算将它整理翻译成中文和大家共享。 教程提供了一些源代码,这些代码都是程序的骨架,然后我们可以根据教... 阅读全文
posted @ 2008-04-10 16:56 Reflection 阅读(649) 评论(5) 推荐(0)