您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是ASP.NET MVC ”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
ASP.Net MVC概述
模型-視圖-控制器 (MVC) 體系結構模式將應用程序分成三個主要組件:模型、視圖和控制器。 ASP.NET MVC 框架提供用于創建 Web 應用程序的 ASP.NET Web 窗體模式的替代模式。 ASP.NET MVC 框架是一個可測試性非常高的輕型演示框架,(與基于 Web 窗體的應用程序一樣)它集成了現有的 ASP.NET 功能,如母版頁和基于成員資格的身份驗證。 MVC 框架在 System.Web.Mvc 程序集中定義。
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 授權、成員資格和角色、輸出和數據緩存、會話和配置文件狀態管理、運行狀況監視、配置系統以及提供程序體系結構。
“什么是ASP.NET MVC ”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。