ASP.NET?MVC
微軟同時又推出了類似Web MVC的ASP.NetMVC,但是在截獲請求部分還是存在著一些差別,具體請看下圖:
ASP.NET MVC的具體工作流程為:
當用戶從瀏覽器輸入地址,發出頁面請求,到返回結果,一般經過以下步驟:
當用戶輸入地址,發出請求時,實際上就是向控制器發出相關命令
控制器接收用戶指令后,向模型請求獲得相關數據
模型將對應的數據返回給控制器
控制器將有關數據發送到指定視圖
指定的視圖呈現指定的數據
Web Forms構建web相對容易,開發人員只需在一個可視化設計器中拖放控件,設置相關屬性即可,通過編寫代碼來響應事件,使得對于程序的邏輯操作非常直觀。但是,開發人員很難了解背后HTML是如何運行的,同時,如果沒有合理控制ViewState的話,頁面的尺寸將大大超過預期,使得頁面打開相當緩慢,隨著web應用的復雜化,不容易測試也是開發中面對的一個問題.
MVC避免了Web Forms所帶來的復雜性,沒有數據回傳,沒有頁面中保存視圖狀態,開發者可以完全掌握頁面呈現的全過程,使用模型、視圖及控制器將web劃分為不同的組件,有利于開發與設計的分離,也提高了程序的可維護性和擴展性,特別是利于應用程序的測試,可以比較容易的實施測試驅動開發。
兩種開發技術并存。 MVC只是給開發者提供了開發web應用程序的一種選擇,而不是替代傳統的Web Forms,這兩種技術應用于不同的場合具有不同的優缺點。具體兩者之間的比較分析,可以查看WebForms vs. MVC。