ASP.NET?MVC
微軟同時又推出了類似Web MVC的ASP.NetMVC斯入,但是在截獲請求部分還是存在著一些差別,具體請看下圖:
ASP.NET MVC的具體工作流程為:
當用戶從瀏覽器輸入地址蕉拢,發(fā)出頁面請求特碳,到返回結(jié)果,一般經(jīng)過以下步驟:
當用戶輸入地址晕换,發(fā)出請求時午乓,實際上就是向控制器發(fā)出相關(guān)命令
控制器接收用戶指令后,向模型請求獲得相關(guān)數(shù)據(jù)
模型將對應(yīng)的數(shù)據(jù)返回給控制器
控制器將有關(guān)數(shù)據(jù)發(fā)送到指定視圖
指定的視圖呈現(xiàn)指定的數(shù)據(jù)
Web Forms構(gòu)建web相對容易闸准,開發(fā)人員只需在一個可視化設(shè)計器中拖放控件益愈,設(shè)置相關(guān)屬性即可,通過編寫代碼來響應(yīng)事件夷家,使得對于程序的邏輯操作非常直觀蒸其。但是,開發(fā)人員很難了解背后HTML是如何運行的库快,同時摸袁,如果沒有合理控制ViewState的話,頁面的尺寸將大大超過預(yù)期义屏,使得頁面打開相當緩慢靠汁,隨著web應(yīng)用的復(fù)雜化蜂大,不容易測試也是開發(fā)中面對的一個問題.
MVC避免了Web Forms所帶來的復(fù)雜性,沒有數(shù)據(jù)回傳蝶怔,沒有頁面中保存視圖狀態(tài)奶浦,開發(fā)者可以完全掌握頁面呈現(xiàn)的全過程,使用模型踢星、視圖及控制器將web劃分為不同的組件澳叉,有利于開發(fā)與設(shè)計的分離,也提高了程序的可維護性和擴展性斩狱,特別是利于應(yīng)用程序的測試耳高,可以比較容易的實施測試驅(qū)動開發(fā)。
兩種開發(fā)技術(shù)并存所踊。 MVC只是給開發(fā)者提供了開發(fā)web應(yīng)用程序的一種選擇泌枪,而不是替代傳統(tǒng)的Web Forms,這兩種技術(shù)應(yīng)用于不同的場合具有不同的優(yōu)缺點秕岛。具體兩者之間的比較分析碌燕,可以查看WebForms vs. MVC。