asp.net中传统Web服务与Web API的区别

时间:2014-11-14 16:49:35

标签: asp.net web-services asp.net-web-api

三年前我在visual studio 2010中创建了web服务。我在winform项目中使用此Web服务来执行一些在线功能。现在我想在visual studio 2013中创建Web服务。在这里,我看到web api而不是传统的Web服务。所以我的问题是传统的Web服务和Web API之间有什么区别?我可以在web api中实现与传统Web服务相同的功能吗?

1 个答案:

答案 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的功能

  • 服务导向。
  • 互操作性。
  • 多种消息模式。
  • 服务元数据。
  • 数据合同。
  • 安全。
  • 多种传输和编码。
  • 可靠和排队的消息。
  • 耐用消息。
  • 交易。
  • AJAX和REST支持。
  • 扩展。

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更好的性能。
  • XML序列化不会指示哪种类型的字段或属性序列化为XML而DataCotractSerializer
  • 明确显示哪些字段或属性已序列化为XML。
  • DataContractSerializer可以将HashTable翻译成XML。

http://www.codeproject.com/Articles/139787/What-s-the-Difference-between-WCF-and-Web-Services