我有一个应用程序,它是一个用.NET 2.0编写的asmx Web服务,它有一些业务逻辑和一个存储库。
计划是这个Web服务将作为需要保存和检索的数据的应用程序的API。
从长远来看,我知道当.NET 2.0代码库被重构并成为.NET 4代码库时,Web服务可能会被WCF服务取代。
为了减少对API消费者的影响,我正在考虑将WCF服务作为外观放在asmx服务上是否是一个好主意。在重构.NET 2.0代码时,这将保持不变。当没有剩余.NET 2.0代码时,asmx服务将消失,WCF服务将在没有asmx服务的情况下与业务逻辑通信。
我的问题是
这会导致什么样的性能开销?
这个问题有更好的解决方案吗?
答案 0 :(得分:2)
您将为附加服务层支付双重序列化/反序列化惩罚。如果您的邮件很小,则不会那么明显。
您可能希望使用BasicHttpBinding部署同一服务的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上运行。