2011-05-26 73 views
1

我在一个组织内托管了一个WCF服务,并且我希望能够将一个客户端构建成一个程序集DLL,并将其打包并提供给任何想要使用该服务的人。将WCF客户端打包成一个用户程序集

我可以创建一个类库,并简单地添加一个服务引用,构建并分发它。任何关于另一种方法的建议?

回答

0

服务主机将会是什么?如果它将是一个基于HTTP的应用程序,将其放入ASP.NET应用程序中很有意义。否则,是的,启动课程库。基于评论

更新客户端的包装真的取决于接收器会用它做。如果您的目标是开发人员或现有的内部应用程序,那么该图书馆是一个不错的选择(尽管我可能会将它包装在一个.msi文件中以使用户熟悉这种体验)。如果需要用户界面,那么显然你会想要考虑一个合适的用户界面框架(WPF,Silverlight,WinForms等)

+0

对不起,我的问题含糊不清。我实际上想打包客户端,而不是服务 – TesterTurnedDeveloper 2011-05-26 04:27:29

0

在我之前的工作中,我们一直这样做。我们会有一个库项目,只包含SVCUTIL代理生成和配置文件。

这样我们的其他项目可以利用这个库,我们只有一代代理。在SOA模型中很棒。

在你的情况下,你可以分发这个组件,如果你想。就我个人而言,我发现您控制的内部案件的收益更大,但是我想如果您真的感到慈善,为客户分发.NET版本将是有益的。

1

我在我以前的组织中做过类似的事情。我还有额外的要求,即库应该是COM可见的,以便传统的C++应用程序可以使用该API。

我竟然没有要求客户端提供任何WCF配置,除了通过API(服务URL,超时等...)传递一堆参数。 WCF是以编程方式配置的。我处于一个非常严格控制的环境中,在那里我完全了解图书馆的客户并可能影响他们的设计。这种方法对我很有用,但是他们说你的里程可能会有所不同。

+0

我很有兴趣知道如何在代码中设置WCF配置。你能提供关于如何做到这一点的指针吗? – TesterTurnedDeveloper 2011-05-26 07:07:51

+0

你应该可以谷歌它。尝试从这里开始:http://stackoverflow.com/questions/2943148/how-to-programmatically-connect-a-client-to-a-wcf-service – 2011-05-26 07:39:53

0

我只想提供一个包含所有必需合同的库。就是这样 - 他们可以编写自己的客户端代理。

您的用户是否知道如何使用WCF?如果没有,请包含一个代理类来实例化一个频道并调用该服务。

我真的没有看到提供一个只包含svcutil生成的代码的程序集。为什么不给用户一个WSDL,然后他们可以自己生成这些代码?分发样板似乎不是一个好主意。