2012-11-15 122 views
2

我有一個擁有相當大(> 150個解決方案)代碼庫的客戶端。他們擁有開發人員可以使用的已批准第三方程序集列表,他們希望使用Sonar來幫助識別使用不在批准列表中的程序集的項目。使用Sonar監控第三方裝配使用情況

一個簡單的例子:

  • 我的解決方案引用foo.dll
  • Foo.dll不認可的第三方組件
  • 我的解決方案的使用foo.dll的報告爲名單上當我運行聲納分析時違反規則

這似乎是一個相當簡單的要求,但我在確定如何最好地在Sonar中實施它時遇到了一些困難。

回答

0

我沒有使用聲納的經驗,你沒有指定你的代碼庫是什麼語言,但一個非常簡單和基本的解決方案可能是解析項目文件(通常是XML)並驗證包含的引用。

+0

感謝您的評論的代碼庫是在C#中,所以可能的工具將聲納自己的基於XPath的工具,fxcop和憲兵。 – kiprainey

+0

FxCop和憲兵基本上做同樣的事情,但有一些不同的規則。我不相信有一條規則可以支持你所需要的規則,但是它們都提供了運行你自己的自定義規則的功能。然而,如果聲吶支持某種基於xpath的分析,那麼這是我親自採取的嘗試儘可能簡化過程的方向。 – Mightymuke

1

使用工具NDepend它是即時的(免責聲明:我是NDepend的開發人員之一)。你只需要編寫的代碼規則:

//<Name>Forbidden third-party assemblies</Name> 
warnif count > 0 
from a in ThirdParty.Assemblies.WithNameNotIn(
      "Foo1", "Foo2", "Foo3") 
select a 

等瞧:

NDepend code rule

+0

不錯!可惜它花費如此之多: – Mightymuke

+0

我是NDepend的忠實擁躉 - 我有一個我一直使用的個人許可證,不幸的是,這不是這個客戶的選擇。 – kiprainey