12 2010 档案

摘要:SliverLight捕捉WCF服务异常,1 Contract[ServiceContract] public interface IWCFService { [OperationContract] int DoWork(int a,int b); [OperationContract] int DoWork2(int a, int b); [OperationContract] int DoDevide(int a, int b, ref string errorMessage); [OperationContract] int Devide(int a, int b, ref Except 阅读全文
posted @ 2010-12-31 16:12 cpcpc 阅读(183) 评论(0) 推荐(0) 编辑
摘要:一、One-way MEP V.S. Responsible Service我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。Client和Service之间采用One-way MEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的Exception。下图简单表述了基于MSMQ的WCF Service中Client和Service的交互。但是在有些场景 中,这是无法容忍的。再拿我在上一篇文章的Order Delivery的例子来说。Clien 阅读全文
posted @ 2010-12-31 15:55 cpcpc 阅读(246) 评论(0) 推荐(0) 编辑
摘要:一、为什么要使用MSMQ在一个分布式的环境中,我们往往需要根据具体的情况采用不同的方式进行数据的传输。比如在一个Intranet内,我们一般通过TCP进行高效的数据通信;而在一个Internet的环境中,我们则通常使用Http进行跨平台的数据交换。而这些通信方式具有一个显著的特点,那就是他们是基于Connection的,也就是说,交互双方在进行通信的时候必须保证有一个可用的Connection存在于他们之间。而在某些时候,比如那些使用拨号连接的用户、以及使用便携式计算机的用户,我们不能保证在他们和需要访问的Server之间有一个的可靠的连接,在这种情况下,基于Messaging Queue的连 阅读全文
posted @ 2010-12-31 15:50 cpcpc 阅读(305) 评论(0) 推荐(0) 编辑
摘要:在一个基于面向服务的分布式环境中,借助一个标准的、平台无关的Communication Infrastructure,各个Service通过SOAP Message实现相互之间的交互。这个交互的过程实际上就是Message Exchange的过程。WCF支持不同形式的Message Exchange,我们把这称之为Message Exchange Pattern(MEP), 常见的MEP包括: Request/Reply,Request/Forget(One-way)和Duplex。通过采用Duplex MEP,我们可以实现在Service端Callback Client的操作。虽然WCF为我 阅读全文
posted @ 2010-12-31 15:47 cpcpc 阅读(311) 评论(0) 推荐(0) 编辑
摘要:在任何Application的开发中,对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地实现这一功能。但是对于 一个分布式的环境来说,异常处理就没有那么简单了。按照面向服务的原则,我们把一些可复用的业务逻辑以Service的形式实现,各个Service处于一个自治的环境中,一个Service需要和另一个Service进行交互,只需要获得该Service的描述(Description)就可以了(比如WSDL,Schema和Strategy)。借助标准的、平台无关的通信构架,各个Service之间通过 阅读全文
posted @ 2010-12-31 15:45 cpcpc 阅读(218) 评论(0) 推荐(0) 编辑
摘要:无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace Utility和tcpTrace。我们今天就来讲讲如何在WCF中使用tcpTrace这个工具。首先我们来讲讲tcpTrace实现的基本原理。说的简单点TcpTrace就是一个监听/转发器(Listening/Forwar 阅读全文
posted @ 2010-12-31 15:38 cpcpc 阅读(223) 评论(0) 推荐(0) 编辑
摘要:WCF中的Session我们知道,WCF是MS基于SOA建立的一套在分布式环境中各个相对独立的Application进行Communication的构架。他实现了最新的基于WS-*规范。按照SOA的原则,相对独自的业务逻辑以service的形式封装,调用者通过Messaging的方式调用Service。对于承载着某个业务功能的实现的Service应该具有Context无关性、甚至是Solution无关性,也就是说个构成Service的operation不应该绑定到具体的调用上下文,对于任何调用,具有什么样的输入,就会有与之对应的输出。因为SOA的一个最大的目标就是尽可能地实现重用,只有具有Co 阅读全文
posted @ 2010-12-31 15:35 cpcpc 阅读(247) 评论(0) 推荐(0) 编辑
摘要:当今的IT领域,SOA已经成为了一个非常时髦的词,对SOA风靡的程度已经让很多人对SOA,对面向服务产生误解。其中很大一部分人甚至认为面向服务将是面向对象的终结,现在的面向对象将会被面向服务完全代替。在开始本Blog之前,我先来谈谈我对SOA和OO的区别,首先申明,这只是一家之言,欢迎大家批评指正,并且关于SO的谈论不是本Blog的主题,只是主题的引子,在这里只是简单讨论而已 。OO和SO之间具有共同的部分,在运用的领域上存在交集,只有在基于他们交集层面上谈论谁是谁非才有意义,下面是我对SO和OO的区别。OO关注的是如何通过对实体属性和行为的封装来重塑模拟软件环境的真实实体。对SO关注的则是对 阅读全文
posted @ 2010-12-31 14:57 cpcpc 阅读(289) 评论(0) 推荐(0) 编辑
摘要:几个星期之前写了一篇关于如何通过WCF进行 双向通信的文章([原创]我的WCF之旅(3):在WCF中实现双向通信(Bi-directional Communication) ),在文章中我提供了一个如果在Console Application 调用Duplex WCF Service的Sample。前几天有个网友在上面留言说,在没有做任何改动得情况下,把 作为Client的ConsoleApplication 换成Winform Application,运行程序的时候总是出现Timeout的错误。我觉得这是一个很好的问题,通过这个问题,我们可以更加深入地理解WCF的消息交换的机制。1.问题重现 阅读全文
posted @ 2010-12-31 14:29 cpcpc 阅读(298) 评论(0) 推荐(0) 编辑
摘要:对于.NET重载(Overloading)——定义不同参数列表的同名方法(顺便提一下,我们但可以在参数列表上重载方法,我们甚至可以在返回类型层面来重载我们需要的方法——页就是说,我们可以定义两个具有相同参数列表但不同返回值类型的两个同名的方法。不过这种广义的Overloading不被我们主流的.NET 语言所支持的——C#, VB.NET, 但是对于IL来说,这这种基于返回值类型的Overloading是支持的)。相信大家听得耳朵都要起老茧了。我想大家也清楚在编写传统的XML Web Service的时候,Overloading是不被支持的。原因很简单,当我们用某种支持.NET的高级语言写成的 阅读全文
posted @ 2010-12-30 14:04 cpcpc 阅读(281) 评论(0) 推荐(0) 编辑
摘要:... ...续Part IXMLSerializer提到XMLSerializer,我想绝大多数人都知道这是asmx采用的Serializer。首先我们还是来看一个例子,通过比较Managed Type的结构和生成的XML的结构来总结这种序列化方式采用的是怎样的一种Mapping方式。和DataContractSerialzer Sample一样,我们要定义用于序列化对象所属的Type——XMLOrder和XMLProduct,他们和相面对应的DataContractOrder和DataContractProduct具有相同的成员。usingSystem;usingSystem.Collec 阅读全文
posted @ 2010-12-30 14:00 cpcpc 阅读(217) 评论(0) 推荐(0) 编辑
摘要:SOA 和MessageWindows Communication Foundation (WCF) 是基于面向服务架构(Service OrientationArchitecture——SOA)的一种理想的分布式技术(Distributed Technology),相信在今后在建立基于SOA企业级别的解决方案和进行系统集成方面将会大有作为。一个基于SOA结构的互联系统(ConnectedSystem)通常由若干相互独立的子系统(Sub-System)组成,这些子系统可能一个独立的Application,也可能是由若干Application相互集成共同完成一组相关的任务的小系统。这些子系统以一 阅读全文
posted @ 2010-12-30 13:56 cpcpc 阅读(198) 评论(0) 推荐(0) 编辑
摘要:双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。一、两种典型的双工MEP1.请求过程中的回调这是一种比较典型的双工消息交换模式的表现形式,客户端在进行服务调用的时候,附加上一个回调对象;服务在对处理该处理中,通过客户端附加的回调对象(实际上是调用回调服务的代理对象)回调客户端的操作(该操作在客户端执行)。整 阅读全文
posted @ 2010-12-30 13:46 cpcpc 阅读(219) 评论(0) 推荐(0) 编辑
摘要:WCF实际上是构建了一个框架,这个框架实现了在互联系统中各个Application之间如何通信。使得Developers和Architect在构建分布式系统中,无需在考虑如何去实现通信相关的问题,更加关注与系统的业务逻辑本身。而在WCFInfrastructure中,各个Application之间的通信是由Endpoint来实现的。Endpoint的结构Endpoint包含以下4个对象:Address: Address通过一个URI唯一地标识一个Endpoint,并告诉潜在的WCF service的调用者如何找到这个Endpoint。所以Address解决了Where to locate th 阅读全文
posted @ 2010-12-30 13:39 cpcpc 阅读(262) 评论(0) 推荐(0) 编辑
摘要:为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。对那些对WCF不是很了解的读者来说,这个例子将带领你正式进入WCF的世界。在这个例子中,我们将实现一个简单的计算服务(CalculatorService),提供基本的加、减、乘、除的运算。和传统的分布式通信框架一样,WCF本质上提供一个跨进程、跨机器以致跨网络的服务调用。在本例中,客户端和服务通过运行在相同的同一台机器上不同进程模拟,图1体现了客户端和服务端进程互相调用的关系。图1 计算服务应用运行环境WCF的服务不能孤立地存在,需要寄宿 阅读全文
posted @ 2010-12-30 13:23 cpcpc 阅读(270) 评论(0) 推荐(1) 编辑
摘要:http://blog.sina.com.cn/s/blog_531b8eac0100dl4l.html#region 保存图片方法 /// <summary> /// 保存图片方法 /// </summary> /// <param name="bitMap">图片Bitmap对象</param> private void SaveImage(Bitmap bitMap) { bool isSave = true; SaveFileDialog saveImageDialog = new SaveFileDialog(); 阅读全文
posted @ 2010-12-30 10:50 cpcpc 阅读(4995) 评论(0) 推荐(0) 编辑
摘要:早就听说google map的api已经公开了但一直没时间看,今天看了两篇这方面的文章,觉得不错,理解了一些第一篇: [源代码]如何在你的程序中使用Google地图资源 原文地址:http://bbs.msproject.cn/default.aspx?g=posts&t=205[翻译]Pascal Buirey著How Google Map Works[开发环境]本例开发语言C#,不过可以应用到任何一种语言[简介]本文分析了Google地图是如何工作的,并指明tile(翻译成阶砖,也就是相同的方格子)是如何编码的。Google Map采用了发送一个简单的URL能够获取的tile。本文 阅读全文
posted @ 2010-12-30 09:52 cpcpc 阅读(388) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://www.cnblogs.com/wpwen/archive/2009/05/25/1489144.html本篇继续介绍Google Earth COM API开发的基础知识,相对第三篇的改进如下:1)增加鼠标滚轮支持,可以实现放大、缩小。此功能利用上一篇提供的HookAPI.dll实现2)读取PlaceMarks(Google Earth界面中的位置)并显示、隐藏3)读取所有图层,显示并隐藏下面,继续放代码:1、鼠标滚轮事件,实现放大、缩小 1: ... 2: // 放大 3: private const long ZoomIn = 0x00780000; 4: // 阅读全文
posted @ 2010-12-29 09:34 cpcpc 阅读(905) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://www.cnblogs.com/wpwen/archive/2009/02/22/1395622.html继《C#调用GoogleEarth Com API开发(一)》,我Neil又带给大家第二篇文章。这一篇文章在第一篇的基础上,展示如何调用Windows API将GoogleEarth的界面隐藏掉,并将GoogleEarth的地图显示在自定义的窗体上。废话少说,直接上代码。1、主窗口代码: 1: // 功能:GE实例(二) 2: // 描述:GE COM API 网址:http://earth.google.com/comapi/index.html 3: // 作者 阅读全文
posted @ 2010-12-29 09:33 cpcpc 阅读(901) 评论(0) 推荐(0) 编辑
摘要:原文地址:http://www.cnblogs.com/wpwen/archive/2009/05/22/1486892.html好久没有更新《C#调用Google Earth Com API开发》系列文章了,今天带给大家的是第三篇,本篇相对于第二篇主要改进了三个方面。1) 实现GoogleEarth显示画面随窗口大小改变而改变2) 截获GoogleEarth鼠标消息,实现单击、双击功能;鼠标滚轮缩放现在只能放大!O(∩_∩)O~3) 实现GoogleEarth彩色截图(测试环境:Windows 2003 Server ,Vista与Win7中不可用,XP未测)下面还是继续看代码:1、Goog 阅读全文
posted @ 2010-12-29 09:33 cpcpc 阅读(2887) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示