1. 程式人生 > >WebApi和MVC有什麼區別?

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是一種資料請求框架:

  1. ASP.NET Web API 可以根據請求報文來返回的相應資料格式。包括JSON和XML。
  2. ASP.NET Web API 單獨做資料請求和MVC做頁面請求可以讓Web前端和後臺更好的解耦,減少開發難度。
  3. Web API 可以更好地用在移動端網頁、桌面端網頁或者桌面程式。
  4. Web API 的宿主可以選擇多樣:WebHost,,ConsoleHost,甚至是windows Services。

類似可以理解成ashx和webform的區別



相關推薦

WebApiMVC什麼區別

首先要重點說的是,Web API是一種無限接近於RESTful風格的輕型框架,且不是微軟提出來的,微軟在.NET上實現了這中框架—http://Asp.Net Web API,所以“微軟包裝”是一個極大的偏見。 就應用市場時間而論,MVC普及市場的時間比Web AP

電商設計師是做什麽的?美工區別嗎?

mar com 設計 瀏覽器 blog 差異 不同 針對 watermark 說到電商設計師,很多人都把它和美工混為一談。而且大多數人聽到電商設計的第一反應就是淘寶美工,小編想說,這個誤會大了~其實,兩者是有區別的。 那麽,什麽是電商設計?電商設計師是做什麽的?和美工有什麽

三層架構MVC區別

三層架構和MVC是有明顯區別的,MVC應該是展現模式(三個加起來以後才是三層架構中的UI層) 三層架構(3-tier application) 通常意義上的三層架構就是將整個業務應用劃分為:表現層(UI)、業務邏輯層(BLL)、資料訪問層(DAL)。區分層次的目的即為了“高內聚,低耦合”的思想。 1

向指定 URL 傳送POST方法的請求(狀態碼200其他區別)

public static String sendPost(String url, String param) { OutputStreamWriter out = null; BufferedReader in = null; String result = ""; t

MTVMVC區別

著名的MVC模式:方便解藕   所謂的MVC就是把web應用分為三層   1.模型層:  model     負責業務物件和資料庫的物件(ORM)   2.檢視層       views  負責與使用者的互動(書寫邏輯)   3.控

SQLNOSQL區別嗎?

在大資料高速發展的今天,資料量在不斷的增加,傳統的資料庫可能不能滿足人們的需求了,這個時候新霸哥注意到了NOSQL出現了可以解決這個問題。我們知道sql資料庫可以儲存資料和處理資料,但是NOSQL最大的一個優勢就是在大資料這方面,能夠深度處理大資料,分析資料,從大量的資料中

JavaEE軟體三層架構MVC區別

JavaEE軟體三層機構是由sun公司提供JavaEE開發規範的: Web層(表現層)、業務邏輯層、資料持久層。【其中WEB層會使用前端控制器模式】 MVC是一種思想,是一種模式: 將軟體分

淺談Android開發中的MVVM模式及與MVPMVC區別

三種架構模式的演化: 什麼是MVVM? MVVM是Model-View-ViewModel的簡寫。微軟的WPF帶來了新的技術體驗,如Silverlight、音訊、視訊、3D、動畫……,這導致了軟體UI層更加細節化、可定製化。同時,在技術層面,WPF也帶來

WebAPI webservice的區別

WebAPI 和 WebService的區別 webapi用的是http協議,webservice用的是soap協議 webapi無狀態,相對webservice更輕量級。webapi支援如get,post等http操作 http soap關係 http

python中繼承派生區別嗎?

繼承是面向物件程式語言中的一個重要機制,通過繼承可以在一個一般的類的基礎上建立新的類,被繼承的類稱為基類,在基類的基礎上建立的新類成為派生類。 類的繼承和派生其實是一回事,子類繼承了父類,父類派生了子

什麼是MVVM,MVVMMVC區別

1. Mvvm定義MVVM是Model-View-ViewModel的簡寫。即模型-檢視-檢視模型。【模型】指的是後端傳遞的資料。【檢視】指的是所看到的頁面。【檢視模型】mvvm模式的核心,它是連線view和model的橋樑。它有兩個方向:一是將【模型】轉化成【檢視】,即將後

for迴圈中第三個條件i++++i區別嗎?

看了jdk1.8原始碼裡面寫了個for迴圈,但是我看到第三個條件竟然是++i,這個和我們平時寫的for迴圈不一樣啊。我們用的時候都是i++,不是++i,難道有什麼高明的地方?好奇之下,就做了簡單的測試

Spring Boot、Spring MVC Spring 什麼區別

SpringFrame       SpringFramework 最重要的特徵是依賴注入。所有 SpringModules(多模組) 不是依賴注入就是 IOC 控制反轉。       當我們恰當的使用 DI 或者是 IOC 的時候,我

spring MVC的困惑 url-pattern的//*區別

今天在寫專案時發現一個spring 總是報org.springframework.web.servlet.DispatcherServlet noHandlerFound警告: No mapping found for HTTP request with URI [/my

xftpxshell什麽區別

.sh bsp 進行 等等 startup 協議 傳輸文件 一個 strong XshellXshell是一個用於MS Windows平臺的強大的SSH,TELNET,和RLOGIN終端仿真軟件。它使得用戶能輕松和安全地從Windows PC上訪問Unix/Linux主機。

inux系統用戶名全名什麽區別

說明 創建用戶 請問 b- == linux系統安裝 linux系統 ext pan 問:linux系統安裝完畢,進入系統,創建用戶的時候,要填入用戶名和全名,請問用戶名和全名有什麽區別,登錄的時候,是用戶名還是全名? ===========================

intInteger什麽區別

機制 microsoft val family jdk1 經歷 ont .com () 可參考:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html 從Java 5開始引入了自動裝箱/拆

同是辦公軟件,wpsoffice什麽區別

文檔 最好的 般的 .com 小青年 spa tar 個人電腦 功能 今天完美小編為大家帶來的是wps和office有什麽區別教程,那麽到底有什麽區別呢?相信很多朋友都模棱兩可,說不出所以然,看看下面的教程,相信你會選擇更適合你的那一款軟件。一起來看看吧!   1、兩者特

View的getMeasuredWidthgetWidth什麽區別

strong style super 討論 rri 寬度 out 情況 override getMeasuredWidth 為view的測量寬度。 getWidth為view的最終寬度。 (這裏只討論寬度,高度也是一樣的道理) 那麽它們之間有什麽區別呢? 測量寬度是在v

【轉】Visual C++ C++ 什麽區別

業界 流行 編譯器 gtk+ 語言 開發 多種實現 廠商 計算 有位同學問我“Visual C++和C++有什麽區別?”,這的確是初學者會感到困惑的問題,比較常見。除此之外,還有“先學C++好,還是先學Visual C++好?”,都屬於同樣的概念不明的問題,就比