我有一个简单的问题。我正在使用WCF来创建Web服务。我已经创建了所有服务而没有填充操作体。现在我从服务合同中自动生成了wsdl文件。如果我稍后编写操作实现,这种方法是“契约优先”吗?
答案 0 :(得分:1)
是的,因为您要定义您与首先使用API的任何人之间的合同。通常(但不总是)合同/ API是通过接口定义的。
编辑:正如Namphibian在评论中所说,如果您首先构建Web服务合同,那么您首先要定义WSDL并从那里生成代码。我的回答是假设你想先开发一个.NET API契约,然后你就会把它作为一个Web服务公开。
第二次编辑:我想补充一点,SOA原则本身与Web服务无关。您可以构建仅通过其编码API公开的服务。
答案 1 :(得分:1)
这不太正确。您首先模拟合同,但您仍然依赖.Net框架来生成WSDL。在契约优先/ WSDL第一个编码(自上而下)方法中,您使用XML Spy等工具创建WSDL文件。然后从WSDL生成代码。在您的方法中,您将从接口创建WSDL。
使用接口是进行此类开发的最成功方法,但您仍然需要先执行代码。让我用一个例子来澄清一下。通常在SOA体系结构中,开发人员遵循WSDL第一种方法。在WSDL第一种方法中,您通常会提交WSDL文件以供公司的SOA治理主体审核。然后将根据SOA治理策略测量此WSDL,以确定它是否适合。一旦获得批准,就会生成代码工件。
你所做的事情并没有错,但这不是合约第一的方法。