Visual Studio 2010分析工具之Architecture Explorer

Architecture Explorer(架構總管)是Visual Studio 2010新增的Code分析工具,提供多種角度巡覽Code或產生Dependency Graph(相依性圖型)檢視大到Assembly小到Method的各種關係,可以快速了解整個系統面,也可以更方便的改善與修改Code,本篇說明學習如何使用Architecture Explorer來Drill Down現有程式。

Architecture Explorer(架構總管)是Visual Studio 2010新增的Code分析工具,提供多種角度巡覽Code或產生Dependency Graph(相依性圖型)檢視大到Assembly小到Method的各種關係,可以快速了解整個系統面,也可以更方便的改善與修改Code,本篇說明學習如何使用Architecture Explorer來Drill Down現有程式。

 

本篇使用Tailspin Travel做為範例程式,可至Codeplex下載

 

1.開啟Architecture Explorer

開啟Architecture Explorer的方式有三個

從Menu

  • View > Architecture Explorer
  • Architecture > Window > Architecture Explorer

從快速鍵

  • Ctrl+\, Ctrl+R

image

 

2.開始Architecture Explorer

巡覽Architecture Explorer的方式有三大類

  1. Visual Studio 目前開始的方案
  2. File System 從Exe或Dll
  3. Saved DGQL Queries 有預設的查尋,或之前所儲存的查尋

Visual Studio下又有二個選項

  1. Class View 從Namespace方式巡覽
  2. Solution View 從Project與File方式巡覽

為什麼這樣分呢?因為不同的Project可以有同樣的Namespace,與同一個File下可以有多個Type,不過不管從那一種方式都可以一直Drill Down下去。

image

左邊的按鍵功能為

  • image 產生新的Dependency Graph,將選擇的Column加入其中
  • image 使用現在的Dependency Graph,將選擇的Column加入其中
  • image 產生新的Dependency Graph檔案,將選擇的Column加入其中
  • image 清除所有Column
  • image 將目前的查詢結果存成檔案。

 

3.複選

每一個Column都可以被複選,而下方也會有顯示目前的選取量。

image

 

4.巡覽選項

點擊垂直的按鍵可以開始巡覽選項。

image

巡覽選項分6大類

  • Node
  • Outbound 對外巡覽
  • InBound 對內巡覽
  • Analysis
  • Commands
  • Grouping

不同類型如Namespace、Class、Method的巡覽選項略有不同,如

Namespace的是

  • Classes
  • Delegates
  • Enums
  • Interfaces
  • Members
  • Modules
  • Structs..等等

Class的是

  • Classes
  • Fields
  • Generic Arguments
  • Generic Parameters
  • Members
  • Properties
  • Types..等等

Method巡覽選項部分擷圖

image 

 

5.讀取與存儲DGQL

能讀取的DGQL只能存放在三個地方

  • 安裝路徑下,C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Architecture Tools\Directed Graph Queries\
  • 我的文件下,路徑為:<My Documents>\Visual Studio 2010\ArchitectureExplorer\Queries\
  • 方案中,連結也可以,只要有加入方案就找到的

預設有6個存儲的查詢

  • All Assembly References 方案參考的所有組件
  • All Output Assemblies 在方案中所有輸出組件
  • All Project References 方案中專案之間的所有參考
  • All Projects 方案中所有專案
  • Constructors 所有建構函式方法
  • Inheritance Graph 有繼承與實作的所有型別
  • Public Classes 所有公用類別
  • Virtual Members 所有虛擬成員

按下左邊第五個存儲鈕image ,就可以將查詢儲存起來,開啟儲存的查詢,預設只會從最後一個結果開始

如從 Namespace > Class > Method > Outbound 儲存查詢,打開查詢只能看到Outbound。

如果要看到所有巡覽結果,請打開巡覽選項,選擇Commands>Expanded Execute

image

 

6.產生Dependency Graph

如果Architecture Explorer這種由左到右的方式,還看不過癮,可以產生Dependency Graph由任一個角度來分析Code。

從Architecture Explorer產生Dependency Graph只有一種,就是按下左邊第一個按鈕image,以下是選擇所有Namespace,所產生的Dependency Graph顯示所有Namespace相依性。

image

 

 

 

 

 

 

 

 

 

 

現在的Dependency Graph加入Column有二種

  • 按下左邊第二個按鈕image
  • 選取後拖曳到文件中

方塊中代表一次拖了幾個Column

image

 

參考資料

HOW TO:使用架構總管尋找程式碼