精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

看WCF Web API的第一印象

開發 后端
WCF Web API也算是微軟的新作,WCF Web API允許開發人員通過HTTP開放他們的應用程序、數據和服務。

  每隔幾天,就會打開http://aspnet.codeplex.com去看看有什么動態,前兩天無意間打開后發現了一個新東西,WCF Web API,本來我對WWW(WCF,WF,WPF)沒有啥好印象,雖然在各大招聘網站上好像需求量倒不小,但是我發現這個Web API貌似是有關REST的內容,于是就多看了兩眼,發現果不其然。

不幸的是,現在Web API還是preview版本,文檔少的可憐,只有源代碼和一個幾乎沒有什么用的Sample,上網搜索也沒有結果。前兩天看到一句話,大概意思是:前兩年大家都在考慮要不要REST,現在已經開始考慮如何REST了。

盡管如些,但是在.NET平臺上,REST好像還只是一種概念,研究的人都很少,更不要說投入生產了。關于WCF,剛問世時我倒是學習過一段時間,也做了幾個例子,但是引用WCF服務的那種方式我一直不喜歡,在客戶端中生成一堆代碼,然后再使用那個蹩腳的***Client來調用服務,這就讓我產生一個疑問:在兩個客戶端中調用同一個服務,難道需要生兩個Client不成?再則,既然是服務,那就應該是一個“開放”的東西,雖然WSDL名聲顯赫,然則過于龐大繁復,如果你想用瀏覽器來調用WCF的服務,從現實上來說似乎不太可能,如果從瀏覽器不能調用一個Web服務(當然是GET),那這個Web服務似乎就不太純粹;最后,HTTP是一個完善的協議 ,對于操作數據尤為如此,無論多么復雜的需求,最終對于數據而言無外乎增刪改查耳,HTTP都具有了,作為一個真正開放、通用的服務來說,使用HTTP的基本方法,幾乎沒有不能完成的任務。于是對于操作"用戶"數據而言,使用GET、POST、PUT、DELETE足已,實在沒有必要再自定義一些諸如GetUser,CreateUser之類的RPC方法,為啥一定得要人花一番工夫才能知道添加一個用戶到底是用Create還是Add呢?從某種意義來說,每一個網站實際上都是一個Web服務,不是嗎?基于HTTP,提供數據,只要你輸入對URL,它永遠都會將你想要的結果呈現在你的眼前,如果這樣一個服務,你要使用類似WCF的框架去提供,使用這個Web服務的人會如何評價呢?他永遠不知道在你的“服務”后面是加一個View還是Get抑或是Display...

