三年前我在visual studio 2010中创建了web服务。我在winform项目中使用此Web服务来执行一些在线功能。现在我想在visual studio 2013中创建Web服务。在这里,我看到web api而不是传统的Web服务。所以我的问题是传统的Web服务和Web API之间有什么区别?我可以在web api中实现与传统Web服务相同的功能吗?
答案 0 :(得分:3)
ASP.NET中的Web服务
Web Service是可通过标准Web协议访问的可编程应用程序逻辑。其中一个Web协议是简单对象访问协议(SOAP)。 SOAP是W3C提交的注释(截至2000年5月),它使用基于标准的技术(用于数据描述的XML和用于传输的HTTP)来编码和传输应用程序数据。
Web服务的消费者不需要了解用于实现服务的平台,对象模型或编程语言;他们只需要了解如何发送和接收SOAP消息(HTTP和XML)。
WCF服务
Windows Communication Foundation(WCF)是一个用于构建面向服务的应用程序的框架。使用WCF,您可以将数据作为异步消息从一个服务端点发送到另一个服务端点。服务端点可以是IIS托管的连续可用服务的一部分,也可以是应用程序中托管的服务。端点可以是从服务端点请求数据的服务的客户端。消息可以像发送为XML的单个字符或单词一样简单,也可以像二进制数据流一样复杂。
必须使用WCF的场景
将使用Windows Workflow Foundation实现的工作流公开为WCF服务。
用于轮询服务以获取最新数据的Silverlight应用程序 饲料。
WCF的功能
ASP.NET中Web服务的区别& WCF服务
WCF是Microsoft所有早期Web服务技术的替代品。它的功能远远超过传统上被视为“网络服务”的功能。
WCF“Web服务”是通过WCF启用的更广泛的远程通信范围的一部分。与传统的ASMX相比,您将在WCF中获得更高程度的灵活性和可移植性,因为WCF是从头开始设计的,用于总结Microsoft提供的所有不同的分布式编程基础架构。 WCF中的端点可以通过SOAP / XML与TCP /二进制文件一样轻松地进行通信,并且更改此介质只是一个配置文件mod。从理论上讲,这可以减少移植或更改业务需求,目标等所需的新代码量。
ASMX比WCF旧,ASMX可以执行的任何操作都可以是WCF(以及更多)。基本上你可以看到WCF试图将所有不同的方式组合在一起,让两个应用程序在微软世界中进行通信; ASMX只是众多方式中的一种,因此现在归入WCF的能力范围。
只能通过HTTP访问Web服务。它在无状态环境中工作,WCF非常灵活,因为它的服务可以托管在不同类型的应用程序中。托管WCF服务的常见方案是IIS,WAS,自托管,托管Windows服务。
主要区别在于Web服务使用XmlSerializer
。但是WCF使用DataContractSerializer
,与XmlSerializer
相比,性能更好。
XmlSerializer将.NET类型序列化为XML的关键问题
Public
字段或.NET类型的属性翻译成XML。IEnumerable
接口的类。IDictionary
接口的类,例如哈希表。DataContractSerializer和XMLSerializer之间的重要区别
DataContractSerializer
的实际好处是比Xmlserializer
更好的性能。DataCotractSerializer
。DataContractSerializer
可以将HashTable
翻译成XML。http://www.codeproject.com/Articles/139787/What-s-the-Difference-between-WCF-and-Web-Services