Как игнорировать сборки .NET в NDepend?

ИСТОРИЯ

Со временем я все больше и больше обращаюсь к NDepend, чтобы лучше понять дизайн / реализацию унаследованных приложений.

ВОПРОС

Вместо добавления JustMyCode в запросы CQL, есть ли способ навсегда настроить NDepend (на уровне проекта), чтобы просто игнорировать .NET Framework? Я могу ошибаться, но я почти уверен, что эта функция поддерживается NDepend v3.

ПРИМЕР

  1. Откройте свое решение в Visual Studio и нажмите Перестроить.
  2. создать проект NDepend на основе файла вашего решения (* .sln)
  3. запустите Анализ
  4. открыть интерактивный (не HTML) График зависимостей
  5. щелкните стрелку Сброс в верхнем левом углу (подсказка: значок утилизации)
  6. нажмите сбросить только до сборок приложения
  7. observe
    • you will no longer see references to the .Net Framework (note: the blue writing is gone)
  8. щелкните правой кнопкой мыши одну из ваших сборок: Выбрать типы
  9. щелкните , который я использую напрямую
  10. the following CQL will appears in the queries window:
    • from t in Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }
  11. observe
    • more than likely you will now see .NET Framework references (note: the blue writing is back) in the query results window
    • добавьте JustMyCode в запрос CQL, и ссылки .NET снова исчезнут: from t in JustMyCode.Types where t.IsUsedBy ("MyCompany.MyProduct.MyAssemblyName") select new { t, t.NbILInstructions }

КОНТЕКСТ

  • Приложение: NDepend версия 4.1.0.6871
  • Представление: График зависимостей

person Pressacco    schedule 17.12.2013    source источник


Ответы (1)


Есть только два способа игнорировать сборки .NET:

  • Использование notmycode / JustMyCode, как вы написали
  • Удалите сборку с панели Свойства проекта> Код для анализа.
person Patrick from NDepend team    schedule 19.12.2013
comment
Спасибо за ваш отзыв! Похоже, вы не можете удалить сборки из списка Code To Analyze = ›Third Party Assemblies в NDepend v4 (который включает ссылки .NET, такие как System.Data). Это правильно? - person Pressacco; 19.12.2013
comment
Упс, я не понял, что вас беспокоят только сторонние сборки. Действительно, сборки сторонних производителей автоматически выводятся из сборок приложения. В v5 мы добавили возможность получать только график или матрицу сборок приложения (или только пространства имен приложений). В версии 4 это возможно, но для этого необходимо написать запрос кода (исключив сборки ThirdParty), а затем экспортировать результат в график или матрицу. - person Patrick from NDepend team; 19.12.2013
comment
Чтобы уточнить: меня только беспокоят сборки приложений. Вот почему я пытаюсь найти способ навсегда игнорировать Microsoft .NET Framework. Теперь я вижу, что мне нужно либо использовать JustMyCode в CQL, либо перейти на NDepend 5. Спасибо за вашу помощь, Патрик. - person Pressacco; 19.12.2013
comment
Извините, но этот ответ ужасен для новичка в NDepend. Куда вы поместите этот код notmycode / JustMyCode? В каком-то правиле? В общем правиле? Вы не можете удалить сборку, как сказал @Pressacco в NDepend 6. Я просто хочу проанализировать МОЙ код, а не все сторонние сборки. - person Jack; 19.10.2015
comment
Думаю, вы перешли по ссылке notmycode / JustMyCode ndepend.com/docs/cqlinq-syntax# NotMyCode, какой там пункт непонятен? все элементы кода, соответствующие запросу кода с префиксом notmycode, будут исключены из JustMyCode (набранного как ICodeBaseView). следовательно, вы можете легко удалить некоторые сборки с помощью запросов notmycode, эти сборки больше не будут перечисляться в базовом представлении кода JustMyCode. Это понятнее? если нет, задавайте конкретные вопросы пожалуйста - person Patrick from NDepend team; 22.10.2015