摘要:ASP.NET MVC (1)
前言
最近因公司專案之需求,開始著手ASP.NET MVC的研究,而由於.Net MVC架構與傳統之Web Form差異甚大,捨棄了Server Control的使用,少了View Sate為Page帶來的龎大程式碼。因此勢必需要花多點時間去理解.NET MVC其開發架構及原理。以下就以我MVC菜鳥這陣子研究出來的心得,以最淺顯易懂的方式分享給大家。
環境需求
以開發MVC4.0版本為列,由於公司仍使用Visual Studio 2010,因此需將VS升級為SP1,再另外安裝ASP.NET MVC4.0套件即可進行開發。
* 套件下載網址:http://www.asp.net/mvc/mvc4
在安裝完成上述步驟後,可開啟VS,並於New Project中可以看到「ASP.NET MVC 4 Web Application」之專案類型。
ASP.NET MVC架構
話說MVC是屬於一種設計模式(design patterns),並非由.NET所擁有的。其發展來源可在網路上搜尋的到,目前除了.NET MVC外,PHP也有許多套MVC Framework提供開發人員選擇。以下就.NET MVC定義及關係做說明:
M - Model ->單純存取資料用的,不負責邏輯判斷
V- View ->最後顯示於Page 的內容
C- Control ->負責處理複雜的邏輯判斷,必要時從Model取得資料,最後再決定將資料丟到哪個View來做呈現
處理流程如下:
(1) 首先,Controller在接收Browser傳來的Request後,會先進行來源需求的邏輯處理,如需要做資料存取,則會向Model進行存取。
(2) 資料存取完成後,會回到Controller,再由Ctroller來做Routing決定最後顯示的View
(3) 最後將View的結果顯示於Browser。
流程圖如下所示:
* 圖片引用來源:http://www.dotblogs.com.tw/halladay/archive/2012/08/09/73933.aspx
結論
ASP.Net MVC不像以往Web Form一樣使用Code-behind,每個aspx與cs有著密不可分的關係;相反的,MVC的精神在於關注點分離(Separate of Concerns; SoC),Model、Controller及View的關係明確區分,讓專案更易管理與維護。