2011-03-28 42 views
4

我知道這是一個相當奇怪的問題,請不要火焰我:)降級asp.net的MVC 3〜2

我有一個具體的需要「降級」當前Asp.Net MVC 3(網絡框架4)應用程序到Asp.Net Mvc 2(網絡框架3.5),因爲我們的共享主機提供商不支持.Net 4(我知道這很瘋狂,因爲它自2010年4月12日起開始零售,第一次測試於2009年5月發佈,但是這不是帖子的重點)。

有什麼工具,指南或任何可以幫助您的過程?我有點失落,因爲我升級了許多應用程序,但我從來沒有降級過。

除了嚴格的MVC,我使用的是EF代碼第一次一個數據層(也許NHibernate的將是替換的最佳工具?)

任何幫助,提示,信息,無論是讚賞。

謝謝。

編輯:更改託管服務提供商不是一個選項,否則我不會發布這一切。我個人反對這個降級 - 我發現它完全沒有意義 - 但仍然是唯一的選擇。

+4

Mb容易改變'共享主機提供商'比降級項目? – 2011-03-28 10:20:59

+0

更改主機不是一個選項,請檢查我的編輯。 – 2011-03-28 10:24:16

+0

是的,我明白了。那麼祝你好運;) – 2011-03-28 10:28:49

回答

5

我會更改託管服務提供商。如果您的提供商現在不支持.NET 4.0,那麼您是否真的想與他們建立長期關係?下一個新功能發佈會發生什麼,它們需要多長時間才能實現?如果那是他們提供的那種服務,我認爲那裏沒有任何未來。

話說,如果你沒有選擇,只能保持與他們的話,我認爲你唯一的選擇就是

  1. 更改在Visual Studio項目的目標框架設置3.5。
  2. 刪除MVC 3,並添加MVC 2
  3. 更改所有剃刀欣賞到Web窗體視圖引擎的語法
  4. 重新編譯和工作,通過所有的錯誤

對於你的web.config文件我會創造一個新的MVC 2項目,並從該web.config工作,複製您的舊配置所需的任何額外設置。

根據項目規模的不同,這顯然是一項艱鉅的任務。

+0

雖然我完全同意這樣的託管服務提供商是不可靠或專業的,我的公司不會改變它。因爲我們有幾十個託管網站,「這將花費太多,花費太多時間來遷移一切」。我知道我們可以有2個不同的提供者(新東西和舊東西),但他們完全反對。由於我沒有使用Mercurial來獲得新的東西,因爲舊的東西在SVN上,「我們不能有兩種不同的版本控制系統,我們不能遷移一切」。 – 2011-03-28 10:35:51

+0

好的,那恐怕是手動更新了。如果這是一個大型項目,使用Razor隨處可見的「動態」,那顯然將是一項艱鉅的任務。如果您使用Web窗體視圖引擎並且不真正使用'dynamic',那麼它可能不會那麼糟糕。 – 2011-03-28 10:46:15

+0

它與ViewBag一起使用剃鬚刀,所以我註定要失敗。 – 2011-03-28 10:52:26

2

我能想到的唯一方法是獲得一臺安裝了MVC 2的機器,獲取該項目並嘗試將其編譯爲.NET 3.5。

This will會產生很多錯誤。

其實 - 這可能是說服那些持有錢包字符串,你需要改變託管服務提供商的方式。您可以向他們顯示錯誤列表並估計需要多長時間才能解決問題。如果這是很長時間(幾個星期?),那麼移動可能更具成本效益。

0

您可以將asp.net 4.0網站轉換爲asp.net 2。0輕鬆

  1. 只是做一個新的網站
  2. 然後選擇您的asp.net 4.0的網站文件夾中的新網站文件夾中的.NET Framework 2.0
  3. 複製所有文件,除了web.config文件
  4. 刪除所有的.vb或文件的.cs未使用的usings
  5. 經營的網站很容易
+0

我現在只讀了一整年半的時間,看起來你甚至懶得去看我的問題,如果你這樣做,你顯然甚至不知道我在說什麼。在.Net版本和Mvc版本中降級MVC項目並不是一項簡單的任務。你最好檢查一下David Glenn的答案,因爲他很好地評估了它。 – 2012-12-28 15:49:36