WCF学习随笔6--Version变更--我们在前进_AX
2008-3-20 15:50:22
客户端与服务必须就契约和策略达成一致
【WSDL契约简介】
为服务描述互操作契约
契约包含相关的策略
WSDL是契约和策略的载体.
描述服务及其端点(Endpoint)
绑定协议来访问操作(http/tcp)
消息和类型的定义
通过消息契约关注于每个操作的消息格式
【WS-Policy简介】
为影响通信的策略进行描述的户操作标准
能够包含在WSDL契约中
访问操作的协议描述
安全性 (认证)
可靠性消息 (描述上下文的协定)
事务
消息编码(MTOM)
其它的协议
WS一旦发布,WSDL契约就被确定
一般支持向后兼容,WCF契约缺省是提供版本相容性支持的
需求在变,版本更新在所难免,现在就遇到了版本控制的问题.
服务契约的变更
有三种处理服务契约的方法【只针对上表客户端不会被影响的操作】
Ⅰ.非严格的方法(平滑的方法)
同一命名空间下,在现有的契约上添加新方法,用户只有更新契约才知道新添加的方法.
Ⅱ.半严格的方法
新命名空间,新方法,新契约(继承自旧契约),并暴露新契约
如果暴露的新契约在新的Endpoint上,则新旧版本并存(平滑的方法)
如果暴露的新契约在旧的Endpoint上,则Client必须Update契约
Ⅲ.独立新版本
新命名空间,新方法,新契约.
这种版本需要:魄力+勇气+远见
数据契约的变更
Required:序列化之前必须要赋值
不要删除Required的成员
添加新的Non-Required成员
不改变命名空间
博客园→斧头帮少帮主
少帮主的斧头好久不饮血了!