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
2.開始Architecture Explorer
巡覽Architecture Explorer的方式有三大類
- Visual Studio 目前開始的方案
- File System 從Exe或Dll
- Saved DGQL Queries 有預設的查尋,或之前所儲存的查尋
Visual Studio下又有二個選項
- Class View 從Namespace方式巡覽
- Solution View 從Project與File方式巡覽
為什麼這樣分呢?因為不同的Project可以有同樣的Namespace,與同一個File下可以有多個Type,不過不管從那一種方式都可以一直Drill Down下去。
左邊的按鍵功能為
- 產生新的Dependency Graph,將選擇的Column加入其中
- 使用現在的Dependency Graph,將選擇的Column加入其中
- 產生新的Dependency Graph檔案,將選擇的Column加入其中
- 清除所有Column
- 將目前的查詢結果存成檔案。
3.複選
每一個Column都可以被複選,而下方也會有顯示目前的選取量。
4.巡覽選項
點擊垂直的按鍵可以開始巡覽選項。
巡覽選項分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巡覽選項部分擷圖
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 所有虛擬成員
按下左邊第五個存儲鈕 ,就可以將查詢儲存起來,開啟儲存的查詢,預設只會從最後一個結果開始。
如從 Namespace > Class > Method > Outbound 儲存查詢,打開查詢只能看到Outbound。
如果要看到所有巡覽結果,請打開巡覽選項,選擇Commands>Expanded Execute
6.產生Dependency Graph
如果Architecture Explorer這種由左到右的方式,還看不過癮,可以產生Dependency Graph由任一個角度來分析Code。
從Architecture Explorer產生Dependency Graph只有一種,就是按下左邊第一個按鈕,以下是選擇所有Namespace,所產生的Dependency Graph顯示所有Namespace相依性。
現在的Dependency Graph加入Column有二種
方塊中代表一次拖了幾個Column