2008年4月22日

摘要: 摘要: 无论对于Web Service还是WCF,Client和Service之间交互的唯一形式是通过发送和接收Soap Message。在我们对Web Service和WCF进行深入学习的时候,借助一些Soap Trace 工具对Soap Message进行深入剖析是非常有必要的。在这些工具之中,我觉得最好用的就是Microsoft Soap Toolkit中的Soap Trace U... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(164) 评论(0) 推荐(0)

摘要: 摘要: 在任何Application的开发中,对不可预知的异常进行troubleshooting时,异常处理显得尤为重要。对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地实现这一功能。但是对于 一个分布式的环境来说,异常处理就没有那么简单了。按照面向服务的原则,我们把一些可复用的业务逻辑以Service的形式实现,各个Service处于一个自治的环境中,一个Ser... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(82) 评论(0) 推荐(0)

摘要: 摘要: 在一个基于面向服务的分布式环境中,借助一个标准的、平台无关的Communication Infrastructure,各个Service通过SOAP Message实现相互之间的交互。这个交互的过程实际上就是Message Exchange的过程。WCF支持不同形式的Message Exchange,我们把这称之为Message Exchange Pattern(MEP), 常见... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(92) 评论(0) 推荐(0)

摘要: 摘要: 在一个分布式的环境中,我们往往需要根据具体的情况采用不同的方式进行数据的传输。比如在一个Intranet内,我们一般通过TCP进行高效的数据通信;而在一个Internet的环境中,我们则通常使用Http进行跨平台的数据交换。而这些通信方式具有一个显著的特点,那就是他们是基于Connection的,也就是说,交互双方在进行通信的时候必须保证有一个可用的Connection存在于他们... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(90) 评论(0) 推荐(0)

摘要: 摘要: 我们知道MSMQ天生就具有异步的特性,它只能以One-way的MEP(Message Exchange Pattern)进行通信。Client和Service之间采用One-way MEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的Exception。 但是在有些场景 中,这是无法容忍的。再拿我在上一篇... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(87) 评论(0) 推荐(0)

摘要: 摘要: 前几天在给人解释Windows是如何通过Kerberos进行Authentication的时候,讲了半天也别把那位老兄讲明白,还差点把自己给绕进去。后来想想原因有以下两点:对于一个没有完全不了解Kerberos的人来说,Kerberos的整个Authentication过程确实不好理解——一会儿以这个Key进行加密、一会儿又要以另一个Key进行加密,确实很容易把人给弄晕;另一方面... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(110) 评论(0) 推荐(0)

摘要: 摘要: 通过[原创]谈谈基于Kerberos的Windows Network Authentication - Part I 的介绍,我们发现Kerberos实际上一个基于Ticket的认证方式。Client想要获取Server端的资源,先得通过Server的认证;而认证的先决条件是Client向Server提供从KDC获得的一个有Server的Master Key进行加密的Sessio... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(82) 评论(0) 推荐(0)

摘要: 刚刚看了温网决赛,草地之王费德勒最终以3:2战胜纳达尔卫冕成功,并追平了网坛名宿博格在温网5连冠的记录。费德勒和纳达尔都是我最喜爱的两位网坛天王,任何一位夺冠都可以说是实至名归。整场比赛正式酣畅淋漓,不愧一场真正的巅峰对决,看得我大呼过瘾。唯一觉得不爽的是那个女的解说员,解说的时候明显站在纳达尔一边,即使在费天王破发的时候还在一个劲地赞美纳达尔。甚至对费德勒在发表获奖感言的时候对纳达尔的赞美,解说... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(81) 评论(0) 推荐(0)

摘要: 摘要: 我们知道,WCF是MS基于SOA建立的一套在分布式环境中各个相对独立的Application进行Communication的构架。他实现了最新的基于WS-*规范。按照SOA的原则,相对独自的业务逻辑以service的形式封装,调用者通过Messaging的方式调用Service。对于承载着某个业务功能的实现的Service应该具有Context无关性、甚至是Solution无关性... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(102) 评论(0) 推荐(0)

摘要: 摘要: 我们知道,在程序运行过程中,每个对象(object)都是对应了一块内存,这里的对象不仅仅指的是某个具体类型的实例(instance),也包括类型(type)本身。我想大家也很清楚 CLR如何为我们创建一个类型的实例(instance)的:CLR计算即将被创建的Instance的size(所有的字段加上额外的成员所占的空间: TypeHandle和SyncBlockIndex);在... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(73) 评论(0) 推荐(0)

