共用方式為


HOW TO:使用相依性圖形探索程式碼

在 Visual Studio Ultimate 中,使用相依性圖形有助於了解現有程式碼中的組織和關聯性。 下列圖形以節點表示結構,並以在兩個節點間顯示為箭號的連結表示關聯性。 若要產生圖形,請參閱 HOW TO:產生適用於 .NET 程式碼的相依性圖形

下列範例顯示圖形如何以節點和連結來表示結構和關聯性:

包含已分組之節點和連結的相依性圖形

圖形上的節點和連結

下列範例顯示圖形如何以群組來表示結構和內含項目關聯性:

包含已分組之節點的相依性圖形

圖形上的群組節點

警告

圖形只會顯示建置成功之程式碼的相依性。 如果因為某些元件導致發生組建錯誤,這些元件及其內容並不會顯示。 因此,在根據圖形進行架構決策前,請確定元件可實際建置且具有相依性。

本主題內容

  • 探索圖形上的相依性

  • 尋找具複雜度的區域

探索圖形上的相依性

圖形上的相依性以下列幾種連結來表示:

  • 個別連結表示兩個節點之間的單一相依性。

  • 彙總連結表示兩個群組之間方向相同的所有相依性。

跨群組連結只是跨不同群組之兩個節點間的連結。

注意事項注意事項

圖形預設只會在選取的節點間顯示跨群組連結。 若要隨時都顯示這些連結,請在圖形工具列上按一下 [變更連結在圖形上的呈現方式] 按鈕旁邊的下拉式清單,然後按一下 [顯示所有跨群組連結]。 如果沒有顯示圖形工具列,請在 [檢視] 功能表上,指向 [工具列],然後按一下 [有向圖形]。

請使用下列工作來探索您感興趣的相依性:

若要

請依照下列步驟:

查看連結所表示的相依性清單

  • 將指標移至連結上方,查看列出相依性的工具提示。

依名稱尋找節點

用來搜尋多層群組節點。

  • 按下 CTRL+F

尋找連結的來源或目標

如果連結太多,可以使用此方法輕鬆地查看特定連結的來源或目標。

  1. 在圖形工具列上,將圖形配置變更為樹狀配置或快速叢集配置。

    注意事項注意事項
    如果沒有顯示圖形工具列,請在 [檢視] 功能表上,指向 [工具列],然後按一下 [有向圖形]。

    如需詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件

  2. 將指標移至連結上方。

    Visual Studio 會在連結上方顯示兩個箭號按鈕。 Visual Studio 也會顯示工具提示,用來識別連結的來源及目標。

  3. 按一下指向您要遵循之方向的箭號按鈕。

    根據您選取的方向,來源或目標隨即顯示為已選取。

檢查跨不同群組中節點的相依性

  1. 展開要查看的群組,以便您查看其所有子系。

  2. 選取您要查看的所有節點,包括其子系。

    若要選取群組中的所有節點,請按住滑鼠左鍵不放,在該群組周圍繪製矩形。 若要選取圖形中的所有節點,請按下 CTRL+A

    圖形會在選取的節點之間顯示跨群組連結。

    注意事項注意事項
    若要隨時都顯示跨群組連結,請在圖形工具列上按一下 [變更連結在圖形上的呈現方式] 按鈕旁邊的下拉式清單,然後按一下 [顯示所有跨群組連結]。如果沒有顯示圖形工具列,請在 [檢視] 功能表上,指向 [工具列],然後按一下 [有向圖形]。

檢查彙總連結後面的相依性

