WCF与Web API 区别(应用场景)

http://www.cnblogs.com/lei2007/archive/2013/09/10/3308450.html

Web api 

主要功能:

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

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

.请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回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,参看《WCF服务上应用protobuf》,对外的服务采用ASP.NET WEB APIWCF的 TCPNamed Pipes,甚至UDP(在WCF 4.5中)绑定的性能要比HTTP强很多倍,这里有一个几年前的微软的测试报告《WCF 性能基准报告》,对外提供的服务采用Web API同时也是一个业界标准问题,用WebAPI就很容易的跨越iosandroidwp等移动终端平台,同时有很成熟的OAuth 解决安全问题。

参考:

http://www.cnblogs.com/developersupport/p/3305458.html

http://www.cnblogs.com/shanyou/archive/2012/09/26/2704814.html http://www.cnblogs.com/chenxizhang/archive/2011/06/21/2085979.html

WCF与Web API 区别(应用场景)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
估计大家经常会碰到诸如:http://www.deepleo.com/12这样的链接,没有.php,.aspx,.jsp这样的后缀,这个是大势所趋。 其实这就是REST。REST翻译成中文就是:“表述性状态转移”:Representational State Transfer,是网络服务接口的一种风格,并不是一个标准。 REST常用的四种HTTP命令,GET、DELETE、PUT和POST。 GET:是获取资源,DELETE: 是删除资源,PUT:修改资源,POST:不用说就是添加资源。 就web service而言,REST要比SOAP(SOAP是标准,不是风格)轻量得多,容易得多。最初开始接触web service的时候,所有的材料上来就是一大堆的名词,SOAP, WSDL,看得头都要大了,后来提出来的REST就容易理解得多,虽然目前SOAP在企业级的web service中还有一席之地,但是在公共的Internet上,不是REST的服务实在不好意思和人打招呼,我们经常可以看到评价某某服务是RESTful的,但是从来没有听说某某服务是SOAPful的。 REST提出了一些设计概念和准则: 1.网络上的所有事物都被抽象为资源(resource); 2.每个资源对应一个唯一的资源标识(resource identifier); 3.通过通用的连接器接口(generic connector interface)对资源进行操作; 4.对资源的各种操作不会改变资源标识; 5.所有的操作都是无状态的(stateless)。 微软对REST的支持有点晚,自.NET3.5开始,WCF也可以提供RESTful接口。当然,REST不光限于web service,网页服务也可以RESTful,微软的ASP.NET MVC框架提供了直接的REST支持。 有关.net,MVC实现REST风格的方法请参见张善友老师的博客:http://www.cnblogs.com/shanyou/category/307401.html
对于C语言,可以从其发展背景、语言特点、应用范围及学习难度等角度来进行说明。 首先,C语言是一门由Dennis Ritchie在20世纪70年代初期开发的高级计算机编程语言。当时,这种语言用于著名的UNIX操作系统的编写,随后逐渐流行开来,成为当时计算机编程领域中最流行的编程语言之一。C语言具有跨平台性,可用于各种类型的计算机及操作系统,并被广泛用于系统软件、应用软件、嵌入式软件、通信协议等领域。 其次,C语言是一种面向过程的编程语言,其语法简洁清晰,易于学习和使用。C语言的特点包括强制类型检查、指针操作、结构体、位域、预处理等。C语言支持多种数据类型,包括整型、实型、字符型、数组、结构体等,提供了各种流程控制和运算符,能够有效地表达计算机的逻辑运算和功能实现。 再者,C语言在计算机领域中应用广泛。首先,C语言广泛运用于开发系统软件,如操作系统、编译器、库,以及设备驱动程序等。此外,C语言还被用于开发应用软件,如网络通信、嵌入式系统、游戏等。C语言还被广泛应用于科研计算、数据处理、算法分析及机器学习等领域。 最后,C语言的学习难度较大。由于C语言较为底层,需要理解计算机组成原理、操作系统等相关知识。其语法简单,但是指针、内存管理等内容较为抽象,需要有较强的逻辑思维能力和编程经验。因此,初学者需要通过大量的练习,结合实际编程项目的经验来提高自己的编程技能。 总之,C语言是一门非常重要的编程语言,其应用广泛,尤其在底层领域具有重要地位。了解C语言的语法特点、应用范围及学习难度,有助于我们更好地理解和应用这门语言。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值