首頁 >後端開發 >C#.Net教程 >什麼是ASP.NET MVC ?總結ASP.NET MVC

什麼是ASP.NET MVC ?總結ASP.NET MVC

零下一度
零下一度原創
2017-05-20 13:32:363841瀏覽

ASP.Net MVC概述

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

MVC 設計模式

什麼是ASP.NET MVC ?總結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.NET Web 應用程式的測試工作更加輕鬆。 例如,在基於 Web 窗體的 ASP.NET Web 應用程式中,單一類別既用於顯示輸出又用於回應使用者輸入。 為基於 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 窗體模型之前,請權衡各種方法的優點。

ASP.NET MVC 框架具有以下優點:

透過將應用程式分為模型、視圖和控制器,化繁為簡的工作更加輕鬆。

它不使用視圖狀態或基於伺服器的窗體。 這使得 MVC 框架特別適合想要完全控制應用程式行為的開發人員。

它使用一種透過單一控制器處理 Web 應用程式請求的前端控制器模式。 這讓您可以設計一個支援豐富路由基礎架構的應用程式。 有關更多信息,請參見 Front Controller(前端控制器)。

它為測試驅動的開發 (TDD) 提供了更好的支援。

它非常適合大型開發人員團隊支援的 Web 應用程序,以及需要對應用程式行為進行嚴格控制的 Web 設計人員。

基於 Web 窗體的框架具有以下優點:

它支援透過 HTTP 保留狀態的事件模型,這有益於開發業務線 Web 應用程式。 基於 Web 窗體的應用程式提供了在數百個伺服器控制項中支援的許多事件。

它使用頁面控制器模式為單一頁面新增功能。 有關更多信息,請參見 Page Controller(頁面控制器)。

它針對基於伺服器的窗體使用視圖狀態,這使得管理狀態資訊更加輕鬆。

它非常適合想要利用大量元件快速開發應用程式的 Web 開發人員和設計人員的小型團隊。

通常,對於應用程式開發而言,它比較簡單,這是因為元件(Page 類別、控制項等)緊密整合且通常需要比 MVC 模型更少的程式碼。

ASP.NET MVC 框架具有以下功能:

應用程式任務(輸入邏輯、業務邏輯和UI 邏輯)的分離、可測試性和測試驅動的開發(TDD)。 MVC 框架中的所有核心協定都基於介面並且可使用 mock 物件進行測試,mock 物件是模仿應用程式中實際物件的行為的模擬物件。 您可以對應用程式進行單元測試,而不必在 ASP.NET 進程中執行控制器,這使得單元測試既快速又靈活。 您可以使用任何與 .NET Framework 相容的單元測試框架。

可擴充且可插入的框架。 設計 ASP.NET MVC 框架組件的目的是為了可以輕鬆地替換或自訂它們。 您可以插入自己的視圖引擎、URL 路由策略、操作方法參數序列化以及其他元件。 ASP.NET MVC 架構也支援使用相依性注入 (DI) 和控制反轉 (IOC) 容器模型。 DI 讓您能夠將物件注入到類別中,而不是依靠類別來建立物件本身。 IOC 指定某個物件是否需要其他對象,第一個物件應該從設定檔之類的外部來源取得第二個物件。 這樣,測試會更輕鬆。

廣泛支援 ASP.NET 路由,ASP.NET 路由是一個功能強大的 URL 映射元件,它允許您產生具有易於理解的可搜尋 URL 的應用程式。 URL 未必包含檔案副檔名,且設計用於支援非常適合搜尋引擎最佳化 (SEO) 和具象狀態傳輸 (REST) 位址的 URL 命名模式。

支援將現有 ASP.NET 頁面(.aspx 檔案)、使用者控制項(.ascx 檔案)和母版頁(.master 檔案)標記檔案中的標記用作視圖範本。您可以將諸如嵌套母版頁、內聯表達式()、聲明性伺服器控制項、範本、資料綁定、本地化等現有ASP.NET 功能與ASP.NET MVC 框架結合使用。

支援現有 ASP.NET 功能。 ASP.NET MVC 可讓您使用一些功能,例如Forms 驗證和Windows 驗證、URL 授權、成員資格和角色、輸出和資料快取、會話和設定檔狀態管理、執行狀況監視、設定係統以及提供者架構。

【相關推薦】

1. 深入了解ASP.NET MVC與WebForm的差異

2. 詳細介紹ASP.NET MVC--控制器(controller)

3. 詳細介紹ASP.NET MVC--檢視

4. 詳細介紹ASP.NET MVC--路由

5. 透過asp.net mvc開發微信自訂選單編輯工具的程式碼範例

以上是什麼是ASP.NET MVC ?總結ASP.NET MVC的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn