博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF与Web API 区别(应用场景)
阅读量:6816 次
发布时间:2019-06-26

本文共 1552 字,大约阅读时间需要 5 分钟。

Web api 

主要功能:

支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

.请求的回复通过Http Status Code表达不同含义,并且客户端可以通过来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式

应用场景:

如果服务需要在http协议上,并且希望利用http协议的各种功能,

如果服务需要被各种客户端(特别是移动客户端)调用,选择Web API

 

WCF

主要功能:

分布式通信框架的集大成者

 应用场景:

1.SOAP Services:这是因为WCF服务是基于消息的通讯机制,而它的消息是被封装为一个SOAP EnvelopeSOAP 信封的)

2.WebHttp Services:是在传统的SOAP Services基础上的一个增强,它仍然是基于操作(Operation)的,只不过这些Operation可以直接通过Uri访问到,而无需客户去编写一个特殊的客户端。(ps: 实质是webservice,用的最多的)

同时,WebHttp Services提供了两种不同的消息格式,第一种是XML,第二种是Json。这将更加有利于诸如Javascript这种客户端来访问服务。

要实现WebHttp,我们首先要添加一个引用 

3.WCF Data Service:持两种数据模型,一种是LINQ to SQL, 一种是ADO.NET Entity Frmawork

4. Workflow Services:这是一个很有意思的服务。这是在.NET Framework 4.0中开始出现的,也就是随着Workflow Foundation升级到4.0之后,提供了一种全新的服务类型,简单地来说,它是可以直接与Workflow Foundation(工作流)想结合的一种服务。 

5.RIA Services:RIA的意思是,Rich Internet Application。在微软平台上,Silverlight就是RIA战略中的核心产品,所以很显然,RIA Service主要就是为Silverlight服务的。这个是.NET Framework 4.0中才有的功能,并且还需要安装RIA Service Toolkit

总结:

现在我们拥有了2个服务框架,一个基于RPC(远程过程调用(Remote Procedure Call) )机制的WCF和一个基于HTTPASP.NET Web Api

在我们的开发实践中如何进行选择呢? 可以参照知名互联网企业,无论是googlefacebook,baidu,新浪还是腾讯。他们对外开放的接口都是基于HttpWeb API,在服务内部框架都是基于SOA架构设计的,通讯机制都是采用RPC机制的,例如Google Protocol Buffers Facebook thift。 我们完全也可以这样搭配,在内部通讯采用WCF + Protobuf-NET,参看《》,对外的服务采用ASP.NET WEB APIWCF的 TCPNamed Pipes,甚至UDP(在WCF 4.5中)绑定的性能要比HTTP强很多倍,这里有一个几年前的微软的测试报告《》,对外提供的服务采用Web API同时也是一个业界标准问题,用WebAPI就很容易的跨越iosandroidwp等移动终端平台,同时有很成熟的OAuth 解决安全问题。

参考:

 

转载于:https://www.cnblogs.com/lei2007/p/3308450.html

你可能感兴趣的文章
linux内核段属性机制【转】
查看>>
eclipse设置系统字体
查看>>
复旦大学考研科目
查看>>
16、Java并发性和多线程-死锁
查看>>
Linux下用netstat查看网络状态、端口状态
查看>>
Java 实现有序链表
查看>>
zoj 1203 Swordfish
查看>>
手机怎么访问电脑服务器上的网页
查看>>
Python帮助函数调试函数 用于获取对象的属性及属性值
查看>>
制做rpm包工具fpm安装
查看>>
POJ 2253-Frogger (Prim)
查看>>
哪种锻炼方式最能让程序猿远离亚健康? - 强烈推荐
查看>>
基于Metronic的Bootstrap开发框架经验总结(15)-- 更新使用Metronic 4.75版本
查看>>
Kafka(二)-- 安装配置
查看>>
MapReduce 图解流程
查看>>
网络安全基本概念
查看>>
[总结]高效的jQuery代码编写技巧总结
查看>>
有没有想过,也许一辈子你都是个小人物
查看>>
[LeetCode] Wildcard Matching
查看>>
Android开发系列(二十三):实现带图片提示的Toast提示信息框
查看>>