2011-06-10 36 views
5

Diamonds是一個基於Windows窗體的ERP,我會使用網絡技術,而不是Windows窗體重建它..asp.net web表單VS MVC這是最適合業務應用

,但現在我需要決定這是最好的,ASP.NET webforms(我認爲)更容易(設計)我的意思是在這裏的用戶界面,但mvc有更簡單的HTML輸出,和一些其他功能...

你能幫我決定技術使用和爲什麼?

我使用C#,

乾杯

回答

5

我認爲這兩種技術在經過任何基礎知識之後都會變得有些複雜。以下是我在實現必須同時存在於MVC和WebForms主機中的項目時收集的一些簡短意見。

WebForms的肯定:

  1. 產品的成熟度
  2. 大量的第三方支持,對於複雜的控制
  3. 有辦法繞過框架的傳統感覺的方面(例如,WebForms MVP

WebForms的否定:

  1. 頁面生命週期問題可能會激怒你無止境;有很多運動部件的複雜的Web應用程序
  2. 使用依賴注入是「難」來使用/實施
  3. 有很多的框架,你無法控制
  4. 需要類似反射來如果有任何問題沒有通過文檔,網頁,實驗回答,請參閱反編譯源代碼。

MVC肯定:

  1. 的依賴注入的關注和支持大分離
  2. 了這麼多的事情(即項目結構,MVC框架,呈現的內容等)
  3. 更多控制
  4. 您可以xcopy在asp.net 4安裝(即第三方託管服務提供商)之上隨同mvc框架一起部署您的應用程序
  5. JSON的本機支持
  6. 提供源代碼(帶註釋!!),以便您在遇到內部問題時可以深入瞭解各種功能。
  7. 他們一直在做工具上的帶外發布,我相信計劃在框架上這樣做(?);他們有一個期貨項目以及來源,向您展示他們將要進行的一些方向,以及如果您應該選擇可以使用的方向。

MVC否定:

  1. 可能需要一點時間來包裝一個人的頭腦周圍
  2. 沒有像很多第三方傭工(無管制);那些存在似乎不像他們的WebForm同行

就我個人而言,我是一個MVC粉絲,因爲控制,靈活性和透明的依賴注入支持。也許你應該用兩種技術做一個小型飛行員,看看你更喜歡哪一個。祝好運並玩得開心點!

+0

「使用依賴注入很難」使用/實現「 - 如何?在'Page'中注入依賴關係非常簡單,類似於設置控制器工廠http://aspnetresources.com/articles/ioc_and_di_with_web_forms – jfar 2011-06-10 15:42:11

+0

對不起,但對我來說,使用nuget將ninject「安裝」到我的mvc中項目(然後使用WebActivator將依賴關係無縫注入到我的控制器中)比實現自定義PageHandlerFactory更直觀。我有一個解決方案,部分在mvc中運行,部分在webforms中運行,並且我最終爲Webforms使用了ServiceLocator模式。我無法將基類更改爲我的控件/頁面,我想簡化它。一個人肯定可以得到它的工作,但我發現MVC更容易設置。 – Jason 2011-06-10 18:43:22

+0

@Jason - 有一個用於webforms的Ninject nuget包。沒有看到這與MVC有何不同或更直觀。 – jfar 2011-06-10 19:08:33

6

如果你關心的可擴展性,易維護性,可擴展性和應用程序的穩健性,以及你的軟件開發技能的開發,然後留遠儘可能遠離網頁表單。

通過在窗體中包裝所有內容來添加一層狀態的想法是錯誤的。 HTTP是無狀態的,並且MVC是圍繞該模型構建的,這很好。

編輯 關於提出的意見。 Web表單應用程序不可擴展,因爲表示層,業務邏輯和數據訪問代碼(數據源)都駐留在代碼後面。 Web表單提供的控件僅適用於Web表單。這意味着您將無法將這些技能轉移到其他Web開發框架。

最後,當然可以使用MVC編寫一個緊密耦合的應用程序 - 總有一種方法可以銷燬某些東西。對此沒有任何爭議。主要的一點是,當網絡形式實際上把你從你身上帶走時,MVC鼓勵分離顧慮和單一責任原則。

你也說過,網頁表單比較容易。如果您一直在使用它,並且與MVC相比更快,但是從長期來看,MVC可能變得「更容易」。在www.asp.net/mvc上觀看一些視頻。另外你可能想看看測試驅動的開發(單元測試)。我不認爲單元測試適用於網頁表單,因爲所有內容都緊密結合在一起。如果我錯了,請糾正我。

我會非常有興趣聽到其他開發人員對使用這兩個框架的經驗有興趣。

+3

這個答案是當場上。你會看到人們支持論證的雙方,但作爲一個很長一段時間webforms開發者誰最近首先進入MVC,我可以誠實地說,我從來不想再寫一個Web表單應用程序:) – stephen776 2011-06-10 11:40:07

+1

恕我直言,MVC顯然更好,但所有您所引用的原因與底層框架無關,而是從開發人員提供的代碼質量中獲得。可伸縮性也與Web前端無關,但始終依賴於基礎數據服務。帶有重載數據庫的MVC站點與webforms數據庫一樣慢。 – jfar 2011-06-10 12:09:44

+1

請參閱編輯。 – 2011-06-10 13:47:35

4

我強烈推薦MVC,因爲一旦UI被淘汰,它會使後端觀點更容易開發。有MVC的噸VS ASP的問題在那裏:單靠TDD和沒有根據的Viewstate 123

從我的角度MVC勝。但這取決於你打算如何管理和使用其中的各種功能。

0

這是所有關於您的選擇讓Web窗體可以讓您輕鬆設計您的應用程序,因爲現在MVC已經成爲行業標準,甚至MS正在推廣它。如果你想保持你的代碼清潔,毫無疑問MVC是更好的選擇。

1

儘管我已經完成了大量使用Web表單的項目,但我必須說他們存在的主要原因是通過HTTP提供了一個抽象層,主要是爲了促進基於事件的無狀態協議模型。不幸的是,像大多數MS解決方案一樣,這是有代價的。

從歷史上看,Web表單過去一直困擾着標記生成的問題。其中一些問題今天仍然存在,尤其是涉及到ViewState時。事情現在稍微好一點(你可以在ASP .NET 4.0中管理DOM id),但Web表單仍然會導致你的悲傷。在Web表單項目中你會看到的常見事物是在代碼隱藏中大量的biz邏輯。

MVC並沒有消除這一點,但它提供了一個結構和關注點的分離,使不好的練習變得不太可能。也就是說,儘管從最終用戶的角度來看,默認視圖引擎在生成清晰標記方面效果更好,但視圖中的內聯代碼是對傳統ASP的反撥。

對於它的價值,我已經停止開發web表單項目,並專門轉到MVC進行新的工作。

1

恕我直言,MVC

我不得不寫了一份報告,證明從Web窗體/ Nettiers

更改爲MVC我在博客裏我的論點here

相關問題