惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
D
Docker
Martin Fowler
Martin Fowler
人人都是产品经理
人人都是产品经理
GbyAI
GbyAI
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
M
MIT News - Artificial intelligence
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
H
Hackread – Cybersecurity News, Data Breaches, AI and More
N
Netflix TechBlog - Medium
B
Blog RSS Feed
云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
The Cloudflare Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
U
Unit 42

博客园 - 斧头帮少帮主

猜一猜,会输出什么? ASP.NET错误处理的两种方案_AX Log4Net最简单的使用配置_AX 一个修改后的JS日历(Calendar)控件_AX - 斧头帮少帮主 - 博客园 页面回传(PostBack)后恢复滚动条的位置_AX - 斧头帮少帮主 - 博客园 Hidden Field 的值不能回传(PostBack)到后台_AX Delegate(代理)异常:该委托必须有一个目标 WCF学习随笔5--我知道:Known--可憐的孩子_AX WCF学习随笔4--契约|序列化详解--祭斧_AX WCF学习随笔3--第一个Sample--祭斧_AX - 斧头帮少帮主 - 博客园 WCF学习随笔2--Contract--磨斧_AX WCF学习随笔1--扫盲--磨斧_AX 把项目运行情况写入系统日志(Log)的三种方法【续】_AX 把项目运行情况写入系统日志(Log)的三种方法_AX 为用户控件User Control添加事件_AX XML常用操作总结_AX DataTable常用操作总结_AX - 斧头帮少帮主 - 博客园 .NET(C#)代码性能优化_AX - 斧头帮少帮主 - 博客园 Panel的不足及弥补_AX - 斧头帮少帮主 - 博客园
WCF学习随笔6--Version变更--我们在前进_AX
斧头帮少帮主 · 2008-03-21 · via 博客园 - 斧头帮少帮主

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成员
不改变命名空间

博客园斧头帮少帮主