注意事項注意事項
只有當連結兩端都有連接組件時,這麼做才有作用。如果沒有組件資訊,就無法建立圖形。
  1. 在圖形工具列上,將圖形配置變更為樹狀配置或快速叢集配置。

    注意事項注意事項
    如果沒有顯示圖形工具列,請在 [檢視] 功能表上,指向 [工具列],然後按一下 [有向圖形]。如需詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件
  2. 按兩下您要檢查的彙總連結。

    -或-

    1. 將指標移至連結上方。

      Visual Studio 會在連結上方顯示兩個箭號按鈕。

    2. 按一下兩個箭號按鈕之間的加號 (+)。

  3. 在 [產生相依性圖形] 對話方塊中,按一下您要加入圖形中的節點層級。

    例如,要檢查由組件層級直到方法層級的所有相依性,就按一下 [組件]、[命名空間]、[型別] 和 [方法]。 如果您只要查看組件和類別之間的相依性,則只需按一下 [組件] 和 [類別]。

    若要將方法的內容包含在圖形中,請使用 [架構總管] 來尋找這些項目,然後將這些項目加入至圖形。 如需詳細資訊,請參閱 HOW TO:使用架構總管尋找程式碼

  4. 確定已選取 [將內含項目顯示為群組],然後按一下 [確定]。

    Visual Studio 會產生並顯示含有您所選節點層級及其相依性的圖形。

  5. 在圖形上選取您要檢查的群組、以滑鼠右鍵按一下選取的群組、指向 [群組],然後按一下 [展開]。

    -或-

    以滑鼠右鍵按一下圖形、指向 [群組],然後按一下 [全部展開]。

    圖形隨即展開以顯示其子系。

  6. 選取您要查看的所有節點,包括其子系。

    若要選取群組中的所有節點,請按住滑鼠左鍵不放,在該群組周圍繪製矩形。 若要選取圖形中的所有節點,請按下 CTRL+A

    圖形會在選取的節點之間顯示跨群組連結。

尋找具複雜度的區域

使用相依性圖形可以找出您也許能夠改進的程式碼區域。 語式正確的相依性圖形將會顯示最少的相依性。 例如,您可以:

  • 尋找具有迴圈或循環相依性的程式碼。

    檢查這些區域看看您是否能加以簡化。 考量您是否能破除這些循環。

  • 尋找具有過多相依性的程式碼。

    檢查這些區域,了解其中是否執行太多功能,或判斷變更這些區域時所產生的影響。 為使程式碼更易於維護、變更、測試和重複使用,請考量您是否能重構這些區域,以便定義得更清楚,或是否能合併執行類似功能的程式碼。

  • 尋找沒有相依性的程式碼。

    檢查這些區域,確定是否為必要的區域,或是否要將此程式碼移除。

您可以對這些圖形執行特定的分析器,協助進行這些工作。 在套用這些分析器之後,它們就會持續執行。 如果您變更圖形,所套用的任何分析器都會自動重新處理更新的圖形。 若要停止執行分析器,請在 [圖例] 方塊中,以滑鼠右鍵按一下分析器,然後按一下 [刪除]。

注意事項注意事項

如果您的圖形很大,執行分析器可能會導致記憶體用完例外狀況。 如果發生這種情況,請編輯圖形以縮小其範圍或產生較小的圖形,然後再執行分析器。

若要尋找程式碼中頗具複雜度的區域

  1. 確定圖形配置已設定為樹狀配置或快速叢集配置。

    如需詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件

  2. 以滑鼠右鍵按一下圖形並指向 [分析器],然後按下列其中一項:

    分析器

    以識別情況如下的節點

    循環參考

    彼此之間具有循環相依性

    注意事項注意事項
    當您展開 [泛型] 群組時,圖形上不會顯示此群組內部的循環相依性。

    尋找集線器

    屬於前面 25% 最密集連接的節點

    若要選取這些節點並隱藏圖形中的所有其他節點

    1. 以滑鼠右鍵按一下圖形,然後按一下 [顯示進階選取範圍]。

    2. 在 [選取範圍] 方塊中展開 [屬性],然後展開 [集線器]。

    3. 按一下 [集線器] 底下的 [True]。

      如此隨即選取前面 25% 最密集連接的節點。

    4. 以滑鼠右鍵按一下圖形、指向 [選取範圍],然後按一下 [隱藏未選取項目]。

      圖形隨即隱藏未選取的節點,而分析器則將新節點定義為集線器。

    您也可將圖形配置切換為相依性矩陣檢視,以識別相依性密集的區域。 如需相依性矩陣檢視的詳細資訊,請參閱 HOW TO:瀏覽和巡覽圖形文件

    未參考的節點

    沒有來自任何其他節點的參考

    注意事項警告
    請先確認這其中每一種情況,才能斷定程式碼是否未使用。例如 XAML 相依性和執行階段相依性等特定相依性,就無法以靜態方式從程式碼中找出來。

請參閱

概念

HOW TO:產生適用於 .NET 程式碼的相依性圖形

其他資源

HOW TO:瀏覽和巡覽圖形文件

HOW TO:編輯和自訂圖形文件