[MVC自我修練] MVC觀念

  • 6695
  • 0
  • 2011-11-08

[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的方式,讓管理複雜性更為容易


不使用檢視狀態或伺服器表單。 因此對於想要完全掌控應用程式行為的開發人員來說,MVC 架構相當理想


為測試為導向的開發工作 (Test-Driven Development,TDD) 提供更佳的支援

Web Form 應用程式提供數百種伺服器控制項中支援的許多種事件


在伺服器表單上使用檢視狀態,能夠讓管理狀態資訊更容易


適用於希望利用提供的大量元件快速開發應用程式的小型 Web 開發人員和設計人員團隊


對應用程式開發工作而言一般較不複雜,因為元件 (Page 類別、控制項等) 彼此緊密整合

 

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 開發實戰

(2)ASP.NET MVC 2

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18