Share via


Visual Studio 2013 關於程式碼品質和診斷工具的新功能 (CodeLens, Code Map, IntelliTrace, Memory Dump Analysis)

註: 內文提及Visual Studio Ultimate已於 2015/3月改名為 Visual Studio Enterprise

很多開發人員在問,如何寫更好品質的程式碼呢? Visual Studio 2013 已內建了一些品質及診斷工具,讓你寫碼、除錯及診斷問題更容易,幫你省下一些時間,也提高了程式碼的品質! 包括以下實用新功能:

  1. CodeLens
  2. 程式碼地圖 Code Map
  3. .NET Framework 記憶體分析與傾印檔案
  4. IntelliTrace
  5. 單元測試

1. CodeLens - 編輯器中的抬頭顯示器

 

為什麼說 CodeLens 這功能是程式碼編輯器中的抬頭顯示器呢? 就好比開車時,有個時速資訊顯示在前檔玻璃上,稱為抬頭顯示器,因駕駛的視線通常是在前方路況,若是低頭看儀表板才知道時速,除了不方便外也容易分心。當你在 Visual Studio Ultimate 中使用 CodeLens 時,不需要離開編輯器,即可找到有關程式碼的資訊。 例如,您可以找到參考、連結的 Team Foundation Server (TFS) 項目,例如這些程式碼與哪些工作單或 Bug 單有關、和單元測試的執行結果 – 全部在編輯器上,你就無需切換許多視窗及介面,可以專心在開發工作上並省下許多時間。

CodeLens - 連絡您的小組 

請參閱 使用 CodeLens 在編輯器中尋找程式碼的相關資訊

更多 CodeLens 資訊,參考: https://blogs.msdn.com/b/slange/archive/2014/06/17/panels-vs-context-a-tale-of-two-visual-studios-and-a-practical-explanation-of-the-value-of-codelens.aspx

2. 程式碼地圖 Code Map - 視覺化程式碼關連性及圖型化偵錯工具

這個功能很實用,可以一目了然專案中模組之間的關連,尤其是剛接手別人的程式碼,或是維護他人的程式,藉由在 Visual Studio Ultimate 中建立程式碼地圖,來視覺化和巡覽你的程式碼關聯性。另外也可用來當偵錯的工具,您也可以在偵錯時將呼叫堆疊視覺化,如此才容易理解目前已跳到哪裏了,幫助你偵錯更輕鬆。

使用 Code Map 上的堆疊呼叫來偵錯

 請參閱在 Visual Studio 中利用 Code Map 視覺化和了解程式碼以視覺化方式在 Visual Studio 中使用呼叫堆疊偵錯程式碼執行狀況

 

3 - .NET Framework 記憶體分析與傾印檔案 - 快速解決 memory leak 問題

 

這用來抓出 memory leak (記憶體遺漏) 的問題很有幫助! 尤其當你的.NET 應用程式已經執行於上線環境, 可能同時影響應用程式和整個電腦的記憶體使用量問題。 Visual Studio 2013 加強了傾印檔案分析 (memory dump analysis) 工具,協助您尋找 .NET Framework的 Web、資料庫和桌面應用程式中的記憶體遺漏、沒有效率的記憶體使用和不必要的設定。如需 .NET 記憶體程式分析工具的詳細資訊,請參閱 Visual Studio ALM + Team Foundation Server 部落格上的這篇文章 (英文)。 如需傾印檔案的詳細資訊,請參閱在 Visual Studio 中使用傾印檔案偵錯應用程式當機和停止回應的問題

 

4. IntelliTrace 智慧偵錯 - 可追蹤上線環境系統問題,除錯時可追到哪一行程式碼出了問題

 

這是 VS 2010 Ultimate 版本就有的功能,但在 VS 2013 又加強了可以偵錯上線環境的問題,若是一個重要系統,上線環境很難為了除錯一個問題而全面停機,可利用 IntelliTrace 收集伺服器端事件,在 VS 2013 中打開,就可以偵錯到問題出在哪,甚至找出問題的程式碼,減少了除錯的時間。尤其是上線系統效能問題,若要找到是哪些程式碼導致效能不佳,這功能是很實用的。以下是 VS 2013 Ultimate 針對 IntelliTrace 新增的功能。

新功能和支援的工作

  • 單獨使用 Microsoft Monitoring Agent 或與 System Center 2012 搭配使用,以讓本機監視 IIS Web 應用程式的例外狀況和效能事件。 您可以將這些事件記錄至 IntelliTrace 記錄檔,以便在 Visual Studio Ultimate 中進一步調查問題,並且從特定事件開始偵錯時移至部署的程式碼。

     檢視效能事件詳細資料

     了解程式呼叫 stack及執行時間,找到執行效能不佳的程式碼:

    從方法呼叫開始偵錯

     回到 Visual Studio 程式碼編輯器中,抓到就是這一行導致效能問題。

    從效能事件移至應用程式程式碼

     請參閱 使用 Visual Studio 和 Microsoft Monitoring Agent 診斷部署中的問題System Center 2012 R2 Operations Manage R2 的新功能 

  • 使用 Microsoft Monitoring 代理人,來記錄自SharePoint 2013部屬的應用程式的診斷事件。

    您可以將使用者設定檔事件、統一記錄系統 (ULS) 事件和 IntelliTrace 事件儲存到 IntelliTrace 記錄檔,在 Visual Studio Ultimate 中進一步調查問題,並且使用 IntelliTrace 從特定事件開始偵錯。

     IntelliTrace 記錄檔 - 檢視 Web 要求 + 事件

     請參閱 使用 Visual Studio 和 Microsoft Monitoring Agent 診斷部署中的問題

 

 

5. 單元測試的改進

 

單元測試是 Visual Studio 很基本的測試功能,但在 VS 2013 中也有許多加強,如下:

 

新功能和支援的區域

當您在 Visual Studio Ultimate 使用 CodeLens 事前顯示時,能在不離開編輯的狀態下找到單元測試和其狀態

用播放列表來建立並儲存測試設定 -

您可以建立和儲存您要以群組執行或檢視的測試清單。 當您選取某個播放清單時,清單中的測試顯示為測試總管。 您可以將在測試中加入一個以上的播放清單,當您選擇預設的 [所有測試] 播放清單時,就可以使用專案中的所有測試。 參閱建立自訂播放清單

增強型的篩選和分組的測試在測試總管中。

提供可讓您更輕鬆地在測試總管的新標準下組織和執行單元測試,請參閱 群組和篩選測試清單

 

 延伸閱讀:  Visual Studio 2013 在軟體測試上的強化

線上學習: 正確的團隊寫碼標準 - 如何兼顧程式碼品質及開發效率 (胡百敬)