圖解ASP.NET MVC與WebForm的區(qū)別
本文將為大家對(duì)比ASP.NET MVC與WebForm的區(qū)別,通過(guò)這種形式我們能更加了解ASP.NET MVC及其工作原理,也是為了令大家今后的開(kāi)發(fā)工作更加方便,快捷。
1.傳統(tǒng)WebForm開(kāi)發(fā)中存在的一些問(wèn)題
#T#
傳統(tǒng)的ASP.NET開(kāi)發(fā)中,微軟的開(kāi)發(fā)團(tuán)隊(duì)為開(kāi)發(fā)者設(shè)計(jì)了一個(gè)在可視化設(shè)計(jì)器中拖放控件,編寫(xiě)代碼響應(yīng)事件的快速開(kāi)發(fā)環(huán)境。然而,它所帶來(lái)的負(fù)面效應(yīng)是:
由于控件封裝了很多東西,開(kāi)發(fā)者很難了解這背后的HTML是如何運(yùn)作的
容易得到一個(gè)包含大量ViewState的頁(yè)面,使得頁(yè)面尺寸遠(yuǎn)遠(yuǎn)超過(guò)所需的內(nèi)容,使得頁(yè)面的打開(kāi)速度較慢
不容易被測(cè)試
2.什么是MVC?
MVC(Model-View-Controller,模型-視圖-控制器模式)是軟件工程中的一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model)、視圖(View)和控制器(Controller)。
3.什么是ASP.NET MVC?
ASP.NET MVC是微軟的開(kāi)發(fā)團(tuán)隊(duì)基于MVC開(kāi)發(fā)的一個(gè)易于被測(cè)試的框架。它具有以下特性:
沒(méi)有數(shù)據(jù)回傳
沒(méi)有在頁(yè)面中保存視圖狀態(tài)
開(kāi)發(fā)者可以完全掌控頁(yè)面的呈現(xiàn)過(guò)程
易于單元測(cè)試
易于測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
可擴(kuò)展、可替換
支持WebForm中的有關(guān)特性,如:用戶(hù)控件、母版頁(yè)、數(shù)據(jù)綁定、本地化等
不在基于文件目錄結(jié)構(gòu),而是將URL映射到控制器中
4. 為什么使用ASP.NET MVC?
易于進(jìn)行單元測(cè)試
易于進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā)
避免了WebForm中大量的ViewState導(dǎo)致頁(yè)面文件變得臃腫
5. MVC與三層架構(gòu)?
MVC是一種模式
ASP.NET MVC是一個(gè)基于MVC模式的開(kāi)發(fā)框架
三層架構(gòu)是一種架構(gòu)
至于區(qū)別,可以嚴(yán)格的從概念上區(qū)分開(kāi)來(lái)。
下圖是MVC與三層架構(gòu)的對(duì)應(yīng)關(guān)系
6. MVC與Webform如何抉擇?
7. 兩種技術(shù)并存
ASP.NET MVC框架只是給開(kāi)發(fā)者提供歐諾個(gè)了開(kāi)發(fā)web應(yīng)用程序的一種選擇,并不是要取代Webform
這兩種技術(shù)各有優(yōu)缺點(diǎn),開(kāi)發(fā)者需要根據(jù)實(shí)際情況,選擇對(duì)應(yīng)的技術(shù)
有時(shí)候,可以在同一個(gè)項(xiàng)目中混合使用這兩種技術(shù)
8.ASP.NET MVC與Webform技術(shù)的架構(gòu)圖
總結(jié):
看完本文,相信ASP.NET WebForm與ASP.NET MVC的選擇相信大家應(yīng)該可以做到心中有數(shù)了,我始終覺(jué)得,很多時(shí)候并不是什么技術(shù)好不好的問(wèn)題,而是適合不適合不適合的問(wèn)題或者能否把它用好的問(wèn)題。
打個(gè)比方:如果讓千里馬犁地,恐怕未必能達(dá)到理想的效果,最終可能還會(huì)抱怨,什么破馬,一點(diǎn)勁都沒(méi)有。
原文標(biāo)題:正確認(rèn)識(shí)WebForm與Asp.NET MVC
鏈接:http://www.cnblogs.com/wlb/archive/2009/12/07/1618954.html
【責(zé)任編輯:彭凡 TEL:(010)68476606】