繼你的問題的順序:
1 //沒有。 Webforms基於「智能UI」模式,即通過編寫事件處理程序來控制應用程序。智能用戶界面有其問題,但是當完全基於桌面時,它確實可行,因爲沒有大型「虛構」被引入到框架中以使其工作。然而,對於網絡來說,它處理無狀態的HTTP,引入了一個重要的小說,主要是以ViewState的形式,當頁面被髮送到客戶端瀏覽器時,它保存所有控件的狀態。因此,Web表單在您的應用程序中引入了一層複雜的功能,只能維持這個缺陷。 MVC消除了這種小說。
虛構實質上是這樣說的:我們會假裝我們和客戶之間不存在HTTP。
2 // MVC刪除小說併爲您提供裸體HTTP。然而,它更多基於Front Controller而不是Page Controller模式,因爲Page Controller模式使得獨立於Http請求測試控制器很困難,而MVC專門設計用於使控制器可獨立於HTTP請求進行測試。換句話說,MVC被設計用於在控制器上進行單元測試,而不是集成測試。
MVC重點關注模型與視圖的分離,而Webforms /智能用戶界面不會做出區分。
我想你可以說,爲了消除ASP.NET MVC中的頁面控制器,ASP.NET重構了HTTP在控制器上對「正交屬性」的影響,這不是我被引導相信的方式頁面控制器模式起作用。但是,不要在此引用我,我是這些東西的學生,而不是專家。
3 //不一定不是!如上所述,webforms是虛構的智能UI,而不是任何形狀或形式的MVC。你可以通過一些箍環來使它們成爲MVC ish(a Dino Esposito),但這又是一個幻燈片。如果你有ASP.NET MVC,爲什麼沉迷於小說?
最後的問題。我從webforms轉換到mvc的原因是Wizard Server Control。它的「事件模型」是殘酷的一件事是,在面對一切,我需要實現蠅(更不要說其他的屬性,方法......呸的窒息擴散!)。
再過10天我寫了一個基地WizardController現在我的嚮導是美麗,優雅和簡單的事情。我高興地都扔有3個月的工作對奇才的WebForms將其轉換爲我的新的迷你嚮導框架。這是很糟糕的。