签订第一份 SOA 和 WCF 合同

Contract First SOA and WCF Contracts

我有一个简单的问题。我正在使用 WCF 创建 Web 服务。我已经创建了所有服务而没有填充操作体。现在我有了从服务合同自动生成的 wsdl 文件。如果我稍后对操作实现进行编码,这种方法是否 "Contract First"?

是的,因为您正在定义您与首先使用您的 API 的任何人之间的合同。通常(但不总是) contract/API 是通过接口定义的。

编辑:正如 Namphibian 在评论中所说,如果您首先构建 Web 服务契约,那么您会希望首先定义您的 WSDL 并从那里生成代码。我的回答假设您想先开发一个 .NET API 合同,然后您打算将其作为 Web 服务公开。

第二次编辑:我想补充一点,SOA 原则本身与 Web 服务无关。您可以构建仅通过其编码 API.

公开的服务

这不太正确。您首先模拟合同,但您仍然依赖 .Net 框架来生成 WSDL。在约定 first/WSDL 优先编码(自上而下)方法中,您使用 XML Spy 等工具编写 WSDL 文件。然后从 WSDL 生成代码。在您的方法中,您正在从接口创建 WSDL。

使用接口是进行此类开发的最成功方法,但是您仍然是先编写代码。让我用一个例子来阐明这一点。通常在 SOA 架构中,开发人员遵循 WSDL 优先的方法。在 WSDL 优先方法中,您通常会提交 WSDL 文件以供贵公司的 SOA 治理机构审查。然后将根据 SOA 治理策略对该 WSDL 进行衡量,看它是否适合。只有获得批准后,才会生成代码工件。

你所做的并没有错,但这不是契约优先的方法。