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