WCF和WebService区别

本文对比了WCF和WebService的特点及应用。WCF是Microsoft提供的SOA架构框架,支持多种通信协议、消息格式和安全机制;而WebService则遵循一套行业标准,侧重于跨平台的数据交换和服务交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:http://www.cnblogs.com/baixiaoxu/archive/2011/04/11/2023974.html

http://q.cnblogs.com/q/16848/

http://social.microsoft.com/Forums/zh-CN/wcfzhchs/thread/c06420d1-69ba-4aa6-abe5-242e3213b68f

WCF(框架)和WebService(规范) 都是基于Soap 协议来进行通讯的(其实soap协议也是xml格式的)

【1】Web Service:严格来说是行业标准,也就是Web Service 规范,也称作WS-*规范,既不是框架,也不是技术。
【2】ASP.NET Web Service:微软提供了Web服务的开发框架,属于ASP.NET Framework的一部分,但是支持早起的WS规范。比如SOAP1.1。
【3】WCF:WCF 是一个分布式应用的开发框架,属于特定的技术,或者平台。既不是标准也不是规范。

 

1.WCF
Microsoft 平台上的Soa架构用于构建分布式和可交互式操作的应用程序
统一了ASMX,.NET Remoting 与 Enterprise Service的开发模型
为各种应用提供单一的编程模型
基于配置驱动的协议选择,消息格式,进程分配等等
并没有限制在特定的协议,编码格式,或者主机环境上
所有的选项都是可配置的
wcf‘服务通过给客户端暴露端点,让客户端来调用(通过代理类的调用)
2.WebService
在构建和使用Web Service时,主要用到以下几个关键的技术和规则:
1.XML:描述数据的标准方法.
2.SOAP:简单对象访问协议.
3.WSDL:Web服务描述语言.
4.UDDI(Universal Description, Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于XML语言的用于在互联网上描述商务的协议。
长项一:跨防火墙的通信
长项二:应用程序集成
长项三:B2B的集成
长项四:软件和数据重用
短处一:单机应用程序
短处二:局域网的同构应用程序

 

WCF 支持多种通信协议 Http/Https 、TCP/UDP、MSMQ、命名管道、对等网、
消息可达性、事务流等。
WCF 可以与ASP.NET 集成、共享一个上下文(HttpContext)。
WCF 支持多种消息传输格式 :text,binary,mtom,Json 等。
WCF 安全性要强:支持对称安全、非对称安全、消息安全、传输安全、
SSL 流安全、Windows 流安全等。
WCF 支持多种会话模式:单向、双向、请求/响应。
WCF 支持REST 。
WCF 支持多种格式化方式。DataContractSerializer、XmlSerializer、
   DataContractJsonSerializer 等。
WCF 支持 WAS hosting、Windows 服务 hosting、Self-Hosting、IIS hosting 等。
WCF 支持多种并发模式:单例、单调、会话 。

转载于:https://www.cnblogs.com/cynthiahuo/archive/2013/06/14/3135880.html

<think>好的,用户想要了解.NET中的WCFWebService,我需要先理清楚两者的基本概念、区别以及应用场景。首先,回忆一下WebService,它应该是一种基于SOAP的远程调用技术,使用XML进行数据交换,通常通过HTTP协议传输。而WCF是微软推出的更全面的服务框架,整合了多种通信方式,支持多种协议,不只是HTTPSOAP,可能还包括TCP、Named Pipes等。 接下来,需要明确两者的区别WebService可能更简单易用,适合基本的跨平台通信,而WCF则更加强大灵活,适合复杂的分布式系统。需要提到WCF的统一编程模型,支持多种传输协议消息格式,而WebService可能受限于HTTPSOAP。 然后,要考虑用户可能的实际需求。他们可能在选择技术栈时遇到困惑,比如什么时候用WebService,什么时候用WCF。需要给出具体的适用场景,例如WebService适合简单的Web服务,而WCF适合需要多种协议或事务支持的企业级应用。 还要注意两者的技术实现差异。WebService通常使用.asmx文件,而WCF使用.svc文件,并且配置更加复杂,基于ABC(地址、绑定、合同)模型。需要解释这些术语,但保持简洁。 另外,要提到WCF的扩展性安全性,支持WS-*标准,而WebService可能在安全方面需要额外配置。同时,WCF可以ASP.NET集成,但也可以独立运行,而WebService通常依赖于IIS。 可能还需要比较两者的性能可维护性,WCF由于配置灵活,可能在性能调优方面更有优势,但学习曲线较陡。WebService则更适合快速开发简单的服务。 最后,要总结何时选择哪种技术,可能涉及项目需求、团队熟悉度、未来扩展性等因素。需要给出建议,帮助用户根据具体情况做出决策。 需要确保回答结构清晰,分点说明,用例子帮助理解,同时避免技术术语过多导致混淆。检查是否有遗漏的关键点,比如REST支持,因为WCF后来也支持RESTful服务,而WebService主要基于SOAP。可能还要提到Web API作为替代方案,但用户的问题主要集中在WCFWebService,所以简要带过即可。 现在组织语言,先定义两者,再分点比较,最后给出场景建议。保持口语化,避免使用Markdown格式,使用自然的中文段落分点符号。确保符合系统级指令中的格式要求,数学表达式用$...$,但在这个问题中可能用不到,但需要保持警惕。例如,如果有任何公式或代码,正确使用格式,但当前内容可能不涉及。检查LaTeX语法是否正确,不过可能这里不需要。使用中文回答,结构清晰,逐步解释。</think>**.NET WCF WebService 的核心区别应用场景** **1. WebService(ASP.NET WebService)** - **定义**:基于**SOAP协议**的远程调用技术,使用XML格式传输数据,依赖HTTP协议(如GET/POST)。 - **特点**: - 简单易用,适合**跨平台通信**(如Java调用.NET服务)。 - 通过**.asmx文件**定义服务,使用`[WebMethod]`标记公开方法。 - 默认仅支持**HTTP协议****文本传输**,扩展性有限。 - **示例场景**: 快速构建一个查询天气的接口,供外部网站调用。 **2. WCF(Windows Communication Foundation)** - **定义**:微软统一的**服务框架**,整合了WebService、Remoting、MSMQ等技术,支持**多种协议**(HTTP、TCP、Named Pipes等)**消息格式**(SOAP/JSON)。 - **特点**: - **ABC模型**:基于`地址(Address)`、`绑定(Binding)`、`合同(Contract)`的配置模式。 - 支持**双向通信**(如双工合约)、**事务处理****高级安全性**(WS-Security)。 - 通过**.svc文件**托管服务,配置灵活(可用代码或配置文件)。 - **示例场景**: 企业内部系统需要同时支持HTTP(对外)TCP(高速内网通信),且需事务一致性保障。 --- **核心对比表** | **特性** | **WebService** | **WCF** | |------------------|-----------------------------|----------------------------------| | **协议支持** | 仅HTTP | HTTP、TCP、MSMQ、Named Pipes等 | | **消息格式** | SOAP/XML | SOAP、JSON、二进制等 | | **通信模式** | 请求-响应 | 请求-响应、单向、双工 | | **安全性** | 依赖HTTPS | 支持传输/消息级安全(WS-*标准) | | **复杂性** | 低 | 高(需配置ABC模型) | --- **何时选择?** - **选择WebService**: - 需要快速实现简单的跨平台服务。 - 仅需HTTP通信且无复杂事务需求。 - **选择WCF**: - 需支持多种协议或高性能传输(如TCP)。 - 需要高级特性(如事务、双工通信)。 - 未来可能扩展服务功能(如集成消息队列)。 --- **迁移替代** - **WebServiceWCF**:微软提供工具(`svcutil.exe`)自动生成代理类。 - **现代替代方案**:若仅需RESTful API,可考虑**ASP.NET Web API**(更轻量,适合移动端)。 **总结**:WebService是轻量级解决方案,而WCF是功能全面的企业级框架。根据项目复杂度、协议需求及扩展性决定技术选型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值