【转】WCF、WebAPI、WCFREST、WebService之间的区别
在.net平臺(tái)下,有大量的技術(shù)讓你創(chuàng)建一個(gè)HTTP服務(wù),像Web Service,WCF,現(xiàn)在又出了Web API。在.net平臺(tái)下,你有很多的選擇來(lái)構(gòu)建一個(gè)HTTP Services。我分享一下我對(duì)Web Service、WCF以及Web API的看法。
Web Service
1、它是基于SOAP協(xié)議的,數(shù)據(jù)格式是XML
2、只支持HTTP協(xié)議
3、它不是開源的,但可以被任意一個(gè)了解XML的人使用
4、它只能部署在IIS上
?
WCF
1、這個(gè)也是基于SOAP的,數(shù)據(jù)格式是XML
2、這個(gè)是Web Service(ASMX)的進(jìn)化版,可以支持各種各樣的協(xié)議,像TCP,HTTP,HTTPS,Named Pipes, MSMQ.
3、WCF的主要問(wèn)題是,它配置起來(lái)特別的繁瑣
4、它不是開源的,但可以被任意一個(gè)了解XML的人使用
5、它可以部署應(yīng)用程序中或者IIS上或者Windows服務(wù)中
?
WCF Rest
1、想使用WCF Rest service,你必須在WCF中使用webHttpBindings
2、它分別用[WebGet]和[WebInvoke]屬性,實(shí)現(xiàn)了HTTP的GET和POST動(dòng)詞
3、要想使用其他的HTTP動(dòng)詞,你需要在IIS中做一些配置,使.svc文件可以接受這些動(dòng)詞的請(qǐng)求
4、使用WebGet通過(guò)參數(shù)傳輸數(shù)據(jù),也需要配置。而且必須指定UriTemplate
5、它支持XML、JSON以及ATOM這些數(shù)據(jù)格式
?
Web API
1、這是一個(gè)簡(jiǎn)單的構(gòu)建HTTP服務(wù)的新框架
2、在.net平臺(tái)上Web API 是一個(gè)開源的、理想的、構(gòu)建REST-ful 服務(wù)的技術(shù)
3、不像WCF REST Service.它可以使用HTTP的全部特點(diǎn)(比如URIs、request/response頭,緩存,版本控制,多種內(nèi)容格式)
4、它也支持MVC的特征,像路由、控制器、action、filter、模型綁定、控制反轉(zhuǎn)(IOC)或依賴注入(DI),單元測(cè)試。這些可以使程序更簡(jiǎn)單、更健壯
5、它可以部署在應(yīng)用程序和IIS上
6、這是一個(gè)輕量級(jí)的框架,并且對(duì)限制帶寬的設(shè)備,比如智能手機(jī)等支持的很好
7、Response可以被Web API的MediaTypeFormatter轉(zhuǎn)換成Json、XML 或者任何你想轉(zhuǎn)換的格式。
WCF和WEB API我該選擇哪個(gè)?
1、當(dāng)你想創(chuàng)建一個(gè)支持消息、消息隊(duì)列、雙工通信的服務(wù)時(shí),你應(yīng)該選擇WCF
2、當(dāng)你想創(chuàng)建一個(gè)服務(wù),可以用更快速的傳輸通道時(shí),像TCP、Named Pipes或者甚至是UDP(在WCF4.5中),在其他傳輸通道不可用的時(shí)候也可以支持HTTP。
3、當(dāng)你想創(chuàng)建一個(gè)基于HTTP的面向資源的服務(wù)并且可以使用HTTP的全部特征時(shí)(比如URIs、request/response頭,緩存,版本控制,多種內(nèi)容格式),你應(yīng)該選擇Web API
4、當(dāng)你想讓你的服務(wù)用于瀏覽器、手機(jī)、iPhone和平板電腦時(shí),你應(yīng)該選擇Web API
總結(jié)
以上是生活随笔為你收集整理的【转】WCF、WebAPI、WCFREST、WebService之间的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 余额宝与定期存款哪个划算?谁收益更高?
- 下一篇: 一句话即可解放双手:小米米家智能空气炸锅