使用WCF服务暂时使用asmx Web服务

时间:2011-02-22 15:36:02

标签: .net wcf web-services refactoring

我有一个应用程序,它是一个用.NET 2.0编写的asmx Web服务,它有一些业务逻辑和一个存储库。

计划是这个Web服务将作为需要保存和检索的数据的应用程序的API。

从长远来看,我知道当.NET 2.0代码库被重构并成为.NET 4代码库时,Web服务可能会被W​​CF服务取代。

为了减少对API消费者的影响,我正在考虑将WCF服务作为外观放在asmx服务上是否是一个好主意。在重构.NET 2.0代码时,这将保持不变。当没有剩余.NET 2.0代码时,asmx服务将消失,WCF服务将在没有asmx服务的情况下与业务逻辑通信。

我的问题是

这会导致什么样的性能开销?

这个问题有更好的解决方案吗?

2 个答案:

答案 0 :(得分:2)

您将为附加服务层支付双重序列化/反序列化惩罚。如果您的邮件很小,则不会那么明显。

您可能希望使用BasicHttpBinding部署同一服务的WCF版本。这样你就可以获得两全其美:

  • 该服务正在使用WCF部署在一个地方(并且仍可供旧版客户端使用)
  • 如果需要更新的代码,可以使用不同的绑定公开其他端点。

编辑:当然,您可以使用基于WCF的代理将新代码连接到旧代码。只要你保持相同的名称,你后来的服务重构就不会太痛苦。

答案 1 :(得分:1)

我将您的问题读作“我可以从.Net 4 WCF服务引用.Net 2.0组件”

此链接 confirms

.NET Framework 4向后兼容使用.NET Framework 1.1,2.0,3.0和3.5构建的应用程序。换句话说,使用以前版本的.NET Framework构建的应用程序和组件将在.NET Framework 4上运行。