2008-10-02 104 views
6

我們正在將包含20個以上項目的解決方案從.net 2.0遷移到3.5,同時從Visual Studio 2005遷移到2008年。我們也在同時從MS Entlib 2.0切換到4.0。將.net 2.0解決方案轉換爲.net 3.5的缺陷

  • 有什麼理由不讓 的Visual Studio嚮導轉換 解決方案適合我們?
  • 是3.5完全向後兼容 與2.0?
  • Entlib 4.0完全向後兼容 與2.0?

編輯:我可能是有點混亂,當我寫這一點,向後兼容的解釋是:;還有什麼存在於2.0的項目,將無法正常工作/編譯3.5

:)

// w^

回答

6

我們從2005年到2008年升級了一個相當大的解決方案(20多個項目),但它確實很簡單。基本上只是項目升級。底層框架仍然相同,因爲3.0/3.5和2.0共享相同的核心框架。

如上所述,即使您正在升級,您也不需要更改項目的框架參考 - 事實上,它默認將框架保留爲2.0,而不是將其更改爲3.0/3.5。這意味着在更改引用(項目屬性頁面,應用程序表「目標框架」字段)之前,您將無法利用3.0/3.5功能,但這也意味着您可以更加確定不會有額外的兼容性問題(因爲您將在添加3.0/3.5代碼之前發生錯誤,直到該引用被更改)。

TFS 2008的新功能不可小覷要麼雖然你並不需要升級您的應用程序能夠使用TFS 2008

1.1到2.0的轉換是更痛苦......

4

我升級從Visual Studio 2005多個項目,以2008年的嚮導,他們一切都變得無痛(好吧......除了那個C++野獸,但是你仍在談論.NET)。

請記住,您不需要升級.NET版本。 Visual Studio 2008支持.NET 2.0,3.0和3.5。然而,無論如何,3.5是向後兼容的,因爲它位於相同的CLR上,或多或少只是一些額外的庫。 「舊」圖書館保持不變。

我不知道Entlib。

你爲什麼不試試並運行你的單元測試? :)

+0

單元測試,我想如果我有任何。 :) – Wiren 2008-10-02 08:45:46

1
  • 是否有任何理由不讓Visual Studio嚮導爲我們轉換解決方案?

  • 3.5 2.0完全向後兼容?

不是。3.5中有一些新功能不會原生向後移植。 (IIRC)有一些從2.0到3.5的貶值。

  • Entlib 4.0完全向後兼容2.0嗎?

我不這麼認爲。 3.5被列爲要求。

進行備份,運行嚮導,看看會發生什麼。對於這樣一個笨重的項目可能需要一段時間,但是你可以確定它是否會按預期構建/運行。

1

當我從EntLib 2.0升級到4.0我發現以下的斷裂源代碼更改,如果你使用的緩存應用程序塊:

  • 在2.0中,你使用CacheManager cache = CacheFactory.GetCacheManager()得到一個高速緩存管理器。
  • 在4.0中,您必須將CacheManager替換爲ICacheManager,否則它將不會編譯。

此外,如果你正在寫自己的異常格式化類的異常處理模塊:

  • 在2.0中,你必須定義與簽名(TextWriter, Exception)一個構造函數。
  • 在4.0中,這已經過時了,您必須定義第二個構造函數,其簽名爲(TextWriter, Exception, Guid)