.NET 4 上的REST 框架
兩種常見的分布式應用架構(gòu)風格包括:DO(分布式對象)、RPC(遠程過程調(diào)用)。這兩種架構(gòu)風格在企業(yè)應用中得到了廣泛的應
用,然而,Web架構(gòu)的設(shè)計者們卻有意避免采用這兩種架構(gòu)風格。主要的原因是運行Web應用的互聯(lián)網(wǎng)環(huán)境,與運行企業(yè)應用的企業(yè)內(nèi)網(wǎng)環(huán)境有很大的差別。
那么,互聯(lián)網(wǎng)環(huán)境有哪些獨有的特點呢?
1. 可伸縮性要求難以預測和無法控制:一個Web應用的并發(fā)訪問量,是開發(fā)者難以預測和無法控制的。
2. 安全性要求難以預測和無法控制:一個Web應用所接受的請求格式,是開發(fā)者難以預測和無法控制的,有可能出現(xiàn)大量惡意構(gòu)造的請求格式。
3. 松耦合至關(guān)重要:因為存在著大量異構(gòu)的系統(tǒng),必須要追求最大限度的松耦合。
4. 簡單性至關(guān)重要:不可引入復雜的編程模型,必須降低開發(fā)者開發(fā)Web應用的門檻。
軟件應用所處的運行環(huán)境會對其架構(gòu)設(shè)計產(chǎn)生巨大影響。設(shè)計軟件應用的架構(gòu),一定要深入考慮軟件所處的運行環(huán)境。脫離開軟件所處的運行環(huán)境,比較不同架構(gòu)
之間的優(yōu)劣是沒有意義的。
REST這種架構(gòu)風格,正是為面向互聯(lián)網(wǎng)的Web應用量身定制的。它由一組架構(gòu)約束組成:
1. 客戶-服務器
2. 無狀態(tài)
3. 緩存
4. 統(tǒng)一接口
5. 分層系統(tǒng)
6. 按需代碼(可選)
上述內(nèi)容來自《REST實戰(zhàn)》譯者序。.NET上的分布式應用架構(gòu)風格從WCF開始統(tǒng)一了Remoting,SOAP,以及對REST的支持。現(xiàn)在我們來看下最新的.NET平臺上都有哪些REST框架和工具庫:
-
WCF WebHttp Services in .NET 4 :WCF 3.5開始支持REST,實現(xiàn)方式上還是RPC 方式,Windows Communication Foundation (WCF)Web HTTP 編程模型可以向非 SOAP 終結(jié)點公開 WCF 服務操作。文檔地址 http://msdn.microsoft.com/zh-cn/library/bb412169.aspx
-
ASP.NET Web Api:這是完全按照HTTP模型實現(xiàn)的REST,目前還處于預覽版,ASP.NET Web API允許開發(fā)人員通過HTTP開放他們的應用程序、數(shù)據(jù)和服務。這允許開發(fā)人員可以充分利用HTTP作為應用程序的協(xié)議,應用程序可以和豐富的客戶端進行交互,不僅僅是瀏覽器、移動設(shè)備、桌面應用還是其他的后端服務。
-
Open Rasta:OpenRasta是一個基于MIT協(xié)議開源的支持.NET 2.0以上的Rest開發(fā)框架,重點圍繞這資源和HTTP方法開發(fā)的REST框架。文檔地址:https://github.com/openrasta/openrasta-stable/wiki
-
Service Stack :是一個高性能的開源 .NET/Mono REST服務框架 地址:http://www.servicestack.net/
-
RestSharp :這只是一個支持WindowsPhone,Mono for Android, MonoTouch跨平臺的Rest 客戶端開發(fā)庫。地址:http://restsharp.org/
-
Hammock是個免費開源的框架,托管在github上 對網(wǎng)絡(luò)操作進行了很好的封裝,包含OAuth。地址:https://github.com/danielcrenna/hammock
歡迎大家掃描下面二維碼成為我的客戶,扶你上云

浙公網(wǎng)安備 33010602011771號