WCF 4 高级编程
http://pic002.cnblogs.com/images/2012/95554/2012101612575416.jpg第2章 服务契约与数据契约
在SOA架构中,契约提供了服务通信所必需的元数据。契约用来定义数据类型、操作、消息交换模式和消息交换使用的传输协议。契约通常是XML格式发布的。在WCF中,服务元数据通常是用WSDL(Web Service Description Language, Web服务描述语言)文档格式来描述的。有关这方面的详细内容,可以访问 http://www.w3.org/TR/wsdl 。
如果不同模式之间必须严格保持一致,则每个修改实现后,必须赋给契约一个新的版本。
如果不同模式之间没有必要严格保持一致,则只需注意以下几点:
服务契约版本控制
[*]可以在任何时候添加新方法。
[*]可以不删除任何已存在的方法。
[*]参数的数据类型必须保持兼容。
数据契约版本控制
[*]不要由于继承的原因给数据契约赋予一个新版本,而是要创建一个独立的新数据类。
[*]为了方便双向版本控制,必须一开始就实现IExtensibleDataObject接口。
[*]如果确实需要改变数据类或数据成员的名称,请使用DataContract或DataMember特性生成兼容的数据契约。
[*]不要随便对数据类型进行修改。
[*]不要改变由属性确定的数据成员的顺序。
[*]保持IsRequired的默认值(false)不变。
[*]可以在任何时候添加数据成员,但是必须记住,这会改变序列化的顺序。可以把新成员的Order属性设置为当前版本值。如第2版,就赋予Order=2.
[*]不要删除数据成员。
[*]不要对IsRequired属性做后续的修改。
第3章 绑定
配置和使用绑定时,必须记住:传输绑定元素和编码绑定元素必须是指定的第一个和第二个元素,这是因为它们保证了通道之间的可靠通信。
带有“net”前缀的绑定表示它们是利用.NET特性设计的,因而可以执行许多高性能的操作。带有“ws”前缀的绑定表示可以应用于所有系统,而且符合Web标准。
如何选择一个合适的绑定呢?
最明显的决定是根据是否需要与非WCF应用程序交互。如果服务需要与WCF客户端通信,则可以使用任何以net开头的绑定。
当修改basicHttpBinding的MessageEncoding属性、将它的默认值从Text改为Mtom.Mtom(消息传输优化机制,Message Transmission Optimization Mechanism)时,可以把SOAP消息按原始字节进行发送,从而实现用较小的消息传递大量的数据,这种修改会大大改善系统的性能。
持续更新中...
页:
[1]