我有wcf服务。还有一些我们的客户使用delphi7来使用我们的服务。 Delphi7无法使用wcf(甚至是basicHttpBinding),所以我必须创建我的wcf web服务的asmx模拟。现在我正在寻找更好的方法在相同的代码库上构建wcf和asmx服务。使用相同的代码(相同的方法,逻辑)构建,维护两个服务的最佳方法是什么
谢谢Andrew
答案 0 :(得分:3)
使用动态链接库(* .dll)来存放两个项目的共享代码,引用和利用。
通过这种方式,您可以为适当的平台提供两种服务,这些服务只调用共享代码库公开的方法,在一个地方进行编辑并进一步部署时,适用于所有呼叫者。
答案 1 :(得分:1)
您可以创建一个BusinessManager,它封装所有逻辑,然后从wcf或asmx中创建一个实例,并调用正确的方法传递从调用者收到的实际参数。
我使用BusinessManager这个词来定义类与你自己的业务逻辑有关,但它只是一个类,无论是静态的还是不是,我通常更喜欢不使这些类静态。
答案 2 :(得分:1)
如果现有的WCF服务已经托管在ASP.NET Web应用程序/站点中,您可以轻松地将普通的旧ASMX Web服务添加到其中。
右键点击您的项目 - >添加 - >新物品 选择网络 - >滚动到底部 - >网络服务。
然后让您的Web服务调用您的WCF方法。
答案 3 :(得分:0)
Delphi 7支持调用COM(ActiveX)对象,不是吗?
为什么不为WCF服务构建COMVisible .NET客户端,并通过COM接口在Delphi中使用它。
这样您就不必同时维护ASMX和WCF服务。