Dot-Net
ASP.NET Framework 從 2.0 遷移到 3.5 的影響?
我已經開始使用 Visual Studio 2008,它每次打開時都會要求我將我的 2.0 網站項目升級到 3.5 。
- 當我在 Visual Studio 中將網站項目從 2.0 升級到 3.5 時,會發生什麼有效的事情?
- 它會更新我的 web.config 嗎?它究竟如何改變我的項目/網站/程式碼?
- 升級到 3.5 後是否有可能破壞任何 2.0 方法/設置?
- 是否有任何問題?
(正如其他答案中的其他地方所提到的,還有一些額外內容:)
- 將 VS 2005 解決方案轉換為 VS 2008 將意味著您需要維護重複項,或者其他人也必須使用 Visual Studio 2008(而項目文件格式(從您的問題來看,您無論如何都沒有使用)在理論上沒有改變在 2005 年和 2008 年之間,解決方案文件不兼容…)
- 將網站轉換為 3.5 主要影響 web.config。一些引用被添加到一些預設的 3.5 程序集,例如 System.Core.dll。並且它將添加 IIS 7 部分(如果站點發佈到 IIS6 框,則將全部忽略)。
- 通常不會從升級中看到新的編譯時錯誤(如果有的話,不會有很多)。C# 和 VB 團隊都努力確保所有新的 LINQ 關鍵字的向後兼容性……因此您可以在名為“from”的類中的名為“where”的方法中擁有一個名為“var”的本地名稱,並且所有內容都可以編譯很好…(對於升級到 2005 時在 VB 2003 程式碼庫中具有名為“運算符”的符號的任何人的改進 :-)
- 顯然,一旦切換,您將需要在部署到的任何伺服器上安裝 .NET 3.5。與 .NET 1.1 與 .NET 2.0 不同的是,無需擔心 CLR 版本/AppPool 問題,它們都在 .NET 2.0 中執行。在下面閱讀…
如果您擔心任何現有 .NET 2.0 程式碼的執行時回歸,那麼有好消息也有壞消息。
好消息:回歸幾乎是聞所未聞的。
壞消息(或其他好消息):如果您在執行 2.0 站點的伺服器上安裝了 .NET 3.5,那麼您已經測試了回歸 :)
如上所述,.NET 3.5 實際上只是 .NET 2.0 CLR,帶有一些額外的程序集和新的編譯器功能。
當您安裝 .NET 3.5 時,它還會安裝 .NET 2.0 和 3.0 的服務包。因此,任何重大更改都會影響 .NET 2.0 網站,而無需任何明確的升級步驟。
不久前,Scott Hanselman 對 CLR 版本和 .NET 執行時版本之間的區別進行了很好的解釋。
最後一條評論 - 您應該知道,當使用 VS 2008 以 .NET 2.0 為目標時,您實際上是針對更新的 .NET 2.0 進行編譯的。因此,如果您使用悄悄添加到 .NET 2.0 更新版本中的一種(非常少且很少使用的)方法,例如 GCSettings.LatencyMode,當您部署到具有原始 .NET 2.0 RTM 的機器時,它將無法執行。在此處閱讀有關它的詳細資訊,Scott 還在此處發布了API 更改的完整列表)
雖然實際上不太可能遇到這樣的問題,但在某些方面(甚至不包括新的 3.5 功能的好處)你最好在 3.5 上 :-)