[MVC自我修練] MVC觀念
進入MVC之前,先了解一下什麼是MVC
MVC是一種開發架構,並不是什麼新的程式語言,又或著可以說是一種開發模式
,其主要的目的在於創造一個權責分明的開發架構,透過分層的切割,使用開發上
更能模組化及提高可維護性
MVC的主要三個單元,分別為Model、View、Controller
(取自:MSDNhttp://msdn.microsoft.com/zh-tw/library/dd381412.aspx)
Model:負責與「資料」有關的任務,例如:從資料庫讀取資料或寫入資料至資料庫,定義資料結構………等
,主要使用到技術諸如ADO.NET、Entity Framework、LINQ to SQL等
View:負責使用者介面,簡言之就是有關輸入輸出的介面,主要使用到技術諸如HTML、CSS、Flash、Silverlight等
Controller:負責Model、View之外的所有控制,例如決定顯示那個View,負責從Model取得資料等
這看起來似曾相識,觀念上與三層式架構差不多,但就以往開發上要真正做到有其困難度,舉例來說在開發ASPX網頁
程式時,常常會使用到元件,而元件本身一方面做為顯示之用,但其資料來源又與元件本身綁定在一起,像是對於
資料庫的取存,大部份情況可能跟GridView等web control相依附,而在MVC的架構把使用者介面與資料處理區分的更清楚
,Model、View、Controller各司其職,彼此間僅具有必要的關聯性
MVC一詞正好為這三者的開頭縮寫,此三者間的關係具獨立性亦具某些程度的關職性,在MVC的觀念裡
如果能做好分離便可提高可維護性及高彈性
MVC架構將應用程式細分成Model、View和Controller的方式,讓管理複雜性降低,開發過程中可專注於當前的物件上
不受其它物件的干擾
然而MVC並非用來取代傳統的Web Form的開發模式,應該說二者各有其優點,並非相互取代或排斥
在MSDN有詳細介紹二者模式的優點,以下列舉幾項較大的差異點如下
MVC |
傳統Web Form |
將應用程式細分成Model、View和Controller的方式,讓管理複雜性更為容易
|
Web Form 應用程式提供數百種伺服器控制項中支援的許多種事件
|
ASP.NET MVC的發展比起傳統的ASP.NET Web Form的開發模式來說,相對較晚,不過它的慨念卻是很早就存在了,而其
它程式語言的陣營(例如Java)也都有發展其相關MVC架構的FrameWork
PS:本次在Jed哥的贈書活動中,獲贈保哥的「ASP.NET MVC 2 開發實戰」,收到的書的不久後,ASP.NET MVC 3 RC也釋出了
,也太快了吧 @_@
參考資源:
(1)ASP.NET MVC 2 開發實戰
By No.18