然而,做技術的人往往喜歡把一個簡單的問題想的無限大,然后再整出一個周身毛病的解決方案,等引誘人家去上當,到最終滿頭包時,才回歸到問題本質,推出一個兼顧的方案,如果這還說的不透徹,那么試想,你現在需要剪刀,然而很快專家們就設計出了瑞士軍刀,因為他們想到你以后很可能還會需要用...,到最后,你發現你使用幾乎天天用剪刀,那些掏耳勺,鑷子,起瓶器之類的幾乎不用,最后,手里還是拿了把張小泉。記得以前看過一句話:請把牛B還給牛,我想說的是,請把HTTP還給HTTP,無論是在前端還是在服務端。

  這兩天映入眼簾的東西較多,有IronJS,MongoDB,還有就是正在說的這個WCF Web API了,其實這段時間我正在做一個類似的框架,是在ASP.NET MVC上開發一個輕量級的REST框架(說框架好像有點抬舉自已了),基本思路是使用MVC的Action作為數據服務,使用M$的Syndication來做數據傳遞格式,使用WebRequest以及WebResponse來手工向服務發起請求以及回傳響應,目前支持Atom和JSON格式的內容,核心部分已經完工了,本來打算投入使用后寫幾篇說明和各位兄弟探討,但是現在又發現了WCF Web API,這讓我很糾結,不知道該是繼續呢還是先研究下Web API。昨天把那本《MongoDB權威指南》算是粗讀了一遍,今天晚上閑來無事,又把那個WCF Web API的源碼包打開看了看,了解下這個所謂的Web API到底是怎么回事,內容不多,但是由于下周有個項目有新需求要增加,而從下下周開始要休假一段時間,因此有必須把今天看的東西記錄下來,以免再過20來天,又不知丟到哪里去了。

  要了解一個ASP.NET應用的原理,還是得看Global、HttpHandler、HttpModel,在Web API的示例(ContactManager_Advanced)中,沒有發現顯示使用HttpHandler和HttpModel,那就只能看Global了:

  1.   protected void Application_Start(object sender, EventArgs e)  
  2.   {  
  3.   // use MEF for providing instances  
  4.   var catalog = new AssemblyCatalog(typeof(Global).Assembly);  
  5.   var container = new CompositionContainer(catalog);  
  6.   var config = HttpHostConfiguration.Create().  
  7.   AddFormatters(  
  8.   new ContactPngFormatter(),  
  9.   new ContactFeedFormatter("http://localhost:9000/Contact"),  
  10.   new VCardFormatter(),  
  11.   new CalendarFormatter()).  
  12.   SetResourceFactory(new MefResourceFactory(container)).  
  13.   AddMessageHandlers(typeof (LoggingChannel), typeof (UriFormatExtensionMessageChannel));  
  14.   SetMappings();  
  15.   RouteTable.Routes.MapServiceRoute<ContactResource>("Contact", config);  
  16.   RouteTable.Routes.MapServiceRoute<ContactsResource>("Contacts", config);  
  17.   } 

  有意義的顯然是這段了,

  catalog變量是指MEF用于導入的目錄,container是組合容器,有了這兩個對象實例后,就開始創建一個HttpHostConfiguration的實例,使用一些自定義的Formatter,Formatter是啥用通呢?如果你了解AtomEntry,那就知道,AtomEntry里面實際是一種格式,它定義了一些固定的內容(屬性),比如:Id,Title,Summary,Link之類的,對于一個User實體來說,UserName如何表示呢,當能只能去擴展這個AtomEntry了,而這個Formatter就是擴展這個AtomEntry的。SetResourceFactory,這個方法的作用是定義一個資源工廠,啥是資源?在REST中,把用戶需要請求操作的服務即稱為資源,http://localhost/User,這是一個Url,沒錯,但是這個Url就代表User服務,它就是個資源,每一個Url就代表一個資源,但是http://localhost/User?id=think8848和http://localhost/User是同一個資源,這其中的道理不難理解,但是設計可訪問的資源也是一個比較復雜的話題,這里不做詳細說明了,有興趣的朋友可以參考《RESTful Web Service》一書。

那么在這段代碼中,到底是如何設置資源,又是如何使用資源的呢?這里使用M$的MEF,MEF是一個比較復雜的框架,簡單的說吧,它有點類似于依賴注入,M$對于它定義如下:“Managed Extensibility Framework 或 MEF 是一個用于創建可擴展的輕型應用程序的庫。 應用程序開發人員可利用該庫發現并使用擴展,而無需進行配置。 擴展開發人員還可以利用該庫輕松地封裝代碼,避免生成脆弱的硬依賴項。 通過 MEF,不僅可以在應用程序內重用擴展,還可以在應用程序之間重用擴展。”。也就是說,使用MEF,可以獲取某些符合條件(通過特性Attribute檢索的)的接口實例。在這里設置一個ResourceFactory,當調用到達時,就會在這個ResourceFactory中去找服務的實例,在我們自已的程序中,可以使用其他方法達到資源工廠的功能,比如Ioc框架。AddMessageHandlers這個名字看起來比較直觀,以我現在的觀察,之前我們使用HttpRequest好像都變成了HttpRequestMessage了,于是我們姑且把這個Message看成是Request,這樣,就可以很清楚的看到,AddRequestHandler就是在添加請求的處理程序。初步猜測在這個處理程序中,應該能做諸如權限控制之類的工作。

  最后兩句,關鍵詞是MapServiceRoute,這其實是一個擴展方法,就定義在WCF Web API中,方法是為泛型參數類型的服務注冊一個UrlRouting的規則,至此,事情就回到了MVC的范疇之類了。

  對于WCF Web API,調試了源代碼,感覺比MVC框架要復雜的多,今天發現的東西實在很多,還得以后慢慢消化了。

原文鏈接:http://www.cnblogs.com/think8848/archive/2011/07/23/2115127.html

【編輯推薦】

  1. 淺析.NET中的Server push技術
  2. .NET動靜結合編程 接口和委托的約束強度
  3. 使用.NET Array類的Sort方法分類數值
  4. WCF特點具體優勢總結
  5. WCF事件通知具體實現方法詳解
責任編輯:彭凡 來源: 博客園
相關推薦

2012-09-05 09:57:35

設計魅力印象

2021-02-16 11:04:26

RustGo華為

2014-09-02 10:13:21

2011-11-30 08:51:35

NoSQL數據庫

2009-06-26 10:21:11

