大約3個月前,我被告知我需要開發一個企業網絡應用(實際上是一系列小型網絡應用),但我可以選擇任何我想要的技術。因爲我對VS/C#/。Net非常適應,所以選擇ASP.NET WebForms還是ASP.NET MVC2是一個難題 - 與你不同,我唯一的背景是使用Windows Forms(WinForms)和小WPF。所以我不得不研究(並嘗試)WebForms和MVC。
就像你一樣,我意識到我的應用程序既不是谷歌也不是蘋果的,但是你的沼澤標準公司應用程序有成千上萬的按鈕和框等.WebForms似乎是部署速度最快的,但很難測試並且難以長期維護。 MVC似乎有更陡峭的學習曲線,但一旦建立,測試和維護將變得輕而易舉。
我只用WebForms弄了一個星期,所以我不能評論它。但MVC絕對是我期待它的一切。
是的,這是一個陡峭的學習曲線。概念是新的對我說:
- 模型 - 視圖 - 控制器(MVC)
- 分離關注點(SOC)
- 模型綁定
- 單元測試和測試驅動開發(TDD)
- 嘲笑和打樁
- 依賴注入(DI)
,幫助這些書我大多數是:
我也刷上了我的HTML,CSS ,和Javascript。
總體而言,似乎是斜升工作在開始一個公平的數額,但維護和擴展現有的應用已經相當痛苦。無論何時我被要求進行修改,這都非常簡單,我通常能夠按時或有時提前交付。
在一個理想的世界,寫一個MVC應用程序將與2人發生了。一個人編寫核心代碼,第二個人編寫UI和視圖(HTML,CSS,Javascript)。儘管完全可以自己完成。 (這是我在做什麼現在...)
我遇到了一些掛鉤的企業部署,雖然。在內部,我的公司正在運行Windows Server 2003和IIS6。不幸的是,當使用虛擬路徑時,我們無法讓應用程序在IIS6上正確部署。 (所有對CSS文件的引用都被打破了。)如果你打算部署MVC,我會推薦使用IIS7或更高版本。據推測,MVC適用於IIS6,但要求您的IT部門願意弄清楚如何使其發揮作用。
編輯:我才意識到我從來沒有直接回答你的問題。這裏所說:
我個人的經驗說,是,是的,學習曲線陡峭,建立良好的模型和用戶界面,但我不是一個真正的網絡開發,所以我一直在與障礙。好消息是MVC技術相當成熟。
是的,社會是相當發達和成長。您將從StackOverflow以及MS的ASP.NET MVC子論壇中獲得很多好的答案。
我沒有親身經歷編碼的WebForms,但我已經編寫大量的WinForms應用程序,我覺得這是我花了約。構建此MVC應用程序的時間再延長3倍。最初的投資是熊,但定期維護和改進似乎會更快,尤其是隨着應用程序的增長......由於您似乎有一個程序員團隊,因此您可能會分得更快學習/工作量。
再次,沒有WebForms的經驗,但我可以告訴你的是,當我學習ASP.NET MVC時,有時候我很難理解發生了什麼,因爲我之前沒有ASP。 NET背景。(例子:成員和角色提供者 - 我最近必須自己編寫代碼,男孩很有趣......)另一方面,我沒有任何「做事的舊方式」(又名WebForms)無論是。如果你有一羣迷戀PostBack/CodeBehind的人,你可以打賭MVC起初看起來非常奇怪。但希望您的團隊能夠看到MVC帶來的優勢,並充分利用它。
哦,應該指出的是,你可以融合MVC和WebForms。這不是一個全有或全無的命題。雖然,如果我在你的鞋子裏,我會嘗試儘可能多地使用MVC,並且只有使用WebForms才能使它顯得更有意義。
好的,我希望這可以幫助... :-)
+1,如果只爲Eric Burke漫畫! :P – 2009-04-22 04:36:38
+1,如上:) – twk 2010-09-23 14:10:45