2011-08-07 80 views
3

我正在與ASP.Net WebForms一起構建工業項目。 我們認真考慮將我們的應用程序切換到ASP.NET MVC中。您是否認爲ASP.NET WebForms是一種不好的做法?

這需要我們一些時間,所以您認爲ASP.Net WebForms是一種不好的做法,花在切換到MVC上的時間會在以後得到提升嗎?

+2

Webforms - 完成的權利 - 是很好,絕對仍然是一個有效的選擇。只是因爲MVC是新的,性感並不意味着它是所有情況下更好的選擇.... –

回答

8

如果使用適當的設計模式和實踐進行編碼,WebForms就非常好。如果滿足以下條件之一,我只會投資切換到MVC:

  1. 當前性能嚴重不足。在這種情況下,重寫可能是不可避免的,並且切換到MVC(這可能會強制將問題與你分開)可能是一個不錯的選擇。

  2. 由於當前的解決方案處於不可維護狀態,您期待執行重大升級,這將不可能實現。在這種情況下,切換也是一個合理的選擇。

在一般情況下,你可以有精心編寫的,寫得不好的兩個WebForms和MVC(但正如我說MVC使它稍微難寫較差的應用程序。)如果你有一個可以接受的表演和應用可維護的WebForms應用程序,不要浪費你的美元轉換它。

2

約WebForms的最好的事情是:

  • 你可以得到一個應用起來非常快速運行
  • 可以建立網絡和HTTP

如果比較小知識的應用你打算製作一段時間內會運行的應用程序,並且你不介意更多地瞭解網絡,那麼我認爲MVC是一個更好的方法。

切換一個現有的項目是不同的,因爲事先有工作和不確定性。如果這個項目將來仍然在開發中,我建議您進行遷移,但是這樣做是零碎的:您不必一次轉換所有現有的頁面。您可以使用MVC創建新頁面和流程,將舊頁面保留在WebForms中,然後逐個更改它們。您甚至可以在WebForms頁面內部呈現MVC部分視圖,並在MVC視圖內部呈現WebForms控件(沒有視圖狀態,這意味着沒有服務器端交互的控件)。

我已經在一個大項目上完成了這項工作,它非常成功:我們沒有結束切換所有WebForms頁面,因爲其中一些頁面從未被觸及。當一個頁面需要工作的時候,那麼該轉換它的時候了。

7

我是一名MVC熱心人。

當WebForms出來時,我是唯一一個說「皇帝沒有衣服」的人,因爲我不明白ViewState會如何縮放,以及從代碼隱藏向前端發送JS指令的噩夢。這是一種嘗試將舊的WinForms方法學帶入網絡世界的蹩腳方式,而MVC是一個真正的保佑,因爲它是一種更好的Web開發方式。

話雖如此,正如@dlev所說的,只有當您有一個真正的理由證明糟糕的遺留代碼庫和/或使遷移時間得到回報的長期計劃時,您才應該將您的應用程序遷移到MVC。

2

您可能還想看看Webforms MVP(Model-View-Presenter)。 http://webformsmvp.com/

這是一種更好的方式來做Web窗體,這樣的邏輯可以很容易地進行單元測試等。如果你不能完全切換,這可能是一個很好的折衷。

0

另一件需要考慮的事情是,你的項目時間表是否有足夠的靈活性來允許額外的時間讓你學習MVC到一個水平,這意味着你可以做這個項目是正確的?如果你在學習的過程中學到了一些風險,你就會想回去修復你在開始時寫的代碼,現在讓你感到畏縮。

另一件事是你現有的應用程序大概是部署了&已經用了X多少次?這代表了用戶可用性測試的錯誤修復時間(即使他們沒有意識到這是他們一直在做的)的X時間量。你現在要拋出所有的錯誤&產生一個新的錯誤的整個負載。當然,從舊應用程序中學到的一些修正&可以結轉。但是在進行任何形式的完全重寫之前,您需要將其考慮在內。

Simon

相關問題