Flash Catal

2009-11-16 09:16:02

Chrome發布日期

2012-11-09 13:38:26

APP Store

2017-06-30 11:07:29

互聯網

2011-10-27 16:24:48

API

2010-08-27 10:55:50

求職

2013-01-18 15:13:50

2015-05-28 10:20:34

js相冊翻頁

2014-06-09 15:29:13

OData v4.0

2009-12-08 18:31:58

WCF WEB

2009-11-09 10:43:51

WCF Web編程模型

2010-03-05 14:15:20

SilverlightWCF

2010-04-23 12:27:10

華為

2009-12-08 17:16:37

WCF Web Ser

2009-11-06 10:11:34

WCF和Web Ser

2011-06-16 09:24:05

移動廣告APPiOS
點贊
收藏

51CTO技術棧公眾號

精品日本高清在线播放| 国产传媒久久文化传媒| 国产亚洲成精品久久| 亚洲va在线va天堂va偷拍| 在线观看免费视频你懂的| 99精品视频中文字幕| 国产精品久久久久久中文字 | 欧美国产日韩精品免费观看| 成人久久久久久久| 国产成人综合欧美精品久久| 亚洲91中文字幕无线码三区| 亚洲精品乱码久久久久久金桔影视 | 国产理论电影在线| 91在线观看一区二区| 国产成人精品在线| 久久久久久久久久综合| 人人狠狠综合久久亚洲婷婷| 精品国产乱码久久久久久图片| av无码精品一区二区三区| 污视频网站在线免费| 亚洲国产精品黑人久久久| 国产乱码一区| hs视频在线观看| 秋霞国产午夜精品免费视频| 97超碰国产精品女人人人爽 | 午夜视频在线观看国产| 亚洲毛片在线免费| 91成人免费电影| 霍思燕三级露全乳照| 五月天激情在线| 中文字幕在线观看不卡| 色女孩综合网| 麻豆app在线观看| 97久久精品人人澡人人爽| 99久久精品无码一区二区毛片| 中文字幕av网站| 天堂蜜桃一区二区三区| 欧美夜福利tv在线| 国产精品二区一区二区aⅴ| 亚洲乱码免费伦视频| 日韩中文在线视频| 亚洲天堂av中文字幕| 欧洲专线二区三区| 亚洲午夜av久久乱码| 麻豆国产精品一区| 婷婷精品在线| 日韩高清有码在线| 国产精品探花一区二区在线观看| 国产成人高清精品免费5388| 精品日韩欧美在线| wwwxx日本| 国产精品调教| 亚洲激情视频在线播放| 91精品小视频| 婷婷成人在线| 这里只有视频精品| 国产老头老太做爰视频| 欧美高清一区| 久久理论片午夜琪琪电影网| 黄色激情视频在线观看| 99精品福利视频| 欧美最猛性xxxxx(亚洲精品)| 天天综合天天干| 免费在线日韩av| 国产精品jizz在线观看麻豆| 天天综合久久综合| 久久激情五月激情| 51午夜精品| 欧美熟妇乱码在线一区| 91麻豆福利精品推荐| 欧美日韩一区二区三区在线视频| 国产高清在线看| 亚洲私人影院在线观看| 国产精品视频一二三四区| wwww亚洲| 在线一区二区三区做爰视频网站| 亚洲最大成人在线观看| 日韩视频一二区| 亚洲白拍色综合图区| 免费在线观看你懂的| av亚洲在线观看| 欧美成人免费网| 日韩欧美大片在线观看| 丝袜美腿亚洲一区| 91久久精品国产91性色| 特黄视频在线观看| 日本一二三四高清不卡| 青青在线免费视频| 亚洲优女在线| 91精品婷婷国产综合久久竹菊| 亚洲AV成人精品| 天堂99x99es久久精品免费| 一区二区三区动漫| 黑人巨大精品一区二区在线| 亚洲欧洲综合| 国产综合香蕉五月婷在线| 理论片中文字幕| 欧美韩国一区二区| 国产色一区二区三区| 欧美大片1688网站| 精品成人佐山爱一区二区| av电影网站在线观看| 国产精品扒开腿做爽爽爽软件| 日本精品视频在线观看| 国产又爽又黄免费软件| 91在线播放网址| 亚洲一卡二卡区| 久久av色综合| 色婷婷亚洲一区二区三区| 中文字幕永久视频| 天天躁日日躁狠狠躁欧美巨大小说| 久久久精品国产亚洲| 成人免费a视频| 国产91高潮流白浆在线麻豆 | 久久丫精品国产亚洲av不卡| 91精品国产成人观看| 人人爽久久涩噜噜噜网站| www.97av.com| 综合婷婷亚洲小说| 欧美国产日韩在线播放| 老牛国内精品亚洲成av人片| 久久69精品久久久久久国产越南| 中文在线字幕av| 久久久久久久久99精品| 草草视频在线免费观看| 欧美电影院免费观看| xvideos亚洲| 亚洲国产av一区二区三区| 成人91在线观看| 黄色三级中文字幕| 精品国产亚洲日本| 久久精品色欧美aⅴ一区二区| 蜜臀尤物一区二区三区直播| 91亚洲国产成人精品一区二三| 黄色成人在线免费观看| 国产精品国产三级在线观看| 中国china体内裑精亚洲片| 国产无遮挡呻吟娇喘视频| 99麻豆久久久国产精品免费| 男人添女荫道口女人有什么感觉| 高清不卡一区| 欧美猛少妇色xxxxx| 国产精品天天操| 亚洲品质自拍视频| 午夜影院免费版| 欧美~级网站不卡| 99re视频在线播放| 欧美xxxx性xxxxx高清| 日韩欧美一区电影| 免费中文字幕视频| 99在线精品一区二区三区| a在线视频观看| 天海翼精品一区二区三区| 欧洲美女7788成人免费视频| 日韩a级作爱片一二三区免费观看| 精品成人av一区| 中文字幕人妻一区二区| 日韩中文字幕91| 色狠狠久久av五月综合| 成人精品在线| 欧美激情性做爰免费视频| 日本高清视频免费看| 婷婷开心激情综合| 欧美 日韩 成人| 精品夜夜嗨av一区二区三区| 熟妇熟女乱妇乱女网站| 在线精品视频一区| 国产91精品不卡视频| 国产精品视频二区三区| 欧美日韩国产精选| 黄色一级免费视频| aaa欧美日韩| 一区二区三区视频在线观看免费| 欧美激情另类| 成人国产一区二区| 亚洲男人av| 中文字幕欧美在线| va视频在线观看| 亚洲r级在线视频| 亚洲一区视频在线播放| 九九视频精品免费| 老子影院午夜伦不卡大全| 免费精品国产| 92看片淫黄大片看国产片| 成av人片在线观看www| 亚洲香蕉伊综合在人在线视看 | 韩国女主播成人在线| 99热久久这里只有精品| 欧美伦理在线视频| 91九色露脸| 美女一区网站| 欧美日韩成人网| 国产二区视频在线观看| 欧美一二区视频| 日韩 国产 欧美| 一区二区三区美女视频| 久久国产柳州莫菁门| 精品亚洲免费视频| 免费高清在线观看免费| 亚洲色图88| 日本在线观看不卡| ccyy激情综合| 91精品久久久久久久久久久久久| 538在线精品| 视频在线观看一区二区| 香蕉久久国产av一区二区| 91精品一区二区三区久久久久久 | 99视频免费在线观看| 亚洲欧美视频在线| 亚洲老妇色熟女老太| 欧美网站一区二区| 无码视频一区二区三区| 午夜精品爽啪视频| 欧美日韩免费做爰视频| 中文字幕日韩精品一区| 国产男女猛烈无遮挡a片漫画 | 男女av一区三区二区色多| 日本一区二区三区四区五区六区| 精品一区在线| 精品蜜桃传媒| 91麻豆精品激情在线观看最新| 国产欧美一区二区三区视频| 女人让男人操自己视频在线观看| 久久av资源网站| 国产精品秘入口| 精品亚洲国产成av人片传媒| 蜜桃av噜噜一区二区三区麻豆| 欧美久久久久久久久中文字幕| 国产一区二区视频免费| 色综合色狠狠天天综合色| 91久久国产视频| 亚洲一区二区三区四区在线观看 | 国产毛片一区| 欧美精品99久久| 国产欧美午夜| 极品美女扒开粉嫩小泬| 伊人久久亚洲热| 阿v天堂2018| 99亚洲伊人久久精品影院红桃| 成人免费在线网| 亚洲免费播放| 欧美性大战久久久久xxx| 精品成人在线| 免费看的黄色大片| 天堂成人国产精品一区| 999香蕉视频| 日本aⅴ亚洲精品中文乱码| 日韩精品一区二区三区色欲av| 久久国产免费| 日日躁夜夜躁aaaabbbb| 美女视频黄 久久| www.成年人| 国产成人高清在线| 强迫凌虐淫辱の牝奴在线观看| 9人人澡人人爽人人精品| a级在线观看视频| 国产亚洲欧美在线| 日韩av毛片在线观看| 亚洲欧美韩国综合色| 欧美人妻精品一区二区免费看| 亚洲午夜羞羞片| 中文字幕激情小说| 欧美日韩亚洲一区二区| 久久久久久无码精品大片| 欧美视频在线不卡| 国产ts变态重口人妖hd| 精品国产乱码久久久久久闺蜜 | 黄色一级片黄色| 国产欧美69| www.久久av.com| proumb性欧美在线观看| 免费网站在线高清观看| 综合婷婷亚洲小说| 亚洲日本韩国在线| 欧美日韩色一区| www.色视频| 亚洲欧美日韩区| 国产美女在线观看| 久久久午夜视频| 成人交换视频| 国产成人免费电影| 国产一区二区三区日韩精品| 中日韩在线视频| 91久久夜色精品国产九色| 国产一线二线三线在线观看| 国产一区二区三区黄视频| 永久免费未满蜜桃| 国产片一区二区| 日韩精品视频免费看| 欧美网站一区二区| 天堂在线视频观看| 久久久精品在线观看| 国产高潮在线| 3d蒂法精品啪啪一区二区免费| 男男gay无套免费视频欧美| 成人免费在线视频播放| 日韩av一级片| 第四色在线视频| 亚洲天堂av老司机| 波多野结衣大片| 亚洲电影免费观看高清完整版在线| 成人高潮成人免费观看| 97热精品视频官网| 成人影院网站ww555久久精品| 欧美日韩亚洲一区二区三区在线观看 | 四虎成人在线观看| 日韩精品中文字幕在线不卡尤物| 国产黄色免费在线观看| 午夜精品在线观看| 欧美午夜网站| 亚洲人一区二区| 免费精品视频| xfplay5566色资源网站| 自拍视频在线观看一区二区| 在线免费观看av网址| 精品国产91亚洲一区二区三区婷婷| 思思99re6国产在线播放| 热久久这里只有| 国产精品2023| 男人日女人的bb| 激情综合色播激情啊| 精品熟妇无码av免费久久| 色又黄又爽网站www久久| 欧美一区二区三区激情| 九九久久久久99精品| 91成人小视频| 国产高清免费在线| 久草热8精品视频在线观看| 老头老太做爰xxx视频| 色综合视频在线观看| 日本五码在线| 26uuu久久噜噜噜噜| 九色丨蝌蚪丨成人| 久久久久久人妻一区二区三区| 国产精品1区2区| 澳门黄色一级片| 欧美一区二区精品| 国产色在线观看| 91久久久一线二线三线品牌| 国产精品毛片久久| 色18美女社区| 亚洲卡通欧美制服中文| 国产日韩在线观看一区| 欧美老女人性视频| 亚洲成人影音| 青草视频在线观看视频| 成人午夜电影网站| 日韩欧美一区二区一幕| 日韩精品在线影院| 国产精品久久久久av电视剧| 日韩欧美一区二区视频在线播放| 日韩不卡免费视频| 国产免费嫩草影院| 91 com成人网| 宅男在线观看免费高清网站| av一区二区三区在线观看| 亚洲午夜电影| 一卡二卡三卡四卡| 欧美性色黄大片| av电影高清在线观看| 国产成人精品福利一区二区三区| 亚洲国产一区二区三区a毛片| 亚洲一区二区三区无码久久| 色婷婷激情综合| 黄在线免费观看| 国产日韩三区| 久久综合图片| 日韩精品一区二区亚洲av性色| 欧美电影精品一区二区| 日韩伦理精品| 一级日韩一区在线观看| 国产suv精品一区二区6| 日韩精品一区二区不卡| 亚洲少妇中文在线| 日日夜夜精品视频| 777米奇影视第四色| 国产精品久久久久久福利一牛影视| 国产高清在线观看视频| 欧美最猛性xxxxx(亚洲精品)| 四虎成人av| 久久久久久久无码| 欧美天天综合网| av电影免费在线看| 亚洲视频精品一区| av在线不卡观看免费观看| 成人黄色三级视频| 久久久久久久爱| 久久视频在线| 精品无码在线视频| 日韩限制级电影在线观看| 在线看片福利| 伊人网在线免费| 欧美激情一区二区三区全黄| www.精品视频| 国产在线观看91精品一区| 亚洲一区二区三区四区五区午夜| www.xx日本| 亚洲欧美日韩中文视频| 亚州一区二区| www.超碰97.com|