ASP.NET MVC的概覽
該模型視圖控制器(MVC)架構模式分成三個主要部分組成:模型,視圖的應用程式,和控制器。ASP.NET MVC架構提供了一種替代的ASP.NET Web表單建立Web應用程式的模式。ASP.NET MVC架構是一個輕量級的,高度可測試的架構,並提出(與網頁表單的應用程式)與現有的ASP.NET功能,如主版頁面和會員制身分識別驗證,整合。 MVC架構定義在System.Web.Mvc程式集。
MVC設計模式
MVC是一個標準的設計模式,很多開發人員都熟悉。有些類型的Web應用程式將受益於MVC架構。有些人將繼續使用傳統的ASP.NET應用程式模式,它是基於 Web表單和回傳。還有些類型的Web應用程式將兩種方法結合起來,也不排除其他的方法。
MVC架構套件括以下內容:
- Models:模 型。模型對象是在應用程式實施的時候,為應用程式邏輯提供資料的部分。通常,模型對象是對資料庫檢索和把資料存放區到資料庫中。例如,一個產品對象可能從一個資料庫中的資訊檢索,它操作產品 表,然後寫在SQL Server資料庫的更新資訊並返回。
在小應用中,往往是一個模型,而不是一個物理概念上的分離之一。例如,如果應用程式唯讀取一個資料集,並把它發送到視圖,應用程式不具有物理模型層和相關的類。在這種情況 下,dataset,就在一個模型對象的作用。
- Views:視圖。視圖是顯示的組件,用來應用程式的使用者介面(UI)。通常,該使用者介面是通過模型層資料建立的。例子:一個編輯產品表裡的一個產品,這時候用到了文字框,下拉式清單,和用來顯示產品狀態的CheckBox。
- Controllers:控制器。控制器的組件處理用 戶互動,與模型的工作,並最終選擇一個視圖來呈現,顯示使用者介面。在MVC應用程式中,視圖只顯示資訊,控制器用來處理和回應使用者的輸入和互動。例如,控制器處理查詢的字串值,並傳遞這些值到模型層,這些值可能用來查詢資料庫。
MVC模式可以協助您建立單獨的應用程式的應用程式的不同方面(輸入邏輯,商務邏輯和UI邏輯),同時提供這些要素之間的鬆散耦合。該模式指定每個邏輯應該在應用程式的位置。 The UI logic belongs in the view.所屬的UI邏輯在(View)視圖中。 輸入邏輯在控制器。 商務邏輯在模型層。 這種分離可以協助您管理複雜的應用程式,因為它使您能夠在一個集中的實施某個方面。例如,你可以專註於View,不用管商務邏輯。
這三個鬆散耦合的MVC應用程式的主要組件是相互促進並行發展的。例如,一個開發人員可以專註於視圖,第二個開發人員可以專註控制器上的邏輯,而第 三個開發人員可以專註於模型中的商務邏輯。
支援測試驅動開發
除了管理的複雜性,MVC模式比ASP.NET Web應用程式更容易去測試。例如,在Web表單的ASP.NET Web應用程式,一個類是既用於顯示輸出和響應使用者輸入。編寫Web表單,ASP.NET應用 程式的自動化測試可以很複雜,因為要測試一個個人網頁,你必須執行個體化的頁面類,它的所有子控制項,並在申請額外的依賴類。因為如此多的類執行個體化運行頁面時,它很難為應用程式的各個部分編寫測試。因此,測試一個ASP.NET應用程式比測試執行一個MVC應用程式更困難。此外, MVC架構解耦的組件,因為大量使用的介面,這使得它可以測試脫離架構其餘的各個組成部分。
當建立一個MVC應用程式的時候,你必須仔細考慮是否實施通過使用ASP.NET MVC架構的ASP.NET Web表單或Web應用程式模型。 MVC架構不會取代Web表單模型,你可以使用Web應用程式的架構。 (如果您有現有的Web表單的應用程式,它們將會和以前一樣工作的很好。)
當你使用什麼架構開發一個網站的時候,先衡量每一種方法的優點:
基於MVC的Web應用程式 的優勢
ASP.NET MVC架構提供了以下優點:
- 它 可以更容易地降低應用程式的複雜性,劃分為Models,View,和controller。
- 它不使用檢視狀態或基於伺服器的Forms。這使得MVC架構是一個想要完全控制一個應用程式行為的程式員的理想選擇。它使 用一個前端控制器模式,它通過這個單一的過程式控制制Web應用程式的請求。這使您能夠設計一個應用程式支援豐富的Routing。
- 它提供了更好的測試驅動開發(TDD)的支援。
- 它運作良好的網路是由大型團隊的開發人員和網頁設計師誰需要一個應用程式的控制權行為 的高度支援的應用程式。