我是WCF和Web服务的新手。 WCF带来了哪些改进?任何人都可以提供传统Web服务的并排示例以及使用WCF编写的同一个示例并指出差异和优势吗?
答案 0 :(得分:5)
编辑:想想我找到了你在哪里寻找基于代码的基于代码的比较的答案,甚至更好的是来自MSDN:Comparing ASP.NET Web Services to WCF Based on Development
有几个相关的问题:
然而,您要求进行并排比较,在这种情况下,我认为Sam的Wcf vs ASMX博客文章更符合您的需求。
引用ad-verbatim(如果我将其留作链接,请告诉我):
WCF与ASMX
协议支持
WCF
- HTTP
- TCP
- 命名管道
- MSMQ
- 定制
- UDP
ASMX
- 仅限HTTP
托管
ASMX
- 只能在IIS上使用HttpRuntime进行托管。
WCF
- WCF组件可以托管在.NET 3.0中的任何类型的环境中,例如控制台应用程序,Windows应用程序或IIS。
- WCF服务被称为“服务”而不是Web服务,因为您可以在没有Web服务器的情况下托管服务。
- 自托管服务使您可以灵活地使用HTTP以外的传输。
WCF向后兼容性
- WCF的目的是为分布式应用程序提供统一的编程模型。
- 向后兼容性
- WCF利用现有技术堆栈的所有功能,而不依赖于任何技术堆栈。
- 使用这些早期技术构建的应用程序将在安装了WCF的系统上继续保持不变。
- 现有应用程序可以使用WCF升级
- 新的WCF事务处理应用程序将与基于System.Transactions构建的现有事务应用程序一起使用
WCF& ASMX集成
- WCF可以使用WS- *或HTTP绑定与ASMX页面进行通信
ASMX的限制:
- ASMX页面不会告诉您如何通过传输传递它并使用特定类型的安全性。这是WCF非常显着的增强功能。
- ASMX与HTTP运行时紧密耦合,并依赖IIS来托管它。 WCF可由任何能够托管.NET Framework 3.0的Windows进程托管。
- ASMX服务基于每个呼叫进行实例化,而WCF通过提供各种实例化选项(如Singleton,私有会话,每次调用)为您提供灵活性。
- ASMX提供了互操作性的方式,但它不提供或保证端到端的安全性或可靠的通信。
答案 1 :(得分:3)
WCF的范围远远超过ASP.Net webservices。
答案 2 :(得分:3)
ASP.NET Web服务就是这样。网页服务。它们基于SOAP / WSDL,仅向Web提供服务。
WCF服务提供了更灵活的框架。例如,根据服务的定义方式,它可以是IIS中托管的Web服务,它通过XML序列化其数据并使用REST模型......或者它可以是托管在其自己的进程中的远程Windows服务,通过二进制序列化其数据。所有这些都是使用WCF中的不同服务/数据合同来实现的。
简而言之......您可以非常轻松地使WCF服务看起来与.NET 2.0 Web服务几乎完全相同,但只需要做一点工作,您就可以做得更多。