2010-04-20 167 views
1

场景:我有一个现有的https ASP.NET网站,我将添加一些新的远程服务。这些服务提供的计算需要通过站点上的AJAX方法以及.NET桌面应用程序进行调用。ASP.NET Web服务与WCF服务

我一直在使用ASP.NET WebServices(用ScriptService属性标记)来完成此操作。我刚刚发现了WCF。

根据我的理解,在这种情况下,WCF服务将提供的一个普通的旧.NET Web服务似乎主要是通过各种其他通信渠道(如Message Queue和COM +)进行连接的能力。我从未见过这个项目发生过。

那么告诉我,为什么我应该考虑WCF?

回答

4

WCF提供了一个非常可定制的平台;几乎任何部分的WCF堆栈都可以用您自己的自定义组件替换。改变通信协议只是冰山一角。通过此设计,可以完成您无法轻松使用ASP.NET Web服务的事情。

例如,我最近编写了一个审计组件,它侦听WCF服务或客户端上的请求应答传输,并将它们全部写入审计数据库。 WCF为消息拦截器提供扩展点来访问消息并在它们仍然是XML时对它们执行操作。因此,我写了大约100行代码来完成我想要的功能。

使用WCF的一个支持理由是工具。 WCF提供了更好的测试,配置和诊断服务的工具。除此之外,作为.NET服务的解决方案,现在有许多专门针对WCF平台的工具和实用程序。

WCF完全替代ASP.NET Web服务。我建议.NET服务中的所有新工作应尽可能在WCF中完成。您是否应该将现有项目迁移到WCF是另一回事,WCF的优势需要超过更换正常运行解决方案的成本。

4

即使您目前没有计划添加不同的服务端点,也不应该将其排除为可能。你永远不知道有人可能需要什么。这就是说,如果.NET Web服务满足您的需求,并且您不需要WCF添加的额外好处(简单的端点交换,更紧密集成的标准安全性等),那么请不要同时使用这两种服务。

如果您的代码正在工作并完成工作,那么仅仅为了说您使用新技术而投入时间就没有任何意义。等待调查WCF,直到您确实需要它提供的功能。

+1

如果没有损坏,请不要用最新的闪亮技术取代它,只是因为它太闪亮。 +1 – 2010-04-21 10:59:43