2014-09-26 6 views
1

SonarQube에는 Java 전용 아키텍처 규칙 엔진이 있습니다. C# .net 프로젝트에 비슷한 참조 아키텍처 규칙을 구현하는 방법을 찾고 있습니다. 예를 들어C# 용 SonarQube 아키텍처 규칙 엔진

: *.B.* 클래스

  • 에서 *.A.*

    • 금지를 액세스 *.C.**.A.* 클래스에서 적어도 하나의 액세스 시행.

    이것을 구현하는 가장 좋은 방법은 무엇입니까? FXCop에서 이러한 규칙을 만들 수 있습니까?

  • 답변

    0

    를 사용합니다.

    그러나 실제로는 사용자 지정 FxCop 규칙 (기존 C# SonarQube 플러그인에서 지원됨)을 개발하거나 Nitriq과 같이 지원되지 않는 도구에서 문제를 가져 오는 새로운 SonarQube 플러그인을 개발할 수 있습니다. 제안했다.

    은 R # 플러그인을보고 당신이에 어떤 도움이 필요하면 SonarQube 개발 메일 링리스트에 요청을 보내 주시기 바랍니다 : https://github.com/SonarCommunity/sonar-resharper

    0

    당신은 Nitriq와 규칙을 만들 수 있습니다

    가 .A 에 대한 액세스를 금지하고 있습니다..B. 클래스

    var results = 
    from t in Types 
    where t.Name.Equals("A") && t.TypesUsing.Any("B") 
    select new { t.TypeId, t.Name, t.FullName }; 
    Warn(results, 0); 
    

    .A 적어도 하나에 액세스를 적용..C. 클래스.

    var results = 
    from t in Types 
    where t.Name.Equals("A") && !t.TypesUsing.Any("C") 
    select new { t.TypeId, t.Name, t.FullName }; 
    Warn(results, 0); 
    

    또 다른 방법은 우리가 확실히 C# SonarQube 플러그인과 함께 상자에서 이러한 규칙을 제공하려면, 장기적으로 Roslyn