我应该选择WCF还是ASMX web服务



我的网站当前在ASP.NET 1.1中运行

旧流程

在我们的数据库中,我们存储了大量用于解码的数据。我们必须每周更新这组庞大的数据表(数据由供应商提供)。

在我们的网站(asp.net 1.1)中,我们查询数据库以解码信息

新流程

现在,我们不想将数据存储在我们的数据库中并查询它们,而是想通过web服务来替换它,AS现在供应商正在为我们提供一个DLL,它将为我们提供解码的信息

供应商提供的DLL信息

提供的DLL只能在4.0站点中添加。所以这也意味着我不能直接将dll添加到我的1.1网站这个DLL公开了某些方法,我们只需在我们的web服务中添加DLL引用,然后调用该方法并获取所需的信息。

因此,我们将不必将这些信息存储在我们的数据库中。

那么,我应该选择哪种类型的web服务(asmx或WCF),它将使用供应商提供的DLL来获取解码的信息

我在web服务中寻找的灵活性是:

  • 它可以直接从asp.net 1.1网站消费,也可以使用jQuery ajax
  • 它可以从服务器上运行的其他web服务中使用
  • 它可以从服务器上运行的一些windows服务中使用

注意此外,我们计划在未来将我们的网站从asp.net 1.1版本迁移到4.0版本。因此,它应该对未来的升级起到很大的支持作用

如果我理解正确,您打算创建一个Web服务,该服务将引用供应商提供的DLL,并将解码后的数据返回到ASP.NET 1.1网站。

我会认真建议您选择WCF web服务,因为它的目标是.NET 4.0 Framework。相信我,从长远来看,这是有回报的。此外,根据MSDN,.asmx web服务被认为是一种遗留技术(请随意查阅MSDN)。继续使用WCF,不要从劣势开始!

如果您现在想继续使用asp.net 1.1,那么asmx服务是您唯一的选择。更可取的做法是使用asmx服务,该服务反过来使用ajax并兼容不同的平台(事实上,它是一个soap服务),您可以获得与它的良好互操作性

此外,我在这里有点困惑。如果你有一个由服务提供商提供的dll,你可能根本没有选择。dll将决定使用哪个服务与提供商数据源通信。您的供应商是否为您提供了选择?

WCf比web服务更灵活——老式的soap——以前是ajax,现在wcf的体系结构更加面向服务。所以不要再使用web服务了。

由于WCF通过SOAP协议进行通信,我建议您最好的选择是创建一个单独的.Net 4.0 Web服务项目(如果您愿意,可以在同一解决方案中),然后可以由您的.Net 1.1网站引用。

您还可以"双重装饰"您的新WCF方法,将其作为ASMX web服务公开,以实现与网站的向后兼容性,并通过分阶段迁移减少停机时间,请参阅本文。或者,再做一点工作,如果您喜欢立即切换客户端中的服务调用,Microsoft有一个向ASMX客户端公开WCF的指南。我能看到的最简单的方法是简单地将现有的asmx服务代码复制粘贴到.Net4项目中,并在适当的地方替换使用新dll的方法,请参阅本文。

当迁移完成,.Net 1.1网站被重构以编译和利用.Net 4的新功能时,该服务可能会再次转移到主网站项目中(如果你愿意的话),尽管我个人更喜欢将它们分开。

迁移到WCF和.Net 4应该会带来很多好处,微软增加了一些简单的方法来改进你的程序,WCF分配得更灵活,可能会被更广泛的客户端使用(请参阅此处),我发现越来越难找到对遗留技术的支持。

HTH-

相关内容

  • 没有找到相关文章

最新更新