WCF 开发日志 -
一、摘要由于公司需要使用WCF进行分布式开发,刚刚可以借用这个时候学学WCF了,随便在博客上记录下在项目中用到WCF的那些功能写的内容可能不全但是都是在项目中能用的实用的WCF功能点和技术。
下面引用网络上一长图片具体在那里看到的已经忘记了。
http://images.cnblogs.com/cnblogs_com/luomingui/201208/201208232252155608.jpg
下面引用网络上的一段话来描述这个图:
在宿主进程嵌入了一个或者多个服务,服务通过EndPoint也就是端点对外进行暴露,在客户端进程如果想获取宿主进程当中的服务,需要一个Proxy也就是代理,客户端进程如果说现在需要获取宿主进程当中的某一个服务的话,客户端把要求提交给代理,然后通过代理封装到EndPoint当中,再通过Message也就是消息的方式传到宿主进程当中的EndPoint,在提交到Service当中去处理,处理完毕在经过一个反向的过程。
二、本文大纲
a、摘要。
b、WCF契约设计 -- 契约知识 。
c、WCF契约设计 -- 契约示例 。
d、WCF契约设计 -- 契约总结。
e、WCF契约设计 -- 目前还没有用的。
三、WCF契约设计 -- 契约知识
在WCF当中服务契约是通过属性的方式来定义的,也就是我们希望在服务这一端暴露服务给客户端,我们可以在这些服务上面我们通过添加ServiceContract和OperationContract这样的属性,在以前我们开发WebService的时候要想给外界暴露一些Web方法的话需要添加WebMethod标记,ServiceContract和OperationContract的添加和WebMethod的添加是类似的效果 面向对象设计原则OO:
<1>单一职责原则(SRP): 一个类应当仅有一个引起它变更的原因。
<2>开放封闭原则(OCP): 类模块应当是可扩大的,然则不成批改(对扩大开放,对更改封闭)。
<3>Liskov 调换原则(LSP): 子类必须可以或许调换它们的基类。
<4> 依附倒置原则(DIP): 高层模块不该该依附于低层模块,二者都应当依附于抽象。 抽象不该该依附于实现细节,实现细节应当依附于抽象。
<5>接口隔离原则(ISP): 不该该强迫客户法度依附于它们不消的办法。
接口时辰即遵守单一职责和接口隔离等原则,又要推敲体系的开辟本钱。公道的接口是专业的、松耦合的、规矩化和可重用的接口
接口分发原则
http://pic002.cnblogs.com/images/2012/284255/2012051920321942.png
(接口或类的设计应该征询OOP)
应用于接口或者类中建议应用于接口中 消除服务实现的耦合性 服务可能会实现多于1个契约总是提供有意义的命名空间能够显式地指定Name http://images.cnblogs.com/cnblogs_com/luomingui/201209/201209090923429878.png 如:<div style="border-bottom: #4f81bd 1px solid; text-align: left; border-left: #4f81bd 1px solid; line-height: 18px; background-color: white; margin: 0px; width: 100%; font-family: 'Courier New','Consolas','Fixedsys','BitStream Vera Sans Mono', courier,monospace,serif; height: 89px; color: black; font-size: 12px; overflow: auto; border-top: #4f81bd 1px solid; border-right: #4f81bd 1px solid">[ServiceContract(Name = "HeatingManagerService",Namespace= "http://www.cnblogs.com/luomingui")] public interface IHeatingManagerBase { ....... }
页:
[1]