溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是ASP.NET MVC

發(fā)布時(shí)間:2021-08-17 22:10:37 來(lái)源:億速云 閱讀:158 作者:chen 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“什么是ASP.NET MVC ”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

ASP.Net MVC概述

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

MVC 設(shè)計(jì)模式

什么是ASP.NET MVC

MVC 是許多開發(fā)人員熟悉的標(biāo)準(zhǔn)設(shè)計(jì)模式。 一些類型的 Web 應(yīng)用程序?qū)⒌靡嬗?MVC 框架。 一些類型將繼續(xù)使用基于 Web 窗體和回發(fā)的傳統(tǒng) ASP.NET 應(yīng)用程序模式。 其他類型的 Web 應(yīng)用程序?qū)⒔Y(jié)合這兩種方法;這兩種方法彼此互不包含。

MVC 框架包括以下組件:

模型。 模型對(duì)象是實(shí)現(xiàn)應(yīng)用程序數(shù)據(jù)域邏輯的應(yīng)用程序部件。 通常,模型對(duì)象會(huì)檢索模型狀態(tài)并將其存儲(chǔ)在數(shù)據(jù)庫(kù)中。 例如,Product 對(duì)象可能會(huì)從數(shù)據(jù)庫(kù)中檢索信息,操作該信息,然后將更新的信息寫回到 SQL Server 數(shù)據(jù)庫(kù)內(nèi)的 Products 表中。

在小型應(yīng)用程序中,模型通常是概念上的分離,而不是實(shí)際分離。 例如,如果應(yīng)用程序僅讀取數(shù)據(jù)集并將其發(fā)送到視圖,則該應(yīng)用程序沒有物理模型層和關(guān)聯(lián)的類。 在這種情況下,數(shù)據(jù)集擔(dān)當(dāng)模型對(duì)象的作用。

視圖。 視圖是顯示應(yīng)用程序用戶界面 (UI) 的組件。 通常,此 UI 是用模型數(shù)據(jù)創(chuàng)建的。 Products 表的編輯視圖便是一個(gè)視圖示例,該視圖基于 Product 對(duì)象的當(dāng)前狀態(tài)顯示文本框、下拉列表和復(fù)選框。

控制器。 控制器是處理用戶交互、使用模型并最終選擇要呈現(xiàn)的視圖來(lái)顯示 UI 的組件。 在 MVC 應(yīng)用程序中,視圖僅顯示信息;控制器則用于處理和響應(yīng)用戶輸入和交互。 例如,控制器處理查詢字符串值,并將這些值傳遞給模型,而模型可能會(huì)使用這些值來(lái)查詢數(shù)據(jù)庫(kù)。

MVC 模式可以幫助您創(chuàng)建使應(yīng)用程序的不同方面(輸入邏輯、業(yè)務(wù)邏輯和 UI 邏輯)分離的應(yīng)用程序,同時(shí)可在這些元素之間提供松散耦合。 該模式指定每種邏輯在應(yīng)用程序中應(yīng)處的位置。 UI 邏輯位于視圖中。 輸入邏輯位于控制器中。 業(yè)務(wù)邏輯位于模型中。 在您生成應(yīng)用程序時(shí),通過(guò)使用這種分離方式,可以幫助您化繁為簡(jiǎn),因?yàn)樗梢允鼓鷤?cè)重于一次實(shí)現(xiàn)應(yīng)用程序的一個(gè)方面。 例如,您可以側(cè)重于獨(dú)立于業(yè)務(wù)邏輯的視圖。

MVC 應(yīng)用程序的這三個(gè)主要組件之間的松散耦合也可促進(jìn)并行開發(fā)。 例如,一個(gè)開發(fā)人員可以從事視圖方面的工作,第二個(gè)開發(fā)人員可以從事控制器邏輯方面的工作,第三個(gè)開發(fā)人員可以側(cè)重于模型中的業(yè)務(wù)邏輯。

對(duì)測(cè)試驅(qū)動(dòng)的開發(fā)的支持

使用 MVC 模式除了可以化繁為簡(jiǎn)外,還可以使應(yīng)用程序的測(cè)試工作比基于 Web 窗體的 ASP.NET Web 應(yīng)用程序的測(cè)試工作更加輕松。 例如,在基于 Web 窗體的 ASP.NET Web 應(yīng)用程序中,單一類既用于顯示輸出又用于響應(yīng)用戶輸入。 為基于 Web 窗體的 ASP.NET 應(yīng)用程序編寫自動(dòng)化測(cè)試可能是一項(xiàng)復(fù)雜的工作,因?yàn)槿粢獪y(cè)試單個(gè)頁(yè)面,您必須實(shí)例化應(yīng)用程序中的頁(yè)類、其所有子控件以及其他相關(guān)類。 因?yàn)闉檫\(yùn)行頁(yè)面而實(shí)例化的類如此之多,所以可能難以編寫專門側(cè)重于應(yīng)用程序單個(gè)部件的測(cè)試。 因此,與 MVC 應(yīng)用程序測(cè)試相比,基于 Web 窗體的 ASP.NET 應(yīng)用程序的測(cè)試更加難以實(shí)現(xiàn)。 而且,基于 Web 窗體的 ASP.NET 應(yīng)用程序的測(cè)試需要 Web 服務(wù)器。 MVC 框架可使組件分離并大量使用接口,這樣,便可以將單個(gè)組件與框架的其余部分分開進(jìn)行測(cè)試。

何時(shí)創(chuàng)建 MVC 應(yīng)用程序

您必須仔細(xì)考慮是使用 ASP.NET MVC 框架還是使用 ASP.NET Web 窗體模型來(lái)實(shí)現(xiàn) Web 應(yīng)用程序。 MVC 框架未取代 Web 窗體模型;您可以對(duì) Web 應(yīng)用程序使用任一框架。 (如果您具有現(xiàn)有的基于 Web 窗體的應(yīng)用程序,則這些應(yīng)用程序?qū)⑼耆凑账鼈円回灥姆绞嚼^續(xù)工作。)

在決定對(duì)特定網(wǎng)站使用 MVC 框架或 Web 窗體模型之前,請(qǐng)權(quán)衡各種方法的優(yōu)點(diǎn)。

ASP.NET MVC 框架具有以下優(yōu)點(diǎn):

通過(guò)將應(yīng)用程序分為模型、視圖和控制器,化繁為簡(jiǎn)的工作更加輕松。

它不使用視圖狀態(tài)或基于服務(wù)器的窗體。 這使得 MVC 框架特別適合想要完全控制應(yīng)用程序行為的開發(fā)人員。

它使用一種通過(guò)單一控制器處理 Web 應(yīng)用程序請(qǐng)求的前端控制器模式。 這使您可以設(shè)計(jì)一個(gè)支持豐富路由基礎(chǔ)結(jié)構(gòu)的應(yīng)用程序。 有關(guān)更多信息,請(qǐng)參見 Front Controller(前端控制器)。

它為測(cè)試驅(qū)動(dòng)的開發(fā) (TDD) 提供了更好的支持。

它非常適合大型開發(fā)人員團(tuán)隊(duì)支持的 Web 應(yīng)用程序,以及需要對(duì)應(yīng)用程序行為進(jìn)行嚴(yán)格控制的 Web 設(shè)計(jì)人員。

基于 Web 窗體的框架具有以下優(yōu)點(diǎn):

它支持通過(guò) HTTP 保留狀態(tài)的事件模型,這有益于開發(fā)業(yè)務(wù)線 Web 應(yīng)用程序。 基于 Web 窗體的應(yīng)用程序提供了在數(shù)百個(gè)服務(wù)器控件中受支持的許多事件。

它使用頁(yè)面控制器模式向單個(gè)頁(yè)面添加功能。 有關(guān)更多信息,請(qǐng)參見 Page Controller(頁(yè)面控制器)。

它針對(duì)基于服務(wù)器的窗體使用視圖狀態(tài),這使得管理狀態(tài)信息更加輕松。

它非常適合想要利用大量組件快速開發(fā)應(yīng)用程序的 Web 開發(fā)人員和設(shè)計(jì)人員的小型團(tuán)隊(duì)。

通常,對(duì)于應(yīng)用程序開發(fā)而言,它比較簡(jiǎn)單,這是因?yàn)榻M件(Page 類、控件等)緊密集成并且通常需要比 MVC 模型更少的代碼。

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

應(yīng)用程序任務(wù)(輸入邏輯、業(yè)務(wù)邏輯和 UI 邏輯)的分離、可測(cè)試性和測(cè)試驅(qū)動(dòng)的開發(fā) (TDD)。 MVC 框架中的所有核心協(xié)定都基于接口并且可使用 mock 對(duì)象進(jìn)行測(cè)試,mock 對(duì)象是模仿應(yīng)用程序中實(shí)際對(duì)象的行為的模擬對(duì)象。 您可以對(duì)應(yīng)用程序進(jìn)行單元測(cè)試,而不必在 ASP.NET 進(jìn)程中運(yùn)行控制器,這使得單元測(cè)試既快速又靈活。 您可以使用任何與 .NET Framework 兼容的單元測(cè)試框架。

可擴(kuò)展且可插入的框架。 設(shè)計(jì) ASP.NET MVC 框架組件的目的是為了可以輕松地替換或自定義它們。 您可以插入自己的視圖引擎、URL 路由策略、操作方法參數(shù)序列化以及其他組件。 ASP.NET MVC 框架還支持使用依賴項(xiàng)注入 (DI) 和控制反轉(zhuǎn) (IOC) 容器模型。 DI 使您能夠?qū)?duì)象注入到類中,而不是依靠類來(lái)創(chuàng)建對(duì)象本身。 IOC 指定某個(gè)對(duì)象是否需要其他對(duì)象,第一個(gè)對(duì)象應(yīng)該從配置文件之類的外部源中獲取第二個(gè)對(duì)象。 這樣,測(cè)試會(huì)更加輕松。

廣泛支持 ASP.NET 路由,ASP.NET 路由是一個(gè)功能強(qiáng)大的 URL 映射組件,它允許您生成具有易于理解的可搜索 URL 的應(yīng)用程序。 URL 未必包含文件擴(kuò)展名,并且旨在支持非常適合搜索引擎優(yōu)化 (SEO) 和具象狀態(tài)傳輸 (REST) 尋址的 URL 命名模式。

支持將現(xiàn)有 ASP.NET 頁(yè)面(.aspx 文件)、用戶控件(.ascx 文件)和母版頁(yè)(.master 文件)標(biāo)記文件中的標(biāo)記用作視圖模板。 您可以將諸如嵌套母版頁(yè)、內(nèi)聯(lián)表達(dá)式 (<%= %>)、聲明性服務(wù)器控件、模板、數(shù)據(jù)綁定、本地化等現(xiàn)有 ASP.NET 功能與 ASP.NET MVC 框架結(jié)合使用。

支持現(xiàn)有 ASP.NET 功能。 ASP.NET MVC 允許您使用一些功能,如 Forms 身份驗(yàn)證和 Windows 身份驗(yàn)證、URL 授權(quán)、成員資格和角色、輸出和數(shù)據(jù)緩存、會(huì)話和配置文件狀態(tài)管理、運(yùn)行狀況監(jiān)視、配置系統(tǒng)以及提供程序體系結(jié)構(gòu)。

“什么是ASP.NET MVC ”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI