Ⅰ WEB api 和WEB MVC區別
web mvc可以用來實現web api
Ⅱ webform和mvc的區別 知乎
用過這倆,不能說那個復雜那個不復雜,應該認為二者對實現目標有不同的路徑,極限的講,他們可以互相代替,但是,有的路遠有的路近,類似兩條路都能上山,只不過一條路好走另外一條路風景好。
WebAPI針對數據無狀態的通訊可以說一條近路,用起來輕松,不復雜。但是如果你用WebAPI實現頁面生成和通訊那您慢慢欣賞景色吧,是條遠路。
MVC生成頁面等等,非常方便容易,不復雜,但是如果實現數據通信也是沒問題的,則不如WebAPI靈活,如遇到特殊需求則可能需要復雜的一些操作。
Ⅲ 怎麼區分webform和mvc
web窗體 一般都是以 aspx 結尾的頁面,像一般的三層架構寫的 b/s 架構的項目,MVC 是 Model Controller View 三部分組成,跟三層架構不太一樣~ 兩個不同的框架
Ⅳ 怎樣區分webform和mvc
MVC與WebForm最大的區別
使用ASP.NET MVC框架,創建默認項目,第一直觀感覺就是地址都是Rewrite過的。對源碼和配置文件稍加分析不難看出,MVC使用了httpMoles來攔截地址請求,具體用到了System.Web.Routing類庫(MVC2中,MVC1怎麼用的忘記了。)而這部分類庫被包裝在.NET Framework3.5 SP1中,MVC2需要SP1支持也就理所當然了。SP1提供的System.Web.Routing類庫可以方便地進行地址請求攔截,對編碼處理方面也很優秀。UrlRoutingMole類攔截請求,在這之前,Application_Start的時候,會給RouteTable的全局對象一個攔截的設置。而這個設置使用RouteCollection對象進行保存,MVC對這個類進行了擴展——RouteCollectionExtensions。這些可以不考慮,接下來,當用戶訪問頁面時,UrlRoutingMole類攔截請求,在RouteTable中查看是否符合規則,符合的話,就會調用MvcHandler,這個調用在httpHandlers配置節點被注冊,條件是地址符合「*.mvc」規則。MvcHandler的ProcessRequest方法就會調用Controller來執行。事實上整個過程都是黑盒子,用戶感覺不到。在Controller中某方法執行後,返回結果,再進入具體的aspx頁面。
分析了MVC的工作工程,就可以對比其與WebForm的區別了。我們知道,MVC模式的業務被放置到Controller中去執行,而aspx頁面只負責顯示。那麼在MVC中的業務實際執行時間被提前到了HttpMolde中,而WebForm的請求只在httpHandler容器中被執行。也就是說MVC中Controller與View的分離是使用的ASP.Net請求管道隔離的,這樣的話無疑在不影響效率(一次請求,而Response.Redirect是二次請求)的情況下達成了代碼的邏輯層次的分離。
圖1 MVC工作模型
MVC工作的優點是顯然的,更加有利於理解分層邏輯,把握代碼的層次感。Controller到aspx頁面之間的過程,已經被框架隔離。至於Controller或者View頁面與Model調用的過程,還是需要自己來把握。ASP.NET的MVC框架實現了Controller代碼的單獨管理。
而看WebForm開發模型,則只在HttpHandler容器中執行,對其進行分層,在大的方面缺乏支持,而只能依靠邏輯上分離。並不是不能分離,而是由一定的局限性。HttpHandler的攔截,是跟訪問後綴名有關的。當請求一個頁面時,那就是一個Handler,而WebForm模型實現顯示與邏輯分離,才有的是WinForm的事件驅動。顯然,事件必須被注冊到頁面里,比如Button1_Click這樣的代碼。而在Button1_Click執行之前,Page_Load方法會被執行。顯示代碼被寫入Page_Load方法中,那麼就會造成需要寫額外的廢代碼,比如if (!Page.IsPostBack)這樣的判定。而在Button1_Click執行後需要顯示的部分,則比較難處理,寫出另一個方法,也是必須要在Button1_Click里調用的。替代的解決方案是使用Response.Redirect,在一個aspx頁面中處理邏輯,處理完就跳轉到另外一個顯示的頁面。這樣做的壞處是,在兩個頁面中數據很難共享,而跳轉是通過標記302來實現,因此多一次請求。而另外還可以通過Server.Execute,Server.Transfer或者Context.RewritePath這樣的處理方式,則兩個頁面轉換是在伺服器端完成,可以共享數據,可以說和MVC框架的處理方式大同小異,缺點是需要手動配置這些重新定向的屬性。
從以上分析可以看出,MVC框架具有很強的優越性,而WebForm也不是一無是處,在簡單的應用中更加容易開發。WebForm也是可以實現和MVC一樣的分層方式,只是處理時需要多寫一些代碼而已。而我認為,在用WebForm開發分層遇到的最大問題是頁面與頁面之間數據的傳遞問題,而掌握好WebForm中使用伺服器端跳轉的應用技巧(Server.Execute,Server.Transfer或者Context.RewritePath)進行開發就可以解決數據傳輸問題,用WebForm開發比MVC框架更容易理解,不會產生復雜的配置,也是一個很不錯的選擇
Ⅳ ASP.NET MVC和WEB FORM的區別
WebForm是簡單的窗體設計,前端在.aspx,後置代碼.cs負責事件處理;MVC顧名思義就是分成了Model模型,View視圖,Controller控制器三個部分,進行分工工作。對於大的項目開發,顯然MVC更適合,總不能所有東西都讓一個人來做吧,呵呵
Ⅵ WEB三層架構與MVC 哪個好
web三層架構 就是表現層(UI)、業務邏輯層(BLL)、數據訪問層(DAL)。
MVC 也是分三層 即 Model(模型層)、Controlle(控制層)、View(表示層)。
他們層次之間的劃分是有區別的 最主要的區別就是三層結構里邊沒有定義Controller控制層得概念。而在MVC中也沒有把業務和邏輯訪問看成兩個層。他們對Model的定義也有區別,三層架構里邊Model是以實體類為主構成的,而MVC里邊則是由業務邏輯和訪問數據組成的。
而三層架構與MVC各有優點確定 三層架構層次感更好 但是有些時候效率低從而降低了系統的性能。具體說那個好 這不好比較 都是比較優秀的設計模式 可能使用的范圍不太一樣,而且和你開發時用的編程語言和框架 伺服器都有一定的關系。
Ⅶ webapi和mvc的區別
在新出的MVC中,增加了WebAPI,用於提供REST風格的WebService,新生成的WebAPI項目和典型的MVC項目一樣,包含主要的Models、Views、Controllers等文件夾和Global.asax文件。Views對於WebAPI來說沒有太大的用途,Models中的Model主要用於保存Service和Client交互的對象,這些對象默認情況下會被轉換為Json格式的數據迚行傳輸,Controllers中的Controller對應於WebService來說是一個Resource,用於提供服務。和普通的MVC一樣,Global.asax用於配置路由規則。
對於WebAPI來說它最初被設計為和WCF一樣的客戶端、服務端兩套結構我們到現在乊所以還沒有提到客戶端是因為我們的請求別的方式來封裝成HTTP請求戒接收HTTP相應的比如AJAX和Form表單提交。
Ⅷ WebApi和MVC有什麼區別
首先要重點說的是,Web API是一種無限接近於RESTful風格的輕型框架,且不是微軟提出來的,微軟在.NET上實現了這中框架—Asp.Net Web API,所以「微軟包裝」是一個極大的偏見。
就應用市場時間而論,MVC普及市場的時間比Web API時間早。為什麼MVC提出來了,且都被大家公認是一種經典的web站點實現架構,為什麼還要搞Web API呢?
這兩年什麼炒得最火熱?互聯網。在網路技術不斷更新和替代的過程,網路不斷普及。互聯網產品只要你有技術,就可以做。但要說明的是,互聯網產品的用戶不再是一小部分人群,除了潛在用戶,你需要面對的是龐大的上網人群和開發者。這時候你要考慮你的WEB伺服器是否能夠支持這么多的用戶,節省一點點傳輸數據的帶寬都能夠讓你的伺服器輕松不少,除此之外,你還要考慮你的潛在用戶變成你的真實用戶的某刻時刻,你的伺服器是否能夠順利支撐。
面對用戶,你要考慮你的產品是否能夠讓用戶使用起來感覺很「爽」,你要把用戶體驗放在首位,那麼你的產品首先功能上必須穩定,不然即使有再好的創意,再耐心的用戶總會使用其它產品替代你的產品。
面對開發者,你想要把某些功能開放,這時候你必須要開放某些介面。有人會說,我也可以使用MVC來開放這些介面,沒錯是可以,但是繞遠道給你帶來的是更大的代價。
Web API 和 MVC可以說是兩個不同的東西。Web API更傾向於基於HTTP協議的服務,直接返回用戶的數據請求。MVC是建站的一種框架,傾向於返回用戶的頁面請求。
我總結了以下 ASP.NET Web API 的特性,更能說明Web API是一種數據請求框架:
ASP.NET Web API 可以根據請求報文來返回的相應數據格式。包括JSON和XML。
ASP.NET Web API 單獨做數據請求和MVC做頁面請求可以讓Web前端和後台更好的解耦,減少開發難度。
Web API 可以更好地用在移動端網頁、桌面端網頁或者桌面程序。
Web API 的宿主可以選擇多樣:WebHost,,ConsoleHost,甚至是windows Services。
類似可以理解成ashx和webform的區別