.net 创建由第三方实施的WCF服务

.net 创建由第三方实施的WCF服务,.net,wcf,web-services,.net,Wcf,Web Services,我需要为将由我的公司托管但将由第三方实施的web服务创建web服务API和数据契约。最好的方法是什么 理想情况下,我不想要求第三方必须使用.NET或任何特定技术。我只想给他们操作和数据合同。如果您的第三方使用.NET,那么最简单的解决方案就是简单地将合同定义为C#或VB.NET中的接口-服务合同,操作合同(服务方法),数据契约(类型被来回传递)-但将实现留给第三方 基本上,您可以将所有这些粘贴到一个单独的类库程序集中,并将其作为API定义发送给该程序集。然后,第三方可以将服务实现作为C#/VB.

我需要为将由我的公司托管但将由第三方实施的web服务创建web服务API和数据契约。最好的方法是什么


理想情况下,我不想要求第三方必须使用.NET或任何特定技术。我只想给他们操作和数据合同。

如果您的第三方使用.NET,那么最简单的解决方案就是简单地将合同定义为C#或VB.NET中的接口-服务合同操作合同(服务方法),数据契约(类型被来回传递)-但将实现留给第三方

基本上,您可以将所有这些粘贴到一个单独的类库程序集中,并将其作为API定义发送给该程序集。然后,第三方可以将服务实现作为C#/VB.NET类库实现,并将其返回给您


如果您的第三方根本不使用.NET,那么您必须创建一个描述服务及其方法的WSDL(Web服务描述语言)文档,以及一些描述来回发送的数据类型的XSD(XML模式)文件

您可以通过基本上与上面相同的步骤(创建您的服务、操作和数据契约),然后自己实现该服务的“虚拟”实现来相当容易地做到这一点;然后启动该服务并从该运行服务创建WSDL/XSD。将这些文档发送给您的第三方,让他们实现服务本身


当然,您也可以手动编写WSDL/XSD,从无到有-但这接近于a)黑色艺术和b)受虐-不推荐…

如果你的第三方使用.NET,那么最简单的解决方案就是简单地将合同定义为C#或VB.NET中的接口-服务合同运营合同(服务方法),数据契约(类型来回传递),但将实现留给第三方

基本上,您可以将所有这些内容粘贴到一个单独的类库程序集中,并将该程序集作为API定义发送给您。然后,第三方可以将服务实现作为C#/VB.NET类库实现,并将其发送回您


如果您的第三方根本不使用.NET,那么您必须创建一个描述服务及其方法的WSDL(Web服务描述语言)文档,以及一些描述来回发送的数据类型的XSD(XML模式)文件

通过基本上与上面相同的步骤(创建服务、操作和数据契约),然后实现一个“虚拟”,您可以相当容易地做到这一点自己实现该服务;然后启动该服务并从运行的服务创建WSDL/XSD。将这些文档发送给您的第三方,让它们实现服务本身


当然,您也可以从零开始手动编写WSDL/XSD,但这近乎于a)黑色艺术和b)受虐狂-不推荐…

但是他们必须创建主项目并使用我们提供的操作和数据契约?如果他们根本不使用.NET怎么办?如果他们正在创建服务供您使用(并供您维护),那么您应该明确指定他们必须使用哪种技术。但是他们必须创建主项目并使用我们提供的操作和数据合同?如果他们根本不使用.NET呢?如果他们正在创建服务供您使用(并供您维护),那么您应该明确指定他们必须使用的技术。好的,我们生成WSDL和XSD,然后他们实现服务。然后我们必须实现该服务的客户端,我假设我不能使用Visual Studio中的generate service引用,除非他们有一个版本的服务已启动并正在运行?在svc.vb文件中标记每个方法,然后添加一个.asmx文件(内容与.svc文件类似),当您点击.asmx?wsdl时,您会得到一个传统的wsdl。@jjm340:您可以(a)从您创建的wsdl/XSD文件生成您的服务客户机,或者(b)从已实现的服务启动并运行后生成服务客户机-您可以选择。好的,我们生成wsdl和XSD,然后它们实现服务。然后我们必须实现该服务的客户端,我假设我不能使用Visual Studio中的generate service引用,除非他们有一个版本的服务已启动并正在运行?在svc.vb文件中标记每个方法,然后添加一个.asmx文件(内容与.svc文件类似),当您点击.asmx?wsdl时,您会得到一个传统的wsdl。@jjm340:您可以(a)从您创建的wsdl/XSD文件生成您的服务客户端,或者(b)从启动并运行后的已实现服务生成您的服务客户端—这是您的选择。