我之前曾在博客中介紹過Visual Studio 2010中的體系結構工具。這些工具 為了解現有的應用程序、設計新功能以及驗證實現是否遵守體系結構規則和限制 ,提供了一種很好的方式。
最近,我們又為MSDN訂閱用戶發布了可視化和建模功能包,這個功能包為 Visual Studio 2010的體系結構工具添加了如下支持:
/C++代碼的可視化
網站可視化
改進的UML圖生成
從UML圖生成代碼
導入XMI 2.1
結構性驗證的擴展
開發人員常常面對的一項挑戰是試圖了解改變應用程序的一部分會如何影響 其他部分。這種信息對控制固有的修改代碼帶來的風險,是至關重要的。
C/C++和Web開發除了同樣的風險外,還有它們各自的一些額外的復雜性。 C/C++開發需要了解頭文件之間的依賴關系。而Web開發由於引入了如網頁和控件 等內容元素,使得其復雜性進一步增加了。
今天,我要更深入地介紹這個功能包中的本機代碼和網站可視化功能。
C/C++代碼的可視化
如果您有C/C++應用程序的源代碼,則可以使用生成依賴項關系圖(Generate Dependency Graph)菜單來可視化各個二進制文件之間存在的靜態的依賴關系。 下面,我已為照片浏覽器(Photo Viewer)應用程序創建了一個基本的DGML圖:
我可以展開這些節點,以深入了解產生這些依賴關系的調用。我還可以再展 開節點來查找PhotoBrowser應用程序中CWebImageManager類的構造函數和 WinHttp.dll中的WinHttpOpen函數之間的依賴關系。
另一個可視化多個二進制文件之間的靜態依賴關系的好方法是通過簡單的拖 放,比如說從Windows資源管理器窗口到空白的DGML圖。
該功能包還支持可視化頭文件之間存在的依賴關系。您可以從生成依賴關系 圖菜單中選擇“以頭文件(By Include File)”,來查看您的解決方案中所有 源文件和頭文件之間的依賴關系,或者您可以在源代碼編輯器中調用“生成頭文 件關系圖(Generate Graph of Include Files)”功能,以可視化某一特定文 件的依賴關系。
在下圖中,您可以看到PhotoViewerView.cpp文件的直接依賴關系。您可以使 用鄰居(Neighborhood)浏覽模式,以深入了解所有的依賴關系。
您還可以通過體系結構資源管理器(Architecture Explorer)浏覽您的 C/C++項目,類似於您對托管的項目做的那樣,或者通過層依賴關系圖來實現項 目級依賴關系驗證。
網站可視化
如果您在使用Visual Studio Web應用程序項目、網站或ASP.NET MVC項目, 那麼此功能包中為您的應用程序引入了豐富的結構和依賴關系可視化功能,可以 大大提高您回答這個問題的能力:“當我修改這部分代碼時,我的應用程序中哪 些部分將會受到影響?”
使用生成依賴關系圖菜單,來可視化您的網站結構和依賴關系:
這將生成一個類似如下的DGML文件:
由此產生的圖包含代表您的ASP.NET Web應用程序各種結構元素的節點,即
ASP.NET網頁(.aspx文件)
自定義控件(.ascx文件)
母版頁(.master文件)
網站文件夾
應用程序文件
代碼背後的類型
服務器控件
如果您雙擊這些節點中的任意一個,將直接跳轉到源代碼。這可以是一種很 好的探索您的網站、並為其編寫目錄的方法。
ASP.NET MVC支持
當您為一個ASP.NET MVC Web應用程序生成了依賴關系圖時,您還獲得了如下 MVC的具體數據:
查看鏈接的控制器(使用默認公約)
模型鏈接視圖
代表區域和查看文件夾的節點組
您的應用程序的其余部分
探索過了網站的結構和依賴關系後,您還可以通過使用獲取代碼依賴關系 (Get Code Dependencies)功能,可視化您的應用程序的其余部分的依賴關系 。
這裡所產生的圖形是經過過濾的,以顯示從Checkout.aspx網頁到Order業務 邏輯類和Payment數據訪問類的依賴關系鏈。
試試看
如果您是MSDN訂閱用戶,下載Visual Studio 2010的可視化和建模功能包嘗 試一下吧。