文章目錄
- 1.1 Web Forms開發難以調試
- 1.2 ASP.NET 3.5 MVC開發易於測試
- 1.3 兩種WEB開發技術並存
- 1.1 MVC之間的相互關係
- 1.2 ASP.NET 3.5 MVC架構的特點
為什麼使用ASP.NET 3.5 MVC架構1.1 Web Forms開發難以調試
在傳統的ASP.NET應用開發中,微軟的Team Dev為開發人員設計了一個較為完整,基於Web Form的開發環境,使得構建Web應用相對容易,開發人員只需在一個可視化設計中拖放控制項,然後在表單中設定相關屬性即可;開發人員通過編寫代碼來響應事件,使得對於程式邏輯的操作也變的直觀。
然而在Web Form中,微軟構建了一個複雜的引擎,從而給頁面的執行過程帶來了許多的負面效應。開發人員很難瞭解這背後的HTML是如何運作的,由於編程代碼與HTML語言共處於同一頁面,所以對於頁面設計人員來說非常不友好;同時,如果沒有合理控制ViewState的話,很容易得到一個包含大量ViewState的頁面,使得該頁面的尺寸遠遠超過所需的內容,最終頁面開啟的速度異常緩慢;隨著Web應用越來越複雜化,不容易測試也越來越成為實際應用開發中的棘手問題。
1.2 ASP.NET 3.5 MVC開發易於測試
ASP.NET 3.5 MVC架構,避免了很多Web Forms所帶來的複雜性,沒有資料回傳,沒有在頁面中儲存檢視狀態,開發人員可以完全掌握頁面的呈現全過程,使用模型、視圖及控制器將Web應用劃分到不同的組件中,有利於開發人員與設計人員的分工,提高開發效率,同時也提高了程式的可維護性和擴充性,特別是有利於Web應用程式的測試,可以比較容易地實施測試驅動開發
1.3 兩種WEB開發技術並存
ASP.NET 3.5 MVC架構只是給開發人員提供了開發WEB應用程式的一種選擇,而絕不是替代傳統的Web Forms技術,這兩種技術在不同的應用情境中,具有不同的優缺點,開發人員需要根據自己的實際情況,選擇對應的技術,甚至在同一個項目中混合使用這兩個技術
ASP.NET 3.5 MVC架構與Web Forms技術的架構圖
ASP.NET 3.5 MVC架構與Web Forms技術是建立在ASP.NET 3.5基礎上的兩種平行技術,是微軟今後同時發展的兩種Web開發技術,需要支援的.NET架構為3.5版本,並且還需要安裝SP1更新
基本概念
MVC(Model View Controller)模式是一種較為廣泛應用的結構設計模式,MVC根據一般應用程式功能分為3個主要部門,分別是模型、視圖及控制器。
ASP.NET 3.5 MVC架構基於MVC設計模式,並提供非常方便的測試功能,開發人員利用ASP.NET 3.5 MVC架構,藉助ASP.NET所提供的母板頁及成員管理等技術,可以開發擴充性高、測試容易的Web應用程式,是今後ASP.NET應用的另一個主要方向。
1.1 MVC之間的相互關係
ASP.NET 3.5 MVC中模型、視圖及控制器之間的相互關係。
當使用者輸入URL地址,獲得頁面的反饋結果,一般需要經過一下5個步驟
(1)當用輸入URL地址,發送頁面請求時,實際上是向控制器發出相關的命令
(2)控制器接收請求後,向模型請求獲得相關的資料
(3)模型將對應的資料返回給控制器
(4)控制器將相關的資料發送到指定的視圖
(5)指定的視圖呈現被指定的資料
從上述的步驟中可以看出,控制器在其中起著重要的作用,控制器不僅處理使用者的請求,還實現與模型之間的交換,對指定的視圖發送相關的命令,在實際的ASP.NET 3.5 MVC應用開發中,開發人員主要工作是實現控制器的編碼
1.2 ASP.NET 3.5 MVC架構的特點 1. 易於單元測試
通過模型\視圖和控制器,很好的分離了使用者輸入邏輯、商務邏輯和介面顯示邏輯,因此非常容易實現Web應用程式的單元測試,開發人員還可以使用任何與.NET架構相容的其他測試方法。
2. 容易實施測試驅動開發
開發人員可以使用ASP.NET 3.5 MVC架構實施測試驅動開發,事實上,ASP.NET 3.5 MVC架構本身在開發過程中就是採用的測試驅動開發的
3. 可擴充、可替換
ASP.NET 3.5 MVC架構是可擴充的、可被替換的。ASP.NET 3.5 MVC架構中的組件可以被替換或者個人化,例如可以使用其他的視圖引擎、URL路由策略等。
4. 支援Web Forms中有關特性
ASP.NET 3.5 MVC中,強大的URL映射組件使得開發人員開發極其廣泛並且可搜尋URL的應用程式;在視圖模版中支援各種當前的Web Forms頁面(.aspx)、使用者控制項(.ascx)及母板頁(.master),還可以使用嵌套母板頁、內聯運算式、資料繫結、本地化等。
5. URL被映射到控制器
在傳統的ASP.NET應用程式中,URL通常被映射為儲存在磁碟上一個檔案(例如.aspx檔案),而在ASP.NET 3.5MVC應用程式中,Url不再被映射為一個檔案,URL首先被映射到一個控制器類中,該控制器處理使用者的輸入,選擇適當的模型,獲得相關資料,然後調用視圖組件顯示指定的資料,並返回到使用者介面。