[ASP.NET MVC] 介紹
ASP.NET MVC
ASP.NET MVC Framework是微軟在ASP.NET中所添加的一組類別庫,這組類別庫可以使用Model-View-Controller的設計模式來開發ASP.NET的應用程式。
它與現有的ASP.NET應用程式並沒有衝突,所以兩者是可以並行的。
ASP.NET MVC Framework被包裝在System.Web.Mvc.dll中,並利用ASP.NET Routing來支援動作流以及URL Rewriting的能力,讓它可以更貼近Web的發展以及Web 2.0的特性。
什麼是 MVC ?
MVC不是程式語言或架構,而是一種設計模式。將程式架構分為Model、View、Controller三個部分,其中Model指的是資料或是業務邏輯元件,View是呈現給使用者看的資訊,而Controller則是接取來自使用者的指令與資料,並將Model與View做整合的控制器。
-
Model(模型 ) - 負責資料庫的存取(新增、修改、刪除)、資料結構的定義與資料格式的驗證。
-
View(檢視 ) - 介面設計人員進行介面設計,也就是前端寫HTML的地方。View需要負責將Controller傳遞過來的資料配合顯示邏輯呈現畫面。
-
Controller(控制器 )- 協調View與Model,負責轉發請求,對請求進行處理。因為View與Model無法直接溝通,所以當View需要顯示畫面時,需要經由Controller向Model取得資料後提供給View。
ASP.NET MVC 的流程圖
1.Controller 接收到要求後,向Model要資料
2.Model 將資料以商業邏輯與格式判斷整理後,回傳給 Controller
3. Controller 拿到資料後,將資料傳給View
4.View 將資料搭配顯示邏輯,回應要求,回傳畫面。
整個MVC的流程,就跟餐廳的送餐流程一樣,如下圖:
客人代表使用者
MENU代表View
服務生代表Controller
廚師代表Model
1.服務生看到客人,遞出MENU (USER瀏覽時,送出要求,Controller將View顯示於瀏覽器)
2.客人依照MENU,選擇餐點,向服務生點餐 (使用者進行操作後,Controller接收到要求)
3.服務生將客人點餐明細,送給廚師 (Controller依照要求,向Model要資料)
4.廚師將做好的菜,交給服務生 (Model將整理好的資料回傳給Controller)
5.服務生將菜交給客人 (Controller依照資料,呈現View)
ASP.NET MVC 的特點
關注點分離
切成 model-view-controller 三個部分,因此開發者只要專注於一個部分進行開發,降低程式的複查度與提升開發的速度。
習慣取代配置
ASP.NET MVC 中的習慣取代配置,像是Controller與Model的檔名必須以Controller或Model做結尾;View必須放在View目錄中;而View的名稱就是對應的Controller的Action名稱。
前端的HTML
ASP.NET MVC不像WebForm使用控制向,回歸到HTML、CSS、JavaScript,可以自由操作HTML。靈活度增加,使用第三方套件也變得更簡單。