2012-01-25 79 views
3

對於代碼分析,NDepend似乎是一個很好的工具,特別是對於依賴關係圖可視化,所以我們購買了一個副本。NDepend中解決方案範圍的命名空間依賴關係圖NDepend

但是,我最需要的一件事似乎是不可能的:我需要一個名稱空間依賴關係圖來覆蓋整個解決方案。我能得到的唯一東西就是裝配圖。

這就是爲什麼我需要它:

我們有依賴關係翻過層邊界必須始終指向界面組件建築規則。接口組件在組件名稱和名稱空間中都帶有後綴「接口」。

我們在

Company.Product.Layer.Component 

形式的命名空間。由於該層的信息是不是從組件的名稱可見,但是從命名空間,命名空間依賴圖將是這種分析的唯一有用的圖。

所以我的問題是:我如何驗證上述的架構規則?你知道如何真正得到依賴關係圖嗎?你知道另一種可能性來驗證規則嗎?

回答

2

要獲得在VS解決方案應用命名空間的圖表,只需要使用下面顯示的菜單......

Reset Graph to application namespaces only

...等瞧!

Graph of application namespaces assemblies

感謝Code Rule over LINQ Query (CQLinq)能力,下面CQLinq規則可能是一個良好的開端,以擦亮它來得到你所需要的確切規則:

warnif count > 0 

// Namespaces with suffix Interface 
let interfacesNamespaces = 
    Application.Namespaces.WithNameLike("Interface$").ToHashSet() 

// Match namespaces that are using something else than interfacesNamespaces 
from n in Application.Namespaces 
let nonInterfacesNamespacesUsed = n.NamespacesUsed.Except(interfacesNamespaces) 
where nonInterfacesNamespacesUsed.Count() > 0 
select new { n, nonInterfacesNamespacesUsed } 
+0

非常感謝你,我不知道「導出到圖表」功能。這就是訣竅!你提到的即將到來的功能肯定會是一個值得歡迎的改進。 – theDmi

相關問題