在一个场景中,当同时开发客户端和WCF时,我们如何向客户端提供数据交换和操作合同?
抱歉没有提前添加细节。 WCF由另一个团队创建,仅设计。在这种情况下,我们如何开始客户开发?我们是否需要等到构建WCF才能创建svc文件?
答案 0 :(得分:1)
向客户端项目添加服务引用,让svcutil为您创建代理
您可以决定在两个项目中共享数据合同程序集,还是依赖于添加服务引用时动态创建的数据合同
答案 1 :(得分:0)
不,您不需要等待WCF服务团队。如果你需要你的项目管理和WCF服务团队非常糟糕。最简单的方法是以迭代方式开发应用程序,让您的服务团队成为一个迭代。但我不喜欢这个想法,因为在迭代结束时,服务团队会提供“未经测试”的服务,因为您将在下一次迭代中首次使用它。
因此,更好的方法是同时实现功能并仅提供客户端和服务的工作组合(迭代期间的集成测试)。在此方案中,您应首先与WCF服务团队定义合同。合同是WSDL + XSD。这种技术有时被称为自上而下或先收缩。主要思想是你想要集成在一起,你想要同时进行开发。因此,您首先需要设计通信接口(服务/操作合同),这些接口将由WSDL描述并传输数据(数据/消息合同),这些将在从WSDL引用的XSD中描述。您还可以通过在下一次迭代中添加新操作以迭代和增量方式执行此操作。两个团队都必须测试他们的代码=单元测试和模拟(在客户端)。
对于客户端开发来说就足够了。您可以使用创建的WSDL + XSD来创建服务代理。服务团队可以使用WSCF.blue或其他工具从定义的合同中构建服务框架。
这种技术的最大缺点是你必须能够编写WSDL和XSD,或者你需要有一些好的工具(我推荐商业Altova XMLSpy Enterprise)。替代方法是在服务端的代码中定义契约,并在没有任何内部实现的情况下创建服务(所有方法都返回null),并让WCF为您生成WSDL。