黃偉榮的學習筆記

軟體的世界變化萬千,小小的我只能在這洪流奮發向上以求立足。
随笔 - 100, 文章 - 0, 评论 - 212, 阅读 - 17万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Visual Studio 2010分析工具之Architecture Explorer

Posted on   黃偉榮  阅读(448)  评论(0编辑  收藏  举报

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:使用架構總管尋找程式碼

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示