2009-01-08 47 views
7

我們是一家開發商店,仍然使用.net 2.0開發我們的大部分開發工具。我們開始考慮在3.5(LINQ等)中使用一些新的東西,並且還有一些其他軟件包,我們正在尋找那些需要WPF等等。.net 2.0和3.5將並排運行嗎?

我們希望在我們的測試服務器上運行3.5並運行,但不會破壞我們已經運行的2.0站點(並且我們希望它們繼續運行在2.0以下)。是否有任何隱藏的問題我應該知道,或者我可以在我們的Server 2003機器上安裝3.5並且可以繼續使用?

(具體關注的是,儘管微軟聲稱.NET 2.0的組件都在3.5一樣的,他們實際上改變了一些破壞遊戲。)

更新:通過這裏大家的意見和其他閱讀的鼓舞上,我們決定咬緊牙關,在服務器上安裝3.5「只是爲了看看會發生什麼。」

在運行安裝程序時,我們發現(對我們來說,這是一個不小的驚喜).net 3.5已在8月份安裝完畢 - 我們都不知道它。

這其實的確如同您要求的無縫升級一樣。

謝謝大家!

回答

2

3.5是2.0的擴展。沒有2.0沒有3.5。它實際上是一個不同的DLL(Core.dll)。這不像從1.1到2.0;如果您的舊網站不參考新的DLL,那麼這些網站不會被改變。

+0

Core.dll不是一個不同的dll,它只是另一個DLL,與mscorlib程序和系統一起它被加載到應用程序域中。 – casperOne 2009-01-08 00:34:55

+0

我的意思是原始的2.0 DLL(mscorlib)沒有被修改。 – 2009-01-08 00:38:36

+0

啊哈,很高興知道。謝謝。 – 2009-01-08 00:39:15

12

2.0會很好地與3.5。 .NET 3.5實際上只是在2.0上添加了一些額外的類,所以一切都是兼容的。我將一些項目從2.0移到3.5,並且所有的移植都非常順利,只需重新編譯即可。

+0

這也適用於網絡應用程序? – 2009-01-08 00:39:48

+0

這個答案是錯誤的。 3.5替換某些2.0的部分,所以你需要回歸測試 – 2009-01-08 00:43:20

1

只是補充一點,.NET版本是爲了協同工作,而不僅僅是2.0/3.0/3.5版本。你也可以在一邊運行1.1,它會很好。

-2

不,你不能。它很可能會起作用,但3.5會替換某些2.0部分,因此您需要進行迴歸測試。

如果您不喜歡答案,請不要投票。

我在TechEd上特別提出了這個問題。保持相同的API並不意味着實現的行爲相同。當時,發言者的迴應是:性能改進(沒有細節)。

重複自己,因爲它似乎沒有註冊:API是相同的,實現是不同的(正如你可以在評論中的Hanselman鏈接看到的)。彌迦,你似乎不知道你在說什麼。

7

.net 3.5本質上是一組與2.0庫並行運行的附加程序集。任何現有的2.0庫都沒有發生任何重大更改。您可以直接將所有2.0應用程序轉換爲3.5,而不會遇到任何問題。這包括在3.5框架上運行2.0應用程序。一些優化和錯誤修復已達到2.0,但所有公共接口保持不變。這適用於包括System.Web在內的所有名稱空間。

在3.0和3.5版本的框架中添加了許多新功能,如WPF,實體框架和其他幾個「框架」。類被添加到現有的命名空間,但它們實際上生活在單獨的dll中。需要注意的

有一件事是FryGuy指出:

要小心安裝3.5 SP1, 因爲它也將安裝2.0 SP2, 它增加了一些額外的功能。這 將是很好,除了視覺 工作室將使用智能感知和 一切都會編譯罰款和工作 大開發機器上,但 完全失敗了電腦上一個不起眼的錯誤 與「公正」 2.0。

例如,方法 ManualResetEvent.WaitOne。 SP1增加了 的重載WaitOne(int),而 沒有它,你需要調用 WaitOne(int,false)。

由於CMS4GuysFromRolla發佈:

Additive versions of the .NET Frameworks http://aspnet.4guysfromrolla.com/images/NewIn35.gif

1

我已經在過去幾年做這兩個非常大的系統,不得不在兩種情況下絕對沒有任何問題。 3.5運行在2.0運行時之上。

3.0應該是2.1,3.5應該是2.5。如果這有助於任何。 3.0和3.5實際上只是2.0的功能擴展,並且不包含它們自己的運行時。 Service Pack發佈到2.0是發現更改爲2.0的地方。

3

是的,但有一個警告。

安裝3.5 SP1時要小心,因爲它還安裝了2.0 SP2,它增加了一些額外的功能。這很好,除了Visual Studio會使用IntelliSense,並且所有的東西都可以在開發者機器上很好地編譯和工作,但是在「just」2.0的計算機上會出現一個模糊的錯誤。

一個例子是ManualResetEvent.WaitOne方法。 SP1增加了重載WaitOne(int),而沒有它,你需要調用WaitOne(int,false)。

1

除了提供的所有答案之外,由於您必須關注自己的工作,因此在部署到生產服務器之前,應先在測試服務器中嘗試它。

根據我的經驗,我們在Web服務器上升級到.NET 3.5時沒有問題。

相關問題