Dependency Graph(相依性圖形)是Visual Studio 2010新增的Code分析工具,大到Assembly小到Method的各種相依關係,從一個Assembly角度看,誰呼叫了我,我呼叫了誰,除了自動化產生所有方案中的關係外,可以從Architecture Explorer(架構總管)中產生部分自己想看的關連。

 

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

 

1.產生Dependency Graph

產生Dependency Graph有3種方式

  • 從Dependency Graph產生器
  • 從Architecture Explorer產生
  • 空白的Dependency Graph

 

2.Dependency Graph產生器

從Menu > Architecture > Generate Dependency Graph下有四個方式產生Dependency Graph

  • By Assembly -- 將方案中的每一個Assembly(通常一個Project等於一個Assembly)組群,加入圖形
  • By Namespace -- 依Namespace組群,將方案中的每一個元素加入圖形
  • By Class -- 打散組群,將方案中的每一個Class加入圖形
  • Custom -- 自訂加入方式

Visual Studio 2010分析工具之Dependency Graph

上圖為By Assembly方式產生之圖形

 

2.圖形

Visual Studio 2010分析工具之Dependency Graph

每個圖形

    1. 內有幾個子元素,像圖中就有9個子元素
    2. 可以展開、縮小子圖形
    3. 圖形的Icon,這可以從Legend中修改

 

產生後都會.NetFramework中的Type也會一併產生,通常用不到可以刪除。

Visual Studio 2010分析工具之Dependency Graph

 

在連條線上停留幾秒

Visual Studio 2010分析工具之Dependency Graph

會出現如上圖的選項,上下按鈕主要是線多線太長時可以迅速移動二個圖形,而+按鈕為依這二圖形的關係來產生新的Dependency Graph

 

如下圖只要看這二個圖形的關連,按下 + 按妞

Visual Studio 2010分析工具之Dependency Graph

 

會顯示自訂圖形產生視窗,選擇產生方式,如此例,會產生Type與Mehod並以Type群組

Visual Studio 2010分析工具之Dependency Graph

 

產生結果,只會顯示二個Type有關連的Method

Visual Studio 2010分析工具之Dependency Graph

 

還有群組的子圖形關連,預設必需要選取後才會顯示

Visual Studio 2010分析工具之Dependency Graph

可以從Directed Graph Toolbar修改顯示方式

Visual Studio 2010分析工具之Dependency Graph

 

3.圖型的排列

Directed Graph Toolbar中有下列方列方式

Visual Studio 2010分析工具之Dependency Graph

前五個只是方向的不同,而Visual Studio 2010分析工具之Dependency Graph 是改成矩陣的方式檢示

Visual Studio 2010分析工具之Dependency Graph

 

4.從Architecture Explorer產生

可參考筆者的那一篇文章Visual Studio 2010分析工具之 Architecture Explorer

 

5.新增空白Dependency Graph

新增空白Dependency Graph至少有二種

  • 從Menu或Solution Explorer中Add > New Item,選擇Directed Graph Document
  • 從Menu > Architecture > New Diagram ,選擇Directed Graph Document,但只肯加入Modeling專案中,沒有Modeling專案會自動新增

Visual Studio 2010分析工具之Dependency Graph

Note:空白的Dependency Graph與產生的Dependency Graph功能上都是一樣的,只是空白的可以依自己的需求增加,不會像產生的太多圖形可以是自己不需要的。

 

6.加入方案外的EXE與DLL

目前發現只能從檔案總管中拖曳進來。

 

7.Legend管理

Legend的項目是可以自訂的,相要顯示什麼可以自己訂,但不可重覆,Node Category只會顯示目前有的圖形類型

Visual Studio 2010分析工具之Dependency Graph

 

圖形的樣式也可以自訂

  • 背景顏色
  • 邊框顏色
  • 文梨顏色
  • Icons

Legend中修改會一併修改附合的圖形,如下圖將Class的背景顏色改成深黃色,所有的Class類型的圖形都會改成深黃色

Visual Studio 2010分析工具之Dependency Graph

 

如果想讓某幾個圖形特別不同,可以加入Category

使用預設的

Visual Studio 2010分析工具之Dependency Graph

或從屬性中增加

Visual Studio 2010分析工具之Dependency Graph

 

8.Group管理

從Architecture Explorer拖曳的圖形,是有不會以Group方式顯示

Visual Studio 2010分析工具之Dependency Graph

但可以將需要群組的圖形選取,右鍵>Group> Show As Group,就可以將圖形依關連群組。

Visual Studio 2010分析工具之Dependency Graph

Visual Studio 2010分析工具之Dependency Graph 

Note: 想要解開群組可以使用Show As Link,使用Remove Group或Remove From Parent會把關連或父圖形刪除,而Show All As Links/Groups就是一次操作所有圖形

 

也可以自訂群組 右鍵>Group>Add Parent Group,而Group也可以有Legend(但只有一個)。

Visual Studio 2010分析工具之Dependency Graph

9.輸出

按右鍵有二種輸出方式

  • Save As XPS
  • Copy Image

這二者的輸出都只是圖檔,只是一個要開另一個軟體存而以。參考資料

 

相关文章: