日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

WebApi和MVC的区别

發(fā)布時(shí)間:2023/12/10 c/c++ 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebApi和MVC的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用上區(qū)分,mvc主要用于建站web api主要用于構(gòu)建http服務(wù),當(dāng)然你非要用mvc來(lái)構(gòu)建Uri式的Api也行,不過(guò)顯然是沒(méi)有這個(gè)必要的,一個(gè)不恰當(dāng)?shù)?span style="color: rgb(255, 0, 0);">比喻就像是你也可以玩破解版的單機(jī)游戲,也可以通過(guò)平臺(tái)進(jìn)行聯(lián)機(jī),但是始終不如steam上來(lái)得爽是吧。

自身實(shí)現(xiàn)上區(qū)分的話,兩種框架主要是在Asp .Net的基礎(chǔ)上進(jìn)行改造,主要是對(duì)HttpModule和HttpHandler做了擴(kuò)展,實(shí)現(xiàn)方法是不一樣的,比如說(shuō)前者更像是在一層上建了第二層,引伸出更強(qiáng)大的路由機(jī)制,實(shí)現(xiàn)了諸如MvcHandler和ControllerFactory這種消息處理和后臺(tái)控制器方法選擇機(jī)制,Web Api除了擴(kuò)展了前者以外,另外寫(xiě)出了一套獨(dú)立的,獨(dú)立于Asp .Net的消息處理管道就像是借鑒原來(lái)房子的模型,重新設(shè)計(jì)出了另外一套別墅。這也很好地解釋了為什么Web Api可以寄宿在不同的宿主上(寄宿的本質(zhì)就是利用一個(gè)具體的應(yīng)用程序?yàn)閃eb Api提供一個(gè)運(yùn)行的環(huán)境,并解決請(qǐng)求的接收和響應(yīng)的回復(fù)),如Web Host,Self Host方式,這和WCF是相似的。而MVC只能寄宿于IIS上(不考慮.net core),就像Webform的寄宿方式。何況它們兩者雖然都有Controller和Action,但是請(qǐng)求的實(shí)現(xiàn)和響應(yīng)的回復(fù)機(jī)制也是不同的,比如說(shuō)Web Api處理消息兩個(gè)核心類HttpRequestMessage和HttpResponseMessage。這兩種框架最多只能說(shuō)是模式上類似,實(shí)現(xiàn)上還是有很大差別的。不過(guò)兩者都是Asp .Net的組成成員,圖上表現(xiàn)得很清楚了。

?

首先,兩者的主要解決的問(wèn)題不同!
MVC的主要使用場(chǎng)景在于Web站點(diǎn)的開(kāi)發(fā),他在后端實(shí)現(xiàn)了一套完整的MVC開(kāi)發(fā)框架,能提供方便的頁(yè)面開(kāi)發(fā),默認(rèn)使用Razor視圖引擎,提供了后端html構(gòu)造,用戶可以方便地開(kāi)發(fā)出帶頁(yè)面的站點(diǎn)。
WebAPI主演提供了一套R(shí)estfulAPI的開(kāi)發(fā)框架,提供了較為完整的http語(yǔ)義支持,主要用來(lái)做開(kāi)放API,更抽象,更不注重View的生成
從實(shí)現(xiàn)的角度看,雖然他倆捆綁在一起,但是兩者處理管線還是不同的。
如果你對(duì)http有較為深入理解后,你就會(huì)發(fā)現(xiàn),其實(shí)他倆的界限沒(méi)那么明顯,那么你也許會(huì)覺(jué)得mvc做的事webAPI都能做,因?yàn)樗橄?#xff0c;有時(shí)候你又不想把兩者的界限搞得那么清晰


總結(jié)

以上是生活随笔為你收集整理的WebApi和MVC的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。