Обнаружение зависимостей между пространствами имен в.NET

$('.myBtn').click(function(){
    $('.mydiv').css('height','100px');
});
.mydiv{
height:50px;
width:50px;
background-color:red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='mydiv'></div>
<br>
<button class='myBtn'>Click to change height</button>

7
задан Mark Heath 20 November 2008 в 11:04
поделиться

5 ответов

До сих пор единственный инструмент, с которым я столкнулся, который похож на него, мог бы сделать, это - NDepend, но я задаюсь вопросом, существует ли простое решение.

Я - один из разработчика инструмента NDepend. Вы могли сообщить нам то, что Вы находите сложными в NDepend и как Вы воображаете простое решение для Вас?

NDepend идет с 3 различными способами сделать то, что Вы хотите: Матрица Зависимости, Граф зависимостей и также можно записать некоторое Правило Кода по Запросу LINQ (CQLinq) и правила обнаружить цикл между пространствами имен или осуществить некоторые особые зависимости.

Например, скажите, что у меня есть MyApp. Пространство имен BusinessRules и не хочет это к доступу непосредственно ничто в MyApp. GUI, но оба пространства имен находится в том же блоке.

Для этого может быть записано следующее правило CQLinq, это могло быть немного более просто, чем это?:

warnif count > 0
let businessRules = Application.Namespaces.WithNameLike("^MyApp.BusinessRules")
let gui = Application.Namespaces.WithNameLike("^MyApp.GUI")

from n in businessRules.UsingAny(gui)
let guidNamespacesUsed = n.NamespacesUsed.Intersect(gui)
select new { n, guidNamespacesUsed }
2
ответ дан 7 December 2019 в 05:32
поделиться

Я подозреваемый NDepend собираюсь быть самым простым способом пойти, быть честным.

Однако, если Вы действительно не хотите биты одного блока от обращения друг до друга, необходимо почти наверняка разделить блок на более логические единицы.

3
ответ дан 7 December 2019 в 05:32
поделиться

Можно проанализировать зависимости от пространства имен с плагином DSM для Отражателя.NET (я - его разработчик),

После того как блоки проанализированы, можно сохранить проект в файл. Этим файлом является просто XML с простой структурой, таким образом, можно передать его сценарию для пользовательского анализа

[Обновление]: Этот плагин теперь доступен в форме Дополнения Visual Studio

2
ответ дан 7 December 2019 в 05:32
поделиться

Отражатель делает это.

Щелкните правой кнопкой по пространству имен, нажмите Analyze, альт!:)

0
ответ дан 7 December 2019 в 05:32
поделиться

Вы можете попробовать RC-релиз Visual Studio 2010 Ultimate для создания графиков зависимостей для кода .NET. Вы можете сгенерировать график всех ваших сборок, пространств имен, классов или некоторой их комбинации, или вы можете использовать Architecture Explorer для выбора определенных артефактов и отношений, которые вы хотите визуализировать.

Вы также можете создать диаграммы слоев из графов зависимостей или из существующих артефактов, нарисовать допустимые зависимости, а затем включить проверку слоев как часть процесса MSBuild, чтобы убедиться, что недопустимые зависимости не были введены:

Как: Генерировать графические документы из кода: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

Вы можете использовать Visual Studio Ultimate для исследования взаимосвязей и организации в существующем коде путем генерируя документы направленных графов. Эти графы представляют элементы кода и их взаимосвязи в виде набора узлов, которые соединены связями, или ребрами. Вы можете использовать эти графы, чтобы помочь вам визуализировать, исследовать и анализировать код.

Как: Поиск кода с помощью Architecture Explorer: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

Вы можете выбрать вертикальные секции или "срезы" кода, которые вы хотите визуализировать с помощью Architecture Explorer. Architecture Explorer. Вы можете исследовать исходный код в решении Visual Studio или скомпилированный управляемый код в файлах .dll или .exe. Вы можете использовать Architecture Explorer для просмотра других доменов, установив дополнительные провайдеры. Когда вы найдете код, который вы хотите визуализировать, вы можете создать графики для изучения взаимосвязей в этом коде.

Как: Создание диаграмм слоев из артефактов: http://msdn.microsoft.com/en-us/library/dd465141%28VS.100%29.aspx

... используйте диаграммы уровней для визуализации высокоуровневой архитектуры вашей системы и проверки того, что что код соответствует этой архитектуре. Чтобы выполнить эту задачу, организуйте и ассоциируйте артефакты из решения Visual Studio в логические, абстрактные группы, или слои. Эти слои описывают основные задачи, которые выполняют эти артефакты, или основные компоненты вашей системы. Стрелки между слоями представляют взаимозависимости, которые существуют или должны существовать между этими артефактами. Чтобы наложить архитектурные ограничения на код, опишите предполагаемые зависимости на диаграмме, а затем проверьте код на соответствие диаграмме. Используя диаграммы слоев таким образом вы можете облегчить понимание, повторное использование и сопровождение кода.

Layer Diagram http://i.msdn.microsoft.com/Dd465141.UML_LayerRefReading(en-us,VS.100).png

How to: Проверять код по диаграммам слоев: http://msdn.microsoft.com/en-us/library/dd409395%28VS.100%29.aspx

Проверка кода по диаграмме слоев помогает вам обеспечить архитектурные ограничения на код. по мере его развития. При выполнении этой задачи зависимости в коде сравниваются с зависимостями на диаграмме.

RC download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.

Visual Studio 2010 Architectural Discovery & Modeling Tools форум: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

1
ответ дан 7 December 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: