[鐵人賽Day02] - 什麼是MVC | asp net mvc ithome
前言文章一開始筆者先自嘲一下,筆者剛開始接觸MVC的時候,一直以為這是一套微軟特定的開發技術,後來才知道它只是命名剛好有MVC而已。同步發表於個人點部落-[鐵人賽Day02]ASP.NetCoreMVC進化之路-什麼是MVC[1]WhatisMVC?所以什麼是MVC呢?正確來說MVC是一種軟體架構,這個名詞最早出現在1978年一種名為smalltalk的程式語言,分別代表Model(模型)、View(檢視)、Controller(控制器),能讓前後端的程式碼職責分離。但這整個流程是如何運作的呢?在這之前我們要先簡介紹一下Web的流程。假設我想知道今天台北的天氣狀況,在瀏覽器中點選中...
前言文章一開始筆者先自嘲一下,筆者剛開始接觸MVC的時候,一直以為這是一套微軟特定的開發技術,後來才知道它只是命名剛好有MVC而已。
同步發表於個人點部落 - [鐵人賽Day02] ASP.Net Core MVC 進化之路 - 什麼是MVC[1]
What is MVC?所以什麼是MVC呢?正確來說MVC是一種軟體架構,這個名詞最早出現在1978年一種名為smalltalk的程式語言,分別代表Model(模型)、View(檢視)、Controller(控制器),能讓前後端的程式碼職責分離。
但這整個流程是如何運作的呢?在這之前我們要先簡介紹一下Web的流程。
假設我想知道今天台北的天氣狀況,在瀏覽器中點選中央氣象局連結後,首先瀏覽器(Client)會發起一個Request(請求)到氣象局的網站(Server),接著Server會去訪問DB(資料庫)今天台北的天氣怎麼樣,最終將訪問後的結果包裝成Response並呈現在瀏覽器畫面上。
我們來看看MVC的架構:
如果你滑到上面比對一下應該不難發現,這兩張圖在某種程度上是非常相似的。事實上MVC也是遵照這樣的模式運作,只不過將各自的職責拆開而已。對於MVC名詞的解釋google後可以得到很多解答,
以維基百科[2]為例:
控制器(Controller)- 負責轉發請求,對請求進行處理。 視圖(View) - 介面設計人員進行圖形介面設計。 模型(Model) - 程式設計師編寫程式應有的功能(實現演算法等等)、資料庫專家進行資料管理和資料庫設計(可以實現具體的功能)。一樣是剛才天氣查詢的例子:
當瀏覽器發起請求(今天台北天氣如何)之後,Controller收到請求後會負責分派工作給Model,而Model主在負責與資料相關的處理過程,所以Model會去幫忙問資料庫今天的天氣狀況,假設資料庫存的溫度欄位是華氏而畫面上需要顯示攝氏的話,那在Model內也會進行溫度單位轉換的工作(資料處理),最後Controller負責將查詢並處理完的資料包裝成Re...