2011-12-15 159 views
5

我讀過很多問題和文章,指出從ASP.NET Webforms轉換爲MVC幾乎是不可能的。然而我認爲我的情況是不同的。我很愚蠢地從一年前開始在Webforms中開展一個項目,但我採取的方法(據我所知)非常類似MVC。我禁用了表單驗證,不使用任何回發,使用URL重寫以及所有頁面更改都是加載ContentPlaceHolders的頁面內容的AJAX請求(使用小型黑客,覆蓋RenderControl方法)。我還在獨立的項目中使用了我自己的ORM和RESTful Service API,並在網站中引用。從ASP.NET WebForms遷移到MVC

現在系統運行得非常好,頁面部分刷新正常,並且在進行ajax調用時url被更改,所以當頁面刷新時,它看起來完全一樣。

現在我剛剛被告知我需要爲一個新的大項目學習MVC(但我必須先完成另一個項目),但是我已經做了一些關於該主題的閱讀並開始了一些Hello World應用程序,而且似乎ASP.NET MVC的想法與我已經創建的完全一致。

StackOverflow仍建議不要將Webforms應用程序轉換爲MVC嗎?除了最佳實踐之外,轉換爲MVC是否還有其他好處?

+0

您當然可以將WebForms「轉換」爲MVC,但該過程將涉及大量的複製/粘貼/重寫。 – jrummell 2011-12-15 16:02:48

+0

在我看來,「除了最佳實踐之外,還有其他任何轉換爲​​MVC的好處嗎?」從這個問題的其餘部分是另一個豆類罐頭。 – 2011-12-15 16:03:17

+5

如果它的效果很好,請不要重寫它。 – Erix 2011-12-15 16:03:46

回答

3

我有一個非常大的和舊的ASP.NET WebForms應用程序(最初是爲.NET 1.1編寫的!),並且已經使MVC能夠並行工作。我一直在使用MVC編寫新功能,並將舊的WebForms功能轉換爲MVC控制器和視圖。

我遇到了有關URL授權和在IIS集成模式下運行的一些小問題,但是一旦我理解了這些問題,他們相當容易解決。這幾乎不可能?當然不是!

由於我不知道應用程序的大小,範圍或性質或任何業務限制,我無法告訴您是否值得您花時間對其進行轉換。但是,轉向MVC對於簡化開發和質量來說是相當有益的(因爲它更容易劃分和單元測試)。更不用說,我在MVC中編寫(或重寫)的功能比WebForms等效項更清晰,更快速,響應更快。

我很高興將它從MVC v2移到v3,並轉換爲Razor視圖。我也會?如果我是你,我有時間,我會這樣做。

下面是我發佈的一個問題,概述了該過程以及我在轉換中遇到的一個更重要的問題。 Migrating legacy ASP.NET to MVC 2 (RC): HttpApplication events not firing, User principal is null

3

我最近將一箇中等大小的項目從WebForms轉換爲MVC。我不會推薦在你的第一個MVC項目上做這件事,但是一旦你掌握了它,就沒有什麼能阻止你將WebForms應用程序轉換爲MVC。

我注意到的主要好處之一是速度。通過拋出視圖狀態,數據綁定和Web控制怪異性,您將最終獲得更快的應用程序。

當然,還有更好的已知好處,如可測試性和完全控制生成的html。

WebForms和MVC共享相同的基本ASP.NET平臺,因此它們確實不像您讀過的那樣不兼容。