摘要: REST是以资源为核心的,没有服务的概念,这的确让人怀疑REST能否像ORB或SOA一样支持复杂的应用?REST和以数据为核心的关系数据库是类似的。数据和资源本质上都是状态,对状态的操作CRUD少一个不行,多一个多余。因此,REST也采用CRUD四种标准操作,分别对应于HTTP协议的POST/GET/PUT/DELETE方法。  阅读全文
posted @ 2009-05-09 09:11 Todd Wei 阅读(1006) | 评论 (3)编辑
     摘要: REST(Representational State Transfer)是HTTP协议的作者Roy Fielding博士在其博士论文中提出的一种互联网应用构架风格。与以远程对象为核心的ORB和以服务为核心的SOA相比,以资源为核心的REST让我们从崭新的视角审视互联网应用。REST为互联网应用量身定做的简洁模型、与HTTP协议的完美结合、构架的高伸缩性,为互联网应用构架设计和异构系统集成设计带来了一股清新的空气。  阅读全文
posted @ 2009-05-08 01:38 Todd Wei 阅读(1951) | 评论 (21)编辑
     摘要: .NET反射提供了在运行时获取对象类型元数据的途径,使程序可以动态地调用对象的属性、方法。动态性带来的代价是反射调用不像基于静态类型的直接调用那样简洁,且缺乏类型检查机制,失去了IDE智能提示,容易出错。本文谈一种利用泛型和泛型委托为动态的反射添加静态类型约束的封装思路。  阅读全文
posted @ 2009-04-30 13:11 Todd Wei 阅读(1686) | 评论 (6)编辑
     摘要: 在我们熟悉的OO语言中,可以通过private、protected、public等访问控制修饰符将数据和方法分为内部可见、子类可见、外部可见等不同访问级别。本文从一个较为特别的封装相关例子出发,讨论封装、类型系统、契约式编程相关话题。  阅读全文
posted @ 2009-04-24 18:46 Todd Wei 阅读(1392) | 评论 (15)编辑
     摘要: 突变赋值让代码简洁优雅,可惜现在C#还没有对突变赋值运算符的支持,本文尝试在C#3.0中用扩展方法模拟突变赋值功能。  阅读全文
posted @ 2009-04-20 13:42 Todd Wei 阅读(2304) | 评论 (17)编辑
     摘要: 前面谈到了委托的好处,但可惜的是委托还无法覆盖接口或类的所有功能,有朋友提到“接口是对象功能的抽象,而委托是方法功能的抽象”就是这个意思。那么我们自然会想,有没有一种方式,能将委托的思想应用于对象呢?有!它就是:duck typing。前文已经谈到,duck typing关注“对象能做什么”或者说“如何使用对象”,对象继承自什么类,或者实现什么接口并不重要。  阅读全文
posted @ 2009-03-26 01:23 Todd Wei 阅读(2052) | 评论 (6)编辑
     摘要: 本文介绍两种OO多态哲学:继承哲学和鸭子哲学。继承哲学关注对象继承结构,即“你继承什么你就是什么”;鸭子哲学关注对象的性质,即“你能做什么你就是什么”。   阅读全文
posted @ 2009-03-16 21:58 Todd Wei 阅读(1991) | 评论 (14)编辑
     摘要: C#是一门优美且处于快速发展中的语言,它融合了静态和动态的优势,如果运用得当,必能动静结合,呈现出一种和谐之美。本篇是C#动静结合编程的第一篇,希望这个系列能和大家一起探讨如何在C#中最大限度的发挥动静结合的潜能。  阅读全文
posted @ 2009-03-11 12:53 Todd Wei 阅读(1701) | 评论 (10)编辑

WaitHandle用于实现对共享资源的独占访问,AutoResetEvent和ManualResetEvent都继承自它。WaitHandle.WaitOne方法将阻塞当前线程,直到WaitHandle收到信号。但有时候,我们需要非阻塞的方式测试WaitHandle状态,翻阅MSDN发现WaitOne有多个重载版本,其中

public virtual bool WaitOne(int millisecondsTimeout)
可以指定等待的时间间隔。如果当前实例收到信号,则为true;否则为false。特别地,如果 millisecondsTimeout为零,则该方法不会进入阻塞状态。该方法会测试等待句柄的状态并立即返回。
posted @ 2009-03-04 13:07 Todd Wei 阅读(166) | 评论 (0)编辑