1.傳統WebForm開發中存在的一些問題
傳統的ASP.NET開發中,微軟的Team Dev為開發人員設計了一個在視覺化設計工具中拖放控制項,編寫代碼響應事件的快速開發環境。然而,它所帶來的負面效應是:
- 由於控制項封裝了很多東西,開發人員很難瞭解這背後的HTML是如何運作的
- 容易得到一個包含大量ViewState的頁面,使得頁面尺寸遠遠超過所需的內容,使得頁面的開啟速度較慢
- 不容易被測試
2.什麼是MVC?
MVC(Model-View-Controller,模型-視圖-控制器模式)是軟體工程中的一種軟體架構模式。它把軟體系統分為三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。
3.什麼是ASP.NET MVC?
ASP.NET MVC是微軟的Team Dev基於MVC開發的一個易於被測試的架構。它具有以下特性:
- 沒有資料回傳
- 沒有在頁面中儲存檢視狀態
- 開發人員可以完全掌控頁面的呈現過程
- 易於單元測試
- 易於測試驅動開發
- 可擴充、可替換
- 支援WebForm中的有關特性,如:使用者控制項、主版頁面、資料繫結、本地化等
- 不在基於檔案目錄結構,而是將URL映射到控制器中
4. 為什麼使用ASP.NET MVC?
- 易於進行單元測試
- 易於進行測試驅動開發
- 避免了WebForm中大量的ViewState導致分頁檔變得臃腫
5. MVC與三層架構?
- MVC是一種模式
- ASP.NET MVC是一個基於MVC模式的開發架構
- 三層架構是一種架構
至於區別,可以嚴格的從概念上區分開來。
是MVC與三層架構的對應關係
6. MVC與Webform如何抉擇?
7. 兩種技術並存
- ASP.NET MVC架構只是給開發人員提供歐了開發web應用程式的一種選擇,並不是要取代Webform
- 這兩種技術各有優缺點,開發人員需要根據實際情況,選擇對應的技術
- 有時候,可以在同一個項目中混合使用這兩種技術
8.ASP.NET MVC與Webform技術的架構圖
總結:
看完本文,相信ASP.NET WebForm與ASP.NET MVC的選擇相信大家應該可以做到心中有數了,我始終覺得,很多時候並不是什麼技術好不好的問題,而是適合不適合不適合的問題或者能否把它用好的問題。
打個比方:如果讓千裡馬犁地,恐怕未必能達到理想的效果,最終可能還會抱怨,什麼破馬,一點勁都沒有。