摘要: 摘要: 在前两个月的时间内,我在园子里发表的两片介绍字符串的恒定性的文章:《字符串的驻留(String Interning)》和《深入理解string和如何高效地使用string》。前几天Anytao在他的《品味类型---值类型与引用类型(中)-规则无边》的文章中,针对字符串的恒定性展开了很好的讨论,昨天首页上又出现了亚历山大同志的讨论性质的帖子《关于String的终极解释》。大家已经讨... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(95) 评论(0) 推荐(0)

摘要: 摘要: Microsoft 的Visual Studio为我们在应用开发中提供的强大功能,我们是有目共睹。借助该工具,是我们的开发显得更加高效而轻松。从Microsoft把这个IDE的名字从VS.NET 该为VS(比如原来的Visual Studio.NET 2003,现在的版本叫VS2005),可以MS对该IDE的期望和野心:MS要把它改造成一个万能的IDE。不过任何都有其两面性,对于... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(88) 评论(0) 推荐(0)

摘要: 摘要: PIAB为我们提供了一个很好地实现AOP的方式。AOP旨在实现Business Logic和Non-Business Infrastructure Logic的分离。通过PIAB,我们将这些业务无关的逻辑定义在一个个的CallHandler中,然后通过Attribute或者Configuration的方式,将我们所需的CallHandler运用到相应的目标对象中。从这个意义上讲,... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(129) 评论(0) 推荐(0)

摘要: 摘要: 本系列的第一部分对PIAB使用场景进行了简单的介绍,作中阐述了通过PI(Policy Injection)的方式实现了Business Logic和Non-Business Infrastructure Logic的分离,从而实现了AOP(Aspect Oriented Programming)。在第二部分中详细介绍PIAB的实现机制:通过自定义RealProxy的方式实现了Me... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(94) 评论(0) 推荐(0)

摘要: 摘要: 在前面一篇文章中,我对Enterprise Library中的PIAB (Policy Injection Application Block)作了简单的介绍。在这篇文章主要谈谈我个人对PIAB设计和实现原理的一些理解。在介绍过程中,我尽量采用由浅入深出的方式,同时结合例子、Source Code。希望通过本片文章让大家对PIAB有一个全面、深刻的认识。 阅读全文Artech ... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(97) 评论(0) 推荐(0)

摘要: 摘要: 在过去的半年里,定期或者不定期地写点东西已经成为了我的一种习惯。可是最近两个月来一直忙于工作的事情一直足够的时间留给自己,虽然给自己列了很长一串写作计划,可是心有余而力不足。这一段工作主要是帮助公司开发一套分布式的开发框架,对一些技术和设计方法有了一些新的认识。这两天的工作主要是如何把Enterprise Library V3.1的PIAB(Policy Injection Ap... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(96) 评论(0) 推荐(0)

摘要: 摘要: 在谈谈基于SQL Server 的Exception Handling - PART II中,我给出了一个完整的例子说明了:如何在将message定义在sys.messages中保证message的一致性和可维护性;如何在Stored procedure中使用RAISERROR将一个可预知的Error抛出;如何在Stored procedure中使用TRY/CATCH进行异常的捕... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(82) 评论(0) 推荐(0)

摘要: 摘要: 在上面一节中,我通过RAISERROR重写了创建User的Stored procedure,实际上上面的Stored procedure是有问题的。我之所以没有立即指出,是因为这是一个很容易犯的错误,尤其是习惯了.NET Exception Handling的人更容易犯这样的错误。我们知道在.NET Application中,如果出现一个未处理的Exception,程序将立即终止... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(115) 评论(0) 推荐(0)

摘要: 摘要: 对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情。对于基于Source Code的Exception Handling,我想大家已经司空见惯了,但是对于Database级别的Exception Handling,就没有那么常见了。在这篇文章中,我将会介绍我对于基于Database编程中Exception Handling的一些粗浅的认识:在编写... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(95) 评论(0) 推荐(0)

摘要: 摘要: 软件工程是一门独特的工程艺术,需要解决的是不断改变的需求变化。而对于WCF,对于SOA,由于涉及的是对多个系统之间的交互问题,如何有效地解决不断改变的需求所带来的问题就显得更为重要:Service端版本的变化能否保持现有Consumer的正常调用,Consumer端的改变不至于影响对Service 的正常调用。对于Data Contract来说就是要解决这样的问题:Service... 阅读全文

posted @ 2008-04-22 23:06 dudubeibei 阅读(88) 评论(0) 推荐(0)