ASP.NET MVC Framework

ASP.NET MVC Framework

模型-視圖-控制器(MVC)體系結構模式將應用程式分成三個主要組件:模型、視圖和控制器。 ASP.NET MVC Framework 提供用於創建 Web應用程式的 ASP.NET Web 窗體模式的替代模式。 ASP.NET MVC 框架是一個可測試性非常高的輕型演示框架,(與基於 Web 窗體的應用程式一樣)它集成了現有的 ASP.NET 功能,如母版頁和基於成員資格的身份驗證。 MVC 框架在 System.Web.Mvc 程式集中定義。

基本介紹

  • 外文名:ASP.NET MVC Framework
  • 開發者:Microsoft
  • 程式語言:.NET 程式語言
簡介,對測試驅動的開發的支持,創建 MVC 應用程式,基於 MVC 的 Web 應用程式的優點,基於 Web 窗體的 Web 應用程式的優點,ASP.NET MVC 框架的功能,

簡介

MVC是許多開發人員熟悉的標準設計模式。一些類型的Web應用程式將得益於MVC框架。一些類型將繼續使用基於Web窗體和回發的傳統 ASP.NET 應用程式模式。其他類型的 Web 應用程式將結合這兩種方法;這兩種方法彼此互不包含。
MVC框架包括以下組件:
  • 模型。模型對象是實現應用程式數據域邏輯的應用程式部件。通常,模型對象會檢索模型狀態並將其存儲在資料庫中。例如,Product對象可能會從資料庫中檢索信息,操作該信息,然後將更新的信息寫回到 SQL Server 資料庫內的 Products表中。
    在小型應用程式中,模型通常是概念上的分離,而不是實際分離。例如,如果應用程式僅讀取數據集並將其傳送到視圖,則該應用程式沒有物理模型層和關聯的類。在這種情況下,數據集擔當模型對象的作用。
  • 視圖。視圖是顯示應用程式用戶界面(UI)的組件。通常,此UI是用模型數據創建的。Products表的編輯視圖便是一個視圖示例,該視圖基於Product對象的當前狀態顯示文本框、下拉列表和複選框。
  • 控制器。控制器是處理用戶互動、使用模型並最終選擇要呈現的視圖來顯示UI的組件。在MVC應用程式中,視圖僅顯示信息;控制器則用於處理和回響用戶輸入和互動。例如,控制器處理查詢字元串值,並將這些值傳遞給模型,而模型可能會使用這些值來查詢資料庫。
MVC模式可以幫助您創建使應用程式的不同方面(輸入邏輯、業務邏輯和 UI 邏輯)分離的應用程式,同時可在這些元素之間提供鬆散耦合。該模式指定每種邏輯在應用程式中應處的位置。UI邏輯位於視圖中。輸入邏輯位於控制器中。業務邏輯位於模型中。在您生成應用程式時,通過使用這種分離方式,可以幫助您化繁為簡,因為它可以使您側重於一次實現應用程式的一個方面。例如,您可以側重於獨立於業務邏輯的視圖。
MVC應用程式的這三個主要組件之間的鬆散耦合也可促進並行開發。例如,一個開發人員可以從事視圖方面的工作,第二個開發人員可以從事控制器邏輯方面的工作,第三個開發人員可以側重於模型中的業務邏輯。

對測試驅動的開發的支持

使用MVC模式除了可以化繁為簡外,還可以使應用程式的測試工作比基於Web窗體的ASP.NETWeb應用程式的測試工作更加輕鬆。例如,在基於Web窗體的ASP.NETWeb應用程式中,單一類既用於顯示輸出又用於回響用戶輸入。為基於Web窗體的ASP.NET應用程式編寫自動化測試可能是一項複雜的工作,因為若要測試單個頁面,您必須實例化應用程式中的頁類、其所有子控制項以及其他相關類。因為為運行頁面而實例化的類如此之多,所以可能難以編寫專門側重於應用程式單個部件的測試。因此,與MVC應用程式測試相比,基於Web窗體的ASP.NET應用程式的測試更加難以實現。而且,基於Web窗體的ASP.NET應用程式的測試需要Web伺服器。MVC框架可使組件分離並大量使用接口,這樣,便可以將單個組件與框架的其餘部分分開進行測試。

創建 MVC 應用程式

您必須仔細考慮是使用ASP.NET MVC框架還是使用ASP.NET Web窗體模型來實現Web應用程式。MVC框架未取代Web窗體模型;您可以對Web應用程式使用任一框架。(如果您具有現有的基於Web窗體的應用程式,則這些應用程式將完全按照它們一貫的方式繼續工作。)
在決定對特定網站使用MVC框架或Web窗體模型之前,請權衡各種方法的優點。

基於 MVC 的 Web 應用程式的優點

ASP.NET MVC框架具有以下優點:
  • 通過將應用程式分為模型、視圖和控制器,化繁為簡的工作更加輕鬆。
  • 它不使用視圖狀態或基於伺服器的窗體。這使得MVC框架特別適合想要完全控制應用程式行為的開發人員。
  • 它使用一種通過單一控制器處理 Web 應用程式請求的前端控制器模式。這使您可以設計一個支持豐富路由基礎結構的應用程式。有關更多信息,請參見Front Controller(前端控制器)。
  • 它為測試驅動的開發(TDD)提供了更好的支持。
  • 它非常適合大型開發人員團隊支持的Web應用程式,以及需要對應用程式行為進行嚴格控制的 Web 設計人員。

基於 Web 窗體的 Web 應用程式的優點

基於Web窗體的框架具有以下優點:
  • 它支持通過HTTP保留狀態的事件模型,這有益於開發業務線 Web 應用程式。基於 Web 窗體的應用程式提供了在數百個伺服器控制項中受支持的許多事件。
  • 它使用頁面控制器模式向單個頁面添加功能。有關更多信息,請參見Page Controller(頁面控制器)。
  • 它針對基於伺服器的窗體使用視圖狀態,這使得管理狀態信息更加輕鬆。
  • 它非常適合想要利用大量組件快速開發應用程式的Web開發人員和設計人員的小型團隊。
  • 通常,對於應用程式開發而言,它比較簡單,這是因為組件(Page類、控制項等)緊密集成並且通常需要比MVC模型更少的代碼。

ASP.NET MVC 框架的功能

應用程式任務(輸入邏輯、業務邏輯和UI邏輯)的分離、可測試性和測試驅動的開發(TDD)。MVC框架中的所有核心協定都基於接口並且可使用mock對象進行測試,mock對象是模仿應用程式中實際對象的行為的模擬對象。您可以對應用程式進行單元測試,而不必在ASP.NET進程中運行控制器,這使得單元測試既快速又靈活。您可以使用任何與.NETFramework兼容的單元測試框架。
可擴展且可插入的框架。設計ASP.NETMVC框架組件的目的是為了可以輕鬆地替換或自定義它們。您可以插入自己的視圖引擎、URL路由策略、操作方法參數序列化以及其他組件。ASP.NETMVC框架還支持使用依賴項注入(DI)和控制反轉(IOC)容器模型。DI使您能夠將對象注入到類中,而不是依靠類來創建對象本身。IOC指定某個對象是否需要其他對象,第一個對象應該從配置檔案之類的外部源中獲取第二個對象。這樣,測試會更加輕鬆。
廣泛支持ASP.NET路由,ASP.NET路由是一個功能強大的URL映射組件,它允許您生成具有易於理解的可搜尋URL的應用程式。URL未必包含檔案擴展名,並且旨在支持非常適合搜尋引擎最佳化(SEO)和具象狀態傳輸(REST)定址的URL命名模式。
支持將現有ASP.NET頁面(.aspx檔案)、用戶控制項(.ascx檔案)和母版頁(.master檔案)標記檔案中的標記用作視圖模板。您可以將諸如嵌套母版頁、內聯表達式(<%=%>)、聲明性伺服器控制項、模板、數據綁定、本地化等現有ASP.NET功能與ASP.NETMVC框架結合使用。
支持現有ASP.NET功能。ASP.NETMVC允許您使用一些功能,如Forms身份驗證和Windows身份驗證、URL授權、成員資格和角色、輸出和數據快取、會話和配置檔案狀態管理、運行狀況監視、配置系統以及提供程式體系結構。

相關詞條

熱門詞條

聯絡我們