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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述