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成员
不改变命名空间
博客园→斧头帮少帮主
少帮主的斧头好久不饮血了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架