亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用WCF和NHibernate構(gòu)建REST應(yīng)用

        2014-04-29 00:00:00馬百利
        數(shù)字化用戶 2014年4期

        【摘 要】REST是一種面向資源的架構(gòu),是一種面向服務(wù)開(kāi)發(fā)的解決方案,本文介紹怎么樣在 .NET 平臺(tái)下使用WCF和NHibernate技術(shù)構(gòu)建REST應(yīng)用。

        【關(guān)鍵詞】wcf NHibernate REST應(yīng)用

        一、REST簡(jiǎn)介

        REST (REpresentation State Transfer,表述型狀態(tài)轉(zhuǎn)移)是2000年由Roy Fielding 首次提出,他是HTTP1.1協(xié)議的主要設(shè)計(jì)者。REST是一種風(fēng)格,而不是標(biāo)準(zhǔn),滿足這種設(shè)計(jì)風(fēng)格的應(yīng)用程序就是RESTFul。Roy Fielding在他的論文中描述了分布式信息系統(tǒng)是如何建造和運(yùn)作的。他描述了資源之間的相互影響,以及在此類(lèi)系統(tǒng)中唯一標(biāo)識(shí)符的角色,他也討論到了使用有限的一組操作和統(tǒng)一語(yǔ)義來(lái)建造一種到處存在的基礎(chǔ)架構(gòu),能夠支持任何類(lèi)型的應(yīng)用。

        REST這種風(fēng)格是為面向互聯(lián)網(wǎng)的Web應(yīng)用而量身定做的。它是一種面向資源的架構(gòu)風(fēng)格,資源是REST中最關(guān)鍵的抽象概念,它們是能夠被遠(yuǎn)程訪問(wèn)的應(yīng)用程序?qū)ο?。一個(gè)資源就是一個(gè)標(biāo)識(shí)單位,任何可以被訪問(wèn)或被遠(yuǎn)程操縱的東西都可能是一個(gè)資源。資源可以是靜態(tài)的,也就是該資源的狀態(tài)永遠(yuǎn)不會(huì)改變。相反,某些資源的狀態(tài)可能隨著時(shí)間推移呈現(xiàn)很大的可變性。這兩種類(lèi)型的資源都是有效的。

        資源必須有一個(gè)標(biāo)識(shí)符,以便在Web上尋址,每個(gè)標(biāo)識(shí)符與一個(gè)或多個(gè)表述相關(guān)聯(lián)。一個(gè)表述,指的是某個(gè)資源在某特定時(shí)刻的狀態(tài)的轉(zhuǎn)化形式或者視圖。這個(gè)視圖被編碼為一種或多種可轉(zhuǎn)移的格式,例如XHMTL、Atom、XML、JSON,甚至是存文本、MP3或者JPEG。

        REST對(duì)資源的操作使用標(biāo)準(zhǔn)的HTTP接口,比如GET、PUT、POST、DELETE接口來(lái)實(shí)現(xiàn)查找、創(chuàng)建、修改和刪除的功能。接口中的每一個(gè)方法操作一個(gè)且僅有一個(gè)資源。每個(gè)方法的語(yǔ)義和含義不會(huì)因應(yīng)用程序或資源的不同而發(fā)生改變。

        傳統(tǒng)上,分布式系統(tǒng)開(kāi)發(fā)將重點(diǎn)放在特定應(yīng)用的接口和交互式的形式來(lái)暴露定制的行為,與之相反,Web則將重點(diǎn)放在少量廣為人知的網(wǎng)絡(luò)動(dòng)作(GET、POST等)以及公共的表述格式,來(lái)為我們提供影響力——直接的連接性以及從移動(dòng)電話和嵌入設(shè)備到整個(gè)服務(wù)器集群普遍存在的支持,所有部分都共享一個(gè)公共的應(yīng)用基礎(chǔ)架構(gòu)。

        二、REST的實(shí)現(xiàn)

        在.NET平臺(tái)上實(shí)現(xiàn)REST服務(wù)首選WCF(Windows Communication Foundation)來(lái)進(jìn)行通信。WCF在.NET 3.0中首次出現(xiàn),是微軟將以前通信技術(shù)(ASMX,Remoting)的一個(gè)統(tǒng)一,并在.NET 4.0中進(jìn)行完善。它讓我們開(kāi)發(fā)人員在開(kāi)發(fā)分布式系統(tǒng)時(shí)有一個(gè)統(tǒng)一的接口,簡(jiǎn)化我們編寫(xiě)代碼的工作,以穩(wěn)固的方式支持HTTP、TCP/IP通信。

        WCF服務(wù)可以在WinForm、控制臺(tái)、Windows服務(wù)、IIS中進(jìn)行承載,我們本文中選擇IIS中的ASP.NET進(jìn)行承載服務(wù)。

        (一)類(lèi)必須使用[ServiceContract]和[AspNetCompatibilityRequirements]特性進(jìn)行標(biāo)注。

        [ServiceContract]

        [AspNetCompatibilityRequirements(RequirementsMode =

        AspNetCompatibilityRequirementsMode.Allowed)]

        public class MailService

        (二)方法還必須使用[OperationContract]特性,[WebGet]中的UrlTemplate即WCF的路由功能,使用它就可以創(chuàng)建REST風(fēng)格的服務(wù),ResponseFormat = WebMessageFormat.Json 表示返回的消息時(shí)候JSON進(jìn)行包裝。如下所示:

        [OperationContract]

        [WebGet(UriTemplate = \"/Mails/{id}\", ResponseFormat = WebMessageFormat.Json)]

        public Mail GetById(string id)[OperationContract]

        [WebGet(UriTemplate = \"/Mails/{id}\", ResponseFormat = WebMessageFormat.Json)]

        public Mail GetById(string id)

        (三)在.NET4.0中的Web.Config中只需要配置serviceHostingEnvironment節(jié)點(diǎn)和services節(jié)點(diǎn)就可以把一個(gè)類(lèi)庫(kù)中的方法暴露成服務(wù),無(wú)需創(chuàng)建真正的svc文件。若需要啟用服務(wù)的HTTP幫助,則需要把endpointBehaviors節(jié)點(diǎn)下的helpEnabled設(shè)置為true即可。

        (四)IIS 7.x默認(rèn)不支持PUT和DELETE動(dòng)詞,若想啟用PUT和DELETE動(dòng)詞,則需要修改system.webServer節(jié)點(diǎn)。

        參考文獻(xiàn):

        [1][美]Roy Thomas Fielding, 《Architectural Styles and the Design of Network-based Software Architectures》,2000

        [2][美]Roy Thomas Fielding,《REST APIs must be hypertext-driven》,2008.

        [3][美]David Gourley Brian Totty 等著,《HTTP權(quán)威指南》,人民郵電出版社.

        [4][美] Juval Lowy著,《WCF服務(wù)編程》,華中科技大學(xué)出版社.

        [5][美] Jim Webber等著,《REST實(shí)戰(zhàn)》,東南大學(xué)出版社

        [6][美] Dentler Jason著,《NHibernate 3.0 Cookbook》Packt Publishing.

        女同av一区二区三区| 无码视频一区=区| 人妻中文字幕一区二区三区| 亚洲日本国产精品久久| 免费a级毛片无码av| 杨幂AV污网站在线一区二区| 国产精品香蕉网页在线播放| 青青草视频网站免费观看| 最新国内视频免费自拍一区| 操风骚人妻沉沦中文字幕| 国产深夜男女无套内射| 亚洲国产成人久久一区www妖精| 精品国产乱码久久免费看| 日本午夜理论片在线观看| 国产一区二区av在线免费观看| 精品国产偷窥一区二区| 野花社区www高清视频| 亚洲电影一区二区| 侵犯了美丽丰满人妻中文字幕| 亚洲国产一二三精品无码| 伊人久久综合精品无码av专区| 欧洲无码一级毛片无遮挡| 亚洲av熟女中文字幕| 国产精品人妻一码二码| 亚洲人成绝费网站色www| 中文字幕久久精品波多野结百度| 国产人妖在线观看一区二区三区| 又湿又紧又大又爽a视频国产| 国产成人综合久久精品免费| 国产V亚洲V天堂A无码| 日本免费一区二区在线视频播放| 少妇私密会所按摩到高潮呻吟| 精品少妇ay一区二区三区| 中文字幕亚洲综合久久| 久久精品亚洲成在人线av乱码| 免费无码一区二区三区蜜桃| 亚洲成人777| 亚洲国产高清一区av| 五月四房播播| 日本大片免费观看完整视频| 国产av普通话对白国语|