為什麼該升級舊版的 .NET 應用程式? .NET 3.5 SP1~ 4.5.1 的支援週期及停止支援說明 (End of Support)

為什麼該升級舊版的 .NET 應用程式?

.NET 3.5 SP1~ 4.5.1 的支援週期及停止支援說明 (End of Support)

[MSDN 訂閱優惠方案] Windows Server/SQL Server 及 Visual Studio 各版本及 Azure 供開發測試

各位夥伴們,
       在2014/8月初時,.NET 產品團隊發佈了一個公告 (簡述如下),說明 .NET 3.5 SP1 ~ 4.5.1 版本的支援週期及停止支援日通知 (End of Support, EOS),建議開發者及IT人員將應用系統即刻升級到 .NET 4.5.2,並使用 Visual Studio 2013開發專案。

---------------------------------------------------------------------------------------

[公告簡述] .NET Framework 支援週期原則歷程記錄

Microsoft 於 2010 年 3 月宣布從 .NET Framework 3.5 Service Pack 1 (SP1) 開始,便將 .NET Framework 定義為元件,而非獨立產品。作為元件,.NET Framework 3.5 Service Pack 1 (SP1) 或更新版本的支援週期原則將與其基礎 Windows 作業系統相同。

Microsoft 於 2014 年 8 月 7 日宣布 .NET Framework 4、4.5 和 4.5.1 的支援將於 2016 年 1 月 12 日結束。我們建議客戶和開發人員在 2016 年 1 月 12 日之前完成 .NET Framework 4.5.2 的就地更新,以繼續取得技術支援和安全性更新。.NET Framework 4.5.2 及所有其他 .NET Framework 版本 (例如 3.5 SP1) 的支援都會在作業系統的支援週期期間繼續受到支援。 

----------------------------------------------------------------------------------------

.NET 是許多開發人員熟悉的應用程式開發 Framework及技術,許多企業內現有的.NET 應用程式可能正執行在 Windows, Windows Server, IIS 上,然而停止支援代表了什麼意思了? 開發人員及 IT 人員應該採取什麼行動呢? 本文整理了說明及FAQ,以及升級的參考資源。

1. 終止支援日期是?

  • 針對 NET 2.0 ~ 3.5 開發的應用程式 (若執行於 Windows Server 2003):2015/7/14 停止支援 -> 升級上線環境的作業系統 (Windows Server 2008 後) 及 .NET 版本 (.NET 3.5 SP1 或 .NET 4.5.2)

針對 .NET 3.5 版本前所開發的應用程式,並執行於 Windows Server 2003 上,不論是 WinForm、Web Form應用程式,2015/7/14 日是 Windows Server 2003的終止支援日,請速升級 Windows Server,確認其.NET 執行環境的作業系統為 Windows Server 2008/2012 或 Windows 7 以後,則其支援週期會與作業系統支援週期相同,將持續得到支援; 上線執行環境的 .NET Framework 版本請確定為 .NET 3.5 SP1,.NET 3.5 SP1 可以與 .NET 4.5.2 並存安裝並執行,但仍建議將 .NET 應用程式及專案升級到 .NET 4.5.2 及 Visual Studio 2013 之後版本,以享有更好的功能、執行效能、資安及開發生產力之提升。詳細升級 Windows Server 2003 資源,請參考此處

  • 針對 .NET 4.0 ~ 4.5.1 開發的應用程式 (執行於 Windows Server 或 Windows 任一版本) : 2016/1/12 停止支援 -> 確認上線環境的作業系統 (Windows Server 2008 / Windows 7 後) 及 .NET 版本 (.NET 4.5.2)

針對 .NET 4.0, 4.5, 及 4.5.1 版本所開發的應用程式,不論是執行在作業系統 Windows Server/ Windows 的版本為何,不論是 WinForm、Web 應用程式,建議於 2016/1/12 日前,將 .NET 執行環境版本及專案升級到 .NET 4.5.2 及 Visual Studio 2013 之後版本。 .NET Framework 4.5.2 是 .NET Framework 4、4.5 或 4.5.1 之後的可相容就地更新 (in-place update),這表示我們預期建立於舊版 .NET 4.x 的應用程式可以在 .NET Framework 4.5.2 上繼續執行,不需要重新編譯應用程式。(不一定要有原始碼,或是 Visual Studio 專案檔,只需確定 .NET 執行環境的版本為 4.5.2 之後)

2. 終止支援意味著什麼? 資安風險及高維護成本

終止支援是指在該終止日之後, 不再針對該版本的 .NET Framework 進行功能改進, 問題修正及安全性改新. 若是企業重要系統執行在舊版的 .NET 環境上, 將面臨到可能的資訊安全風險, 尤其是提供給外部客戶的 Internet 服務應用程式. 簡單描述如下,

  • 資安風險 : 終止支援後, 微軟不再提供資訊安全修補程式和 Hotfix, 伺服器及應用程式很容易遭受資訊安全威脅並造成停機時間。
  • 成本提升 : 不再有任何付費或免費的協助支援選項,伺服器及應用程式維護費用將快速高漲。
  • 法規風險 : 不符合法規與政策,可能導致信用評等降低、認證不通過,例如SSAE 16或 ISO 27001等。 

3. 升級到 Visual Studio 2013 及 .NET 4.5.2 後的好處是?

新版的 Visual Studio 及 .NET 在 Web、跨平台 App 開發都有很好的演進,在執行效能上也有顯著的提升 (在 IIS上其啟動速度可以增快約10倍),簡述如下,

  • .NET 迎向主流的現代 Web 開發技術  (Modern Web)  - 
    我們提到現代化的 Web 技術 (Modern Web),包括了 ASP.NET 如何支援 Responsive Web Design 響應式設計 (Web Form 及 MVC 皆支援)、Bootstrap 框架支援、各種社交平台登錄 (例如 facebook) 開發範本及 Identity Provider、Web API 建立共用且跨裝置及平台的服務ASP.NET SignalR 技術開發 real-time 應用,例如股票報價,線上即時對話聊天室、生產線即時資訊與電子看板即時互動資訊。以及.NET 本身在 4.x 以後的改進,包括非同步程式開發、更快的啟動速度等改進。
  • ASP.NET Web Form 持續進化 -  
    讓 Web Form 開發者,一樣可以邁向現代化的開發技術,包括HTML5, RWD, Web API, Identity 等支持,可參考這篇文章 ASP.NET Web Forms 持續進化及新功能 - Visual Studio 2013 Update 2 安裝後
  • 跨平台 App 開發 - 
    透過 Xamarin 開發套件,用你熟悉的 Visual Studio + C# 一樣可以開發原生 Native 不同平台 App (iOS/Android/Windows),而且效能及操作經驗就是原生的,更好的是在 Visual Studio 中可共用專案,例如資料存取的 business logic 共用、或驗證使用者身份的 business logic 共用,如此用一樣的 C# 語法,就可省下許多在不同平台開發的功夫,實現跨平台 app 開發。若是熟悉 HTML/JavaScript開發者,可以採用 Hybrid App開發方式,透過 Cordova 開發套件,在 Visual Studio 中一樣可以開發跨平台 App。
  • ASP.NET 新版本具有更佳的執行效率  -  啟動速度可以增快約10倍
    使用新版本的ASP.NET開發的網站支援搭配IIS 8.5伺服器的閒置後暫停功能,在指定的逾時時間終了時令網站進入暫停狀態,而非停止執行(預設值)。讓網站進入暫停狀態的好處是當下一個使用者的要求送達到網站的時候,暫停中的網站能夠快速啟動並提供服務,而且網站在進入暫停狀態時會較執行中的網站佔據較少的記憶體,因此設定網站閒置一段時間後進入暫停狀態不但可以提升網站的啟動速度,而且也可以提供IIS伺服器掛載網站的數量。透過網站閒置後暫停設定,網站從暫停狀態中啟動要比從預設的終止狀態啟動,其啟動速度可以增快約10倍,而且IIS伺服器能夠掛載的網站數量也可以提升約7倍。
  • 開發工具 Visual Studio 2013 的開發生產力提升 - 可參考以下文章 
  1. Visual Studio 推薦套件  - Gallery 及 Nuget
  2. 前端工程師的百寶盒 - Visual Studio 2013 開發工具
  3. Visual Studio 2013 關於程式碼品質和診斷工具的新功能
  4. ASP.NET Web Forms 持續進化及新功能 - Visual Studio 2013 Update 2 安裝後

Team Foundation Server (TFS) 及 Visual Studio 2013 除了支援 Team Foundation 集中式版控機制,也已內建支援 git 分散式的版控機制,另外 TFS 除了支援使用 Visual Studio 的開發者外,使用 XCode 開發 iOS 或是 Eclipse 的 Java 開發者,一樣可以透過 TFS 共同協作。若是 Agile/Scrum 敏捷開發團隊,無論是採用何種技術的開發團隊,TFS提供了敏捷開發所需的工具,例如看板、backlog management、burndown chart 等。最後 Visual Studio Online (原名 Team Foundation Service) 提供了雲端 ALM 平台,無需準備機器或安裝即可線上開通,讓開發/測試的工作更便利,尤其是其提供的線上壓力測試服務,這個太棒了,無需準備大量機器就可模擬成千上萬的 concurrent users。最後一個好物,是發行管理及自動化佈署,透過 Release Management 可大幅減少應用程式上線佈署的時間及可能過版錯誤的風險。

更多的升級好處及作法,可參考以下文章:

4. 升級該怎麼做? 簡單的幾個步驟

若有程式碼及專案檔,或是你可向公司內部開發團隊或是外包商建議,升級很簡單!可參考文章 [.NET 升級懶人包] 升級到 Visual Studio 2013 及 ASP.NET 4.5 的 6大好處及作法,內有詳細作法。

 

採取以下其一的方式升級,簡述如下,

        1. [ 一鍵升級法] 只升級 Visual Studio 專案檔,不升 .NET Framework (採用 multi-targeting 方式)  

       在 Visual Studio 2013 中可以同時支援不同的.NET Framework版本,你可用 Visual Studio 2013打開 VS 2005 ~ VS 2012 的專案檔,接下來會啟動升級精靈視窗,在過程中選擇不升級.NET Framework 版本,會將你的專案檔升級成 VS 2013 專案檔,你就可以享用新版開發工具帶來的生產力提升。若應用程式對應的.NET版本為 2.0 - 3.5,其執行環境的 .NET runtime 需為 3.5 SP1 版本,因  .NET Framework 3.5 SP1 的支援是由 Windows 作業系統的支援週期原則驅動, 請確定其執行在 Windows Server 2008/2012 版本後或是 Windows 7 版本後的作業系統,並且執行環境上的 .NET Framework 版本為 3.5 SP1; 若應用程式對應的 .NET 版本為 4.0 ~ 4.5.1,請確定執行環境上的 .NET Framework 版本為 4.5.2。針對 .NET Framework 3.5 SP1 以前的版本 (1.x ~ 3.5),其支援早已停止,仍建議盡速升級到.NET Framework 4.5.2 (採用以下的升級方式)

2. [ 升級精靈+簡單設定] 升級到 .NET Framework 4.5.2 及 Visual Studio 2013 (.NET 1.x ~ 4.5.1)

        以 ASP.NET 網站為例,欲將舊網站升級成新網站,程式設計師只要使用新版本的Visual Studio 2013 (目前為 Update 4 版本) 開啟舊網站的專案(包括ASP.NET網站專案和ASP.NET Web應用程式專案),會自動將所開啟的舊版本專案檔或方案檔升級成新版本的專案檔或方案檔。請注意這個動作並未升級網站專案所使用的ASP.NET版本,欲升級網站專案使用的ASP.NET版本必須另外設定專案的屬性,指定專案欲使用的.NET Framework版本。說明如下:

  1. 使用新版本的 Visual Studio 2013 執行[檔案 | 開啟 | 專案]功能,開啟[ASP.NET Web應用程式]型態的專案

  2. 使用滑鼠右鍵點選[方案總管]視窗中的專案名稱,執行[屬性]功能,將[應用程式]頁籤的[目標Framework]選項設定成新的.NET Framework 版本 4.5.2

    圖:設定ASP.NET Web應用程式專案使用的.NET Framework 版本的畫面

  3. 建置專案 (Build)

        [ 注意 ] 如果開發團隊只想要使用新版本的 Visual Studio 2013 維護舊版的ASP.NET Web 應用程式專案,只要執行第一個動作即可

5. 沒有專案檔及原始程式碼的作法? (適用應用程式為 .NET 4.0 ~ 4.5.1 版本)  

.NET Framework 4.5.2 是 .NET Framework 4、4.5 或 4.5.1 之後的可相容就地更新,這表示我們預期建立於舊版 .NET 4.x 的應用程式可以在 .NET Framework 4.5.2 上繼續執行。不需要重新編譯應用程式。.NET 應用程式有高度的向下相容性,若你的.NET 版本 4.0 ~ 4.5.1,可試著將應用程式執行檔 (.DLL 及任何 binary 執行檔案) 直接放到新的執行環境 Windows Server 2008/2012; 或是 Windows 7/8 以上的環境,並確定該環境中的 .NET Framework 版本為 4.5.2 之後,就可順利繼續執行。

[ 更多 FAQ......]

1. 為什麼 .NET Framework 4 4.5 4.5.1 的支援將於 2016年 1 12 日結束?

Microsoft 目前透過 .NET 4.x 系列產品高度相容的就地更新,讓客戶比以前更輕鬆地取得最新的 .NET Framework 4.x 系列產品。Microsoft 建議使用 .NET Framework 4、4.5 或 4.5.1 的客戶和開發人員在 2016 年 1 月 12 日之前完成 .NET Framework 4.5.2 的就地更新,以繼續取得技術支援和安全性更新。

2. 此支援變更是否會影響舊版的 .NET Framework ( 例如 .NET Framework 3.5 SP1)?

否,此支援變更不會影響 .NET Framework 4 之前版本的舊版支援週期原則。.NET Framework 4.5.2 及所有其他 .NET 版本 (例如 3.5 SP1) 的支援都會在作業系統的支援週期期間繼續受到支援。

3. 我是否需要重新編譯/重建應用程式,才能使用 .NET Framework 4.5.2 ?

 .NET Framework 4.5.2 是 .NET Framework 4、4.5 或 4.5.1 之後的可相容就地更新。這表示我們預期建立於舊版 .NET 4.x 的應用程式可以在 .NET Framework 4.5.2 上繼續執行。不需要重新編譯應用程式。

4. .NET Framework 4.5.2 是否有任何重大變更?為什麼要包含這些變更?

 .NET Framework 4.5.2 只有非常少數的變更/修正程式與舊版 .NET 不完全相容。我們只會在必須考量安全性、遵守業界標準或修正舊版不相容性時,包含此類修正程式。您可以在這裡(英文) 找到執行階段中的重大變更清單。此外,.NET Framework 4.5.2 中包含某些修正程式,只有在您選擇針對 .NET Framework 4.5.2 重新編譯應用程式時,才會啟用這些修正程式。這些類型的變更稱為重訂變更。您可以在這裡 (英文) 找到 .NET Framework 4.5.2 的重訂變更清單。

5. .NET Framework 也是其他 Microsoft 產品的中介軟體,例如 Exchange Server、SQL Server、Dynamics CRM、SharePoint 和 Lync。如果這些產品正在使用 .NET 4、4.5 或 4.5.1,我需要更新這些產品嗎?

Exchange、SQL Server、Dynamics CRM、SharePoint 和 Lync 等產品的更新版本是以 .NET Framework 4 或 .NET Framework 4.5 為基礎。.NET Framework 4.5.2 是 .NET Framework 4、4.5 和 4.5.1 之後的可相容就地更新。這表示在 .NET 執行階段從 .NET Framework 4、4.5 或 4.5.1 更新為 .NET Framework 4.5.2 時,使用 .NET Framework 4 或 4.5 建立的應用程式 (例如 Exchange) 會繼續執行,而不需要任何變更。因此我們建議客戶在生產環境中使用更新版本之前,先在預生產環境中透過將 .NET 執行階段更新至 .NET 4.5.2 驗證其部署。

6. 我在安裝 Visual Studio 時,系統安裝某個版本的 .NET Framework。這是否表示 Visual Studio 隨附的 .NET Framework 版本將採用 Visual Studio 的支援週期?

不是。Microsoft Windows 以外之主機產品隨附的 .NET Framework 版本,都附有 Windows 增補使用者授權合約。這表示該元件會視為 Windows 作業系統的一部份。

7. .NET Framework 各版本和相依性,以及與作業系統的關連性為何?

每一版 .NET Framework 都包含通用語言執行平台 (CLR)、基底類別庫及其他 Managed 程式庫。 下表摘要說明 .NET Framework 版本記錄,並將每個版本與 Visual Studio、Windows 和 Windows Server 相互關聯。 請注意,Visual Studio 提供多目標功能 (multi-targeting),也就是使用 Visual Studio 2013,就可以開發及維護 .NET 2.0 ~ .NET 4.5.2 的應用程式,因此不受限於所列出的 .NET Framework 版本。  

每一個新的 .NET Framework 版本都會保留舊版的功能並增加新的功能,也就是有高度向下相容性,原則上無需修改程式碼、無需重新編譯即可執行。CLR 是透過自己的版本號碼加以識別。.NET Framework 版本號碼會隨每個發行版本遞增,但是 CLR 版本不一定會遞增。例如,.NET Framework 4、4.5 和更新版本包含 CLR 4,但是 .NET Framework 2.0、3.0 和 3.5 包含 CLR 2.0。(沒有 CLR 版本 3)。

因此若你的應用程式當初是針對 .NET 2.0 - 3.5 所開發的,在執行環境的作業系統上,需安裝 .NET 3.5 SP1 的版本; 若你的應用程式當初是針對 .NET 4.0 - 4.5.1 所開發的,在執行環境的作業系統上,需安裝 .NET 4.5.2 的版本; .NET Framework 4.5.2 是 .NET Framework 4、4.5 或 4.5.1 之後的可相容就地更新 (in-place update),這表示我們預期建立於舊版 .NET 4.x 的應用程式可以在 .NET Framework 4.5.2 上繼續執行,不需要重新編譯應用程式。

.NET 3.5 SP1 可以與 .NET 4.5.2 並存安裝並執行,但仍建議將 .NET 應用程式及專案升級到 .NET 4.5.2 及 Visual Studio 2013 之後版本,以享有更好的功能、執行效能、資安及開發生產力之提升。

一般而言,您不應該解除安裝電腦上已安裝的任何 .NET Framework 版本,因為您使用的應用程式可能倚賴特定版本,如果移除該版本,可能使應用程式中斷。您可以同時在單一電腦上載入多個 .NET Framework 版本。  這表示,您不需要解除安裝舊版,可以直接安裝新版 .NET Framework。詳細上表格及更多版本相依性資訊 - .NET Framework 版本和相依性

 

完整 Microsoft .NET Framework 支援週期原則 FAQ - https://support2.microsoft.com/gp/framework_faq

.NET Framework 4.5.2 安裝檔及各版本下載點:

  • .NET Framework 4.5.2 Web Installer – A Bootstrapper that pulls in components based on the target OS/platform specs on which the .NET Framework is being deployed. Internet access is required.
  • .NET Framework 4.5.2 Offline Installer – The Full Package for offline deployments. Internet access is not required.
  • .NET Framework 4.5.2 Language Packs – Language specific support. You need to install the .NET Framework (language neutral) package before installing one or more language packs.
  • .NET Framework 4.5.2 Developer Pack (Visual Studio 2013 開發者可安裝,即可在開發專案中選擇.NET Framework 4.5.2) – This will install .NET Framework Multi-targeting pack for building apps targeting .NET Framework 4.5.2 and also .NET Framework 4.5.2 runtime. Useful for build machines that need both the runtime and the multi-targeting pack.

--------------------------------------------------------------------------------------------

完整升級資源

1. 升級好處、作法及技術參考資源

2. 升級實機教育訓練

[MSDN 訂閱升級包及優惠方案] - 包括 Windows Server/SQL Server/Visual Studio 各版本供開發測試,立即行動! – 請參考 https://aka.ms/vs2013tw