2014-09-26 3 views
1

SonarQube имеет только механизм управления архитектурой Java. Я ищу способ реализовать аналогичные правила ссылочной архитектуры для проекта C# .net.Модуль управления архитектурой SonarQube для C#

Например:

  • запретить доступ к *.A.* из классов *.B.*
  • Enforce по меньшей мере один доступ к *.A.* из *.C.* классов.

Что было бы лучшим способом реализовать это? Можно ли создать эти правила в FXCop?

ответ

0

В долгосрочной перспективе, мы определенно хотим, чтобы обеспечить такое правило из коробки с плагином C# SonarQube.

Однако, тем не менее, вы могли бы либо разработать свое собственное правило FxCop (которое поддерживается существующим плагином C# SonarQube), либо разработать новый плагин SonarQube для импорта проблем из неподдерживаемого инструмента, такого как Nitriq as предложил.

Вы можете посмотреть на 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); 

Другой подход заключается в использовании Roslyn

Смежные вопросы