写点什么

使用尖括号和契约优先开发有何关联?

2009 年 7 月 12 日

Thinktecture 公司 Christian Weyer 宣布正式发布一款 Visual Studio 外接程序 WSCF.blue ,这是一款使用 WCF 进行 Web 服务的契约优先开发外接程序。

我创建这款 Web 服务的契约优先工具已经很长时间了… 这个工具简称 WSCF,既可用于命令行也可作为 Visual Studio 的外接程序使用,它主要定位于 ASMX 平台。

契约优先开发构思已经很久了。契约优先的需求来自于信息状态的规范表示,这些信息主要以 Web 服务请求的方式流动。大部分主流语言有支持 WSDL 和 XSD 的工具,以及用这些信息“契约”来描述 Schema 和 WSDL,而这种方式作为一种可互操作的解决方案是否可靠则存在着争议

契约优先的开发方式解决对象和 XML 之间的阻抗失配。由于 Xml Schema 语言的描述格式格外丰富,所以用它对协议建模需要考虑降低序列化和互操作性之间的区别,以下列出了部分内容:

  • 无法映射特定 Schema 语言的构造,例如:XSD 类型的扩展和约束
  • 无法映射或至少不能有效映射特定对象类型到 Schema 类型,例如:泛型列表和 HashMaps 等
  • 不能用 XML 有效的表示对象图形,尤其是不能用父 / 子关系来有效表示,父对象保留子对象的引用,而子对象也保留对父对象的引用
  • 定义语言未知的契约可提高互操作性,也让服务的设计人员遵守 WS-I 互操作标准
  • 促使企业间对契约定义的重复利用,例如:XSD 和 WSDL
  • 允许控制服务的版本并最终给监管提供借鉴

Visual Studio 2008 外接程序 WCSF.blue 是一个开源项目,它已经发布到 CodePlex 站点。该工具的功能如下所示:

  • WSDL 向导——开发者可从一个或者多个 XSD 开始逐步创建 WSDL
  • DataContract 生成器——类似于 XSD.exe、XSDObjectGen.exe 和 Svcutil.exe,可生成与.NET 兼容的 XSD 类型
  • 服务和终端存根(SVC)生成器
  • 客户代理生成器

该工具仍有若干待解决的问题,相信最终会在Beta 后的产品中得到解决。该工具还包含 WSCF.classic 外接程序 0.7 版本的相关指南。要是微软WCF 支持契约编码,就不需要尖括号、XSD 乃至WSDL。那么,使用WSDL 和XSD 对信息和服务契约建模的工具还有那么重要吗?

查看英文原文: How Relevant Is Contract First Development Using Angle Brackets?

2009 年 7 月 12 日 21:14994
用户头像

发布了 87 篇内容, 共 17.0 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

「架构师训练营」第 6 周作业 - CAP

森林

聊聊服务灾备

老胡爱分享

分布式架构 服务设计

Week06

熊威

蟒周刊-429-Python 3.8.4 可用ed

ZoomQuiet大妈

Python 大妈 蟒周刊

学会使用Vue JSX,一车老干妈都是你的

前端有的玩

Java Vue 前端 技巧 React

一个成都程序猿写于离开北京一周年与26岁生日的这一天

why技术

生活 程序人生 北漂 成都

架构师训练营第6周作业

饶军

Doris临时失效处理过程的UML时序图

周冬辉

解析软件系统稳定性的三大秘密

华为云开发者社区

开发者 软件开发 稳定性 系统 探索与实践

架构师训练营第六周作业

sunnywhy

CAP

Kiroro

「架构师训练营」第 6 周作业 - 总结

森林

架构师训练营第六周总结

王铭铭

简述 CAP 原理

已昏懒人

架构师训练营第六周作业

王铭铭

架构师训练营第六周命题作业

whiter

极客大学架构师训练营

CAP

东哥

CAP

架构学习第六周作业

乐天

CAP原理简介

elfkingw

CAP 原理及Doris 临时失效的处理过程

Acker飏

极客大学架构师训练营 CAP

架构师训练营第六周总结

sunnywhy

学习总结 - 第 6 周

饶军

总结

Kiroro

Kafka 是如何建模数据的?

tison

大数据 kafka

架构师训练营」第 6 周作业

edd

极客大学架构师训练营

猿灯塔:spring Boot Starter开发及源码刨析(六)

猿灯塔

static关键字真能提高Bean的优先级吗?答:真能

YourBatman

spring springboot SpringCloud 极客大学架构师训练营 Spring Bean

NOSQL - 第六周总结

孙志平

CAP原则

熊威

详解 Flink 实时应用的确定性

Apache Flink

flink

架构师训练营第六周学习总结

whiter

极客大学架构师训练营

微服务架构下如何保证事务的一致性

微服务架构下如何保证事务的一致性

使用尖括号和契约优先开发有何关联?-InfoQ