.net 合同优先SOA和WCF合同

.net 合同优先SOA和WCF合同,.net,web-services,wcf,soa,contract-first,.net,Web Services,Wcf,Soa,Contract First,我有一个简单的问题。我正在使用WCF创建web服务。我创建了所有服务,但没有填充操作机构。现在我有了从服务契约自动生成的wsdl文件。如果我稍后编写操作实现,这种方法是“契约优先”的吗?是的,因为您是在定义您与任何首先使用API的人之间的契约。通常(但并非总是)合同/API是通过接口定义的 编辑:正如Namphibian在评论中所说,如果您首先构建web服务契约,那么您将希望首先定义WSDL并从中生成代码。我的回答假设您想先开发一个.NETAPI合同,然后将其作为web服务公开 第二次编辑:我想

我有一个简单的问题。我正在使用WCF创建web服务。我创建了所有服务,但没有填充操作机构。现在我有了从服务契约自动生成的wsdl文件。如果我稍后编写操作实现,这种方法是“契约优先”的吗?

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

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


第二次编辑:我想补充一点,SOA原则本身与web服务无关。您可以构建只通过编码的API公开的服务。

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

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


您所做的并没有错,但它不是合同优先的方法。

是的,我使用了接口来定义合同。这是正确的方法吗?@JimSimon你的方法基于一些好的原则。始终使用接口。然而,这不是安静的契约优先方法,它需要创建并实现WSDL。我无意中投了反对票,现在我的票被锁定了。你能把答案修改一下吗?这样我就可以投票了。我很抱歉这不是故意的。就在周一凌晨,我正忙着喝第一杯咖啡。编辑后的内容包括您的反馈。:)那么,你的意思是,只有我自己编写WSDL文件,它才是契约优先的方法吗?@NadiaNahar学术上说是的。请记住,web服务是使用WSDL描述的契约。这非常像Java或.Net中的接口。但是,接口没有指定实现。因此,使用契约优先的方法,intrface(WSDL)可以在任何技术(.Net/Java/Delphi/PHP)中实现。你的方法是建立在坚实的基础上的。始终使用接口,而不是实现。这将导致松散耦合和更敏捷的开发。