了解ASP.NET MVC是什么
1,ASP.NET MVC是什么?
在了解ASP.NET MVC是什么之前,先了解一下什么是MVC。MVC是Model-View-Controller的縮寫(xiě),也就是模型—視圖—控制器的意思。MVC用于表示一種軟件架構(gòu)模式,它把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model),視圖(View)和控制器(Controller)。模型(Model)一般是指“數(shù)據(jù)模型”,用于封裝與應(yīng)用程序的業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理方法?!澳P汀庇袑?duì)數(shù)據(jù)直接訪問(wèn)的權(quán)利,例如對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)?!澳P汀辈灰蕾?lài)“視圖” 和“控制器”,也就是說(shuō),模型不關(guān)心它會(huì)被如何顯示或是如何被操作。視圖(View)也就是UI層,實(shí)現(xiàn)數(shù)據(jù)的顯示。控制器(Controller)起到不同層面間的組織作用,用于控制應(yīng)用程序的流程,它處理事件并作出響應(yīng)。
ASP.NET MVC是在現(xiàn)有ASP.NET 3.5運(yùn)行時(shí)的頂層提供一種新的模型-視圖-控制器(MVC, Model-View-Controller)框架。這就允許開(kāi)發(fā)人員利用MVC設(shè)計(jì)模式的優(yōu)勢(shì)創(chuàng)建自己的ASP.NET Web應(yīng)用程序,它將內(nèi)容顯示(UI或者View)、業(yè)務(wù)邏輯和后臺(tái)數(shù)據(jù)進(jìn)行了清晰分離,可以說(shuō)是MVC在ASP.NET中的實(shí)現(xiàn)。
2,ASP.NET Web Form和ASP.NET MVC是什么關(guān)系?
ASP.NET MVC只是另外一種開(kāi)發(fā)ASP.NET應(yīng)用程序的設(shè)計(jì)模式,不會(huì)取代ASP.NET Web Form模式,兩者是不行的,不會(huì)沖突。
3,ASP.NET MVC的優(yōu)點(diǎn):
◆不再有ViewState:傳統(tǒng)的ASP.NET WebForm模式利用ViewState保存表單的狀態(tài)信息,由于B/S程序本身的限制,ViewState存儲(chǔ)數(shù)據(jù)需要在隱藏表單域里面放置很大一段字符串,這會(huì)大大增加頁(yè)面的字節(jié)數(shù),導(dǎo)致網(wǎng)頁(yè)加載變慢;
◆簡(jiǎn)潔的HTML:最終生成的 HTML代碼完全由自己控制,不會(huì)生成任何“垃圾代碼”;
更快的服務(wù)器端處理和客戶端呈現(xiàn):MVC只簡(jiǎn)單地處理“模板”,而無(wú)需構(gòu)建復(fù)雜的控件樹(shù),因此,無(wú)論是在服務(wù)器處理的時(shí)間,和客戶端的呈現(xiàn)速度都會(huì)有所提高;
為多種視圖只需一種模型:有時(shí)候一個(gè)頁(yè)面要顯示的數(shù)據(jù)是同一個(gè),但表現(xiàn)形式有細(xì)微的差別,此時(shí)只需要修改視圖部分,可以采用現(xiàn)有的控制器行為;
◆單元測(cè)試:Webform的測(cè)試是很困難的,使用MVC,可以將業(yè)務(wù)邏輯與頁(yè)面分離開(kāi),可以不在ASP.NET進(jìn)程中執(zhí)行控制器,方便測(cè)試。
【編輯推薦】