可能重複:
What’s your choice for your next ASP.NET project: WebForms or MVC?在什麼情況下,你比較喜歡ASP.NET webforms而不是MVC?
你能列舉一些原因,這將使你使用ASP.NET web表單的一個新的項目,而不是MVC?我聽到很多關於相反的事情,但不是通過webforms完成更容易或更好的事情。我並不是在討論開發者偏好,而是在於技術特徵以及他們如何映射到項目特徵。
可能重複:
What’s your choice for your next ASP.NET project: WebForms or MVC?在什麼情況下,你比較喜歡ASP.NET webforms而不是MVC?
你能列舉一些原因,這將使你使用ASP.NET web表單的一個新的項目,而不是MVC?我聽到很多關於相反的事情,但不是通過webforms完成更容易或更好的事情。我並不是在討論開發者偏好,而是在於技術特徵以及他們如何映射到項目特徵。
WebForms唯一的參數是需要設計高度複雜(讀取雜亂)的接口與大量相互關聯的元素,全部或部分應該對其他元素的變化作出反應。
一個典型的例子是某些企業應用程序(來自SAP或更小的供應商)。它們通常具有與瘋狂相接的界面。如果您使用的是MVC,則您將很難嘗試使用JavaScript手動同步控件。藉助WebForms,它變得非常容易。
構建這樣的接口是否是一個好主意完全是另一回事。
在WebForms元素事件觸發頁面回發。他們訪問相同的網址並進行統一處理。這使得架構非常具有可擴展性。
使用MVC來實現這一點,您必須設置一堆服務URL來處理來自不同控件的帖子,然後處理這些帖子並相應地更新視圖模型。這一切都涉及很多欺騙和雜耍。並不是說它不可行 - 它是,但不是大規模。這種方法不可擴展。遲早你會達到理解你需要建立自己的框架,像WebForms這樣的有狀態的面向對象的HTML/HTTP抽象方向。
個人而言,我發現MVC非常適合管理頁面。因爲它們通常有一堆表格,並且用於數據輸入和編輯。 MVC是爲這些東西「製造」的,所以它的製作速度非常快。
webforms我用於更復雜的事情,如網站的用戶端。我製作的網站顯示人們可以學習的課程。註冊一個課程是一個5步程序,在MVC中,我沒有真正的想法如何去做。我確信它可以在MVC中完成,但我認爲它在webforms中更好/更快。
但是最後我還是喜歡MVC。它感覺工作起來非常乾淨。
這取決於!
WebForms和MVC之間的區別是如果你可以TDD和控制完整的標記。
不完全是答案。它依賴於什麼? – Slavo 2010-08-25 11:34:49
這取決於您擁有哪種類型的項目以及開發團隊的工作方式。 – 2010-09-10 21:34:06
我唯一會考慮在新項目中使用Web窗體的時候,是否有爲Web窗體創建的組件,它解決了使用MVC解決更難解決的特定問題。
除了一些不應該被禁止的技巧之外,我不能再看到Webforms比MVC更有優勢了。
[本來我認爲MVC與webcontrols不兼容,所以希望使用Dundas圖表控件是不可能的。根據您的要求,使用webforms會是一個很好的參數。但我相信這不再的情況下,並且無論如何,您可以在你的MVC項目作爲最壞情況的WebForms]
可能推我(回)有幾件事情對的WebForms:
其中,可能CMS是我現在可以想到的要求,實際上使我使用WebForms。
謝謝。對於前三點,我猜LightSwitch會是你的方式:) – Slavo 2010-08-25 11:36:28
如果你只知道的WebForms MVC附帶了一個學習的過程,所以你將需要花費相當長的一段時間的訓練(或風險進行認真的安全性和性能的錯誤)
你需要一個小小的應用程序現在如果您選擇反模式,那麼在webforms中構建一個不需要的模擬應用程序可能會更快。例如。 SqlDataSource,邏輯在你的代碼後面等。
豐富的控件 GridView是一個很好的控制,有排序等所有內置爲你只需少量代碼,只要你的自定義要求很小。
缺乏Web開發經驗 Web表單更容易。它需要更多關注你的盤子。對於一個新手來說,這很好,因爲它很難出錯。儘管如此,如果你知道自己在做什麼,或者有時間學習,並且想要建立一個持久的站點,那麼MVC是非常好的。還有更多樂趣。
我會補充說,沒有什麼是錯誤與web窗體。完全可以用它來構建高性能的應用程序。自從它首次推出以來,時代已經發生了變化,MVC已經很好地解決了這些變化。
有一天,豬會飛,地獄會凍結,stackoverflow.com將不會再得到webforms與mvc問題。 :/ http://stackoverflow.com/search?q=mvc+vs+webforms – jfar 2010-08-25 13:19:09
我沒有找到答案,我標記爲接受任何其他問題。隨意關閉,我覺得我問了一個理由,並得到了一個很好的答案。相似的事實並不總是意味着它是同一個問題。 – Slavo 2010-08-26 11:11:18
SO關閉無人機,歡迎光臨。保存現金在Atwood口袋 – Jonathan 2010-08-27 10:30:07