Просмотр типов и связей в конструкторе классов
Область применения:
Visual Studio Visual Studio для Mac
Visual Studio Code ![]()
С помощью конструктора классов можно управлять схемами классов, выполнив следующие действия:
- Просмотр существующих типов и его членов
- Поиск связи наследования между базовым типом и производными типами
- Изменение способа, как схема классов представляет связь между двумя типами
Просмотр существующих типов в конструкторе классов
Для просмотра существующего типа и его членов, добавьте его фигуру на диаграмму классов.
Можно просмотреть локальные и ссылочные типы. Локальный тип существует в текущем открытом проекте и доступен для чтения и записи. Ссылочный тип существует в другом проекте или в сборке, на которую имеется ссылка, и доступен только для чтения.
Сведения о разработке новых типов на схемах классов см. в статье «Создание типов с помощью конструктора классов».
Отображение типов проекта в диаграмме классов
- В обозревателе решений откройте в проекте существующий файл диаграммы классов (CD). Если диаграммы классов не существует, добавьте ее в проект. См. раздел Практическое руководство. Добавление схем классов в проекты.
- В обозревателе решений из проекта перетащите файл с исходным кодом в диаграмму классов.
- Из проекта приложения, содержащего данную диаграмму
- Из общего проекта, импортированного проектом приложения
- Из проекта, на который задана ссылка
- Из сборки
Фигуры, представляющие типы, которые определены в исходном файле кода, появятся на схеме на том же месте, в которое был перетащен файл.
Кроме того, чтобы просмотреть типы в проекте, можно перетащить один или более типов из узла проекта в представлении классов на диаграмму классов.
Если представление классов не открыто, откройте его из меню Вид.
Чтобы отобразить типы на диаграмме в месте по умолчанию, выберите один или несколько типов в представлении классов, щелкните правой кнопкой мыши выбранные типы и выберите пункт Просмотр схемы классов.
Если закрытая схема классов содержит тип, который уже существует в проекте, схема классов откроет фигуру типа. Однако если диаграмма классов, содержащая уже существующий тип в проекте, отсутствует, конструктор классов создаст новую диаграмму классов в проекте и откроет ее для отображения типа.
Если тип на схеме классов открывается впервые, по умолчанию его фигура отображается свернутой. Для просмотра содержимого фигуры ее необходимо развернуть.
Отображение содержимого проекта на схеме классов
В обозревателе решений или в представлении классов щелкните проект правой кнопкой мыши и выберите Просмотр, а затем — Просмотр схемы классов. Будет создана автоматически заполняемая схема классов.
Просмотр наследования между типами в конструкторе классов
Отношение наследования (если оно существует) между базовым типом и его производными типами можно найти на диаграмме классов в конструкторе классов. Сведения о создании связи наследования, если нет между двумя типами, см. раздел «Создание наследования между типами».
Поиск базового типа
- На диаграмме классов щелкните тип, базовый класс или интерфейс которого следует показать.
- В меню Диаграмма классов выберите пункт Показать базовый класс или Показать базовые интерфейсы. Базовый класс или интерфейс типа появится на диаграмме. Теперь будут показаны любые скрытые линии наследования между двумя фигурами.
Вы также можете щелкнуть правой кнопкой тип, базовый тип которого необходимо показать, и выбрать команду Показать базовый класс или Показать базовые интерфейсы.
Поиск производных типов
- На диаграмме классов щелкните тип, производные классы или интерфейсы которого следует показать.
- В меню Диаграмма классов выберите пункт Показать производные классы или Показать производные интерфейсы. На диаграмме появятся производные классы или интерфейсы типа. Теперь будут показаны любые скрытые линии наследования между фигурами.
Вы также можете щелкнуть правой кнопкой тип, производные типы которого необходимо показать, и выбрать команду Показать производные классы или Показать производные интерфейсы.
Переключение между представлением в виде членов и представлением в виде ассоциации в конструкторе классов
В конструкторе классов можно изменить способ представления на диаграмме классов отношения связи между двумя типами из записи члена с записью ассоциации, и наоборот. Члены отображаются в виде линий связи и часто дают более наглядное представление взаимосвязи типов.
Отношения ассоциаций могут быть представлены в виде свойства или поля члена. Чтобы изменить запись члена на запись ассоциации, один тип должен иметь член другого типа. Чтобы изменить запись ассоциации на запись члена, два типа должны быть соединены линией связи. Дополнительные сведения см. в разделе «Практическое руководство. Создание связей между типами». Если проект содержит несколько схем классов, изменения, внесенные в способ отображения отношений ассоциации, затронут только данную схему. Чтобы изменить способ отображения отношений ассоциации на другой схеме, откройте или выведите эту схему и выполните следующие действия.
Чтобы изменить запись члена на запись ассоциации
- В обозревателе решений в узле проекта откройте файл схемы классов (CD-файл).
- В фигуре типа на схеме классов щелкните правой кнопкой мыши свойство члена или поле, представляющее связь, и выберите Показывать как ассоциацию.
Совет Если свойства или поля не отображаются в фигуре типа, возможно, секции в фигуре свернуты. Чтобы развернуть фигуру типа, дважды щелкните название секции либо щелкните правой кнопкой мыши фигуру типа и выберите Развернуть.
Чтобы изменить запись ассоциации на запись члена
На схеме классов щелкните правой кнопкой мыши линию связи и выберите Показывать как свойство или Показывать как поле. Линия связи исчезнет, и свойство отобразится в соответствующей секции в фигуре типа на схеме.
Связанный контент
Как создать диаграмму классов в VS2019?
Я не понимаю как сделать диаграмму классов у меня просто нет такой возможности добавить ее как это сделать?
Отслеживать
задан 26 ноя 2022 в 9:11
user530727 user530727
А у тебя установлен модуль для этого?
26 ноя 2022 в 9:13
А какой нужен модуль?
– user530727
26 ноя 2022 в 9:15
«Конструктор классов» в Visual Studio Installer посмотри
26 ноя 2022 в 9:19
Не нужен никакой модуль, в контекстном меню для интересующего файла есть пункт View class diagram.
26 ноя 2022 в 10:26
0
Сортировка: Сброс на вариант по умолчанию
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как в Visual studio 2019 установить поддержку UML диаграмм?
Visual Studio 2019 Professional 16.6.3
В шаблонах проектов не могу найти Modeling Projects (средство построения диаграмм).
Что надо установить или изменить, чтобы получить данное средство?
Надо вот это

- Вопрос задан более трёх лет назад
- 3992 просмотра
Комментировать
Решения вопроса 1

Стараюсь писать код, понятный человеку.
Возможно это «Architectural Layer Diagrams», тогда оно доступно только в «Enterprise» версии.
https://visualstudio.microsoft.com/vs/compare/
Ответ написан более трёх лет назад
Нравится 1 6 комментариев

Евгений Иванов @logpol32 Автор вопроса
Переустановил Enterprise. Вроде всё тоже самое.
Не могу там найти Modeling Projects.
При установке внимательно выбирал компоненты на вкладке Отдельные компоненты -> Средства для работы с кодом.
(Конструктор классов установлен)


Евгений Иванов @logpol32 Автор вопроса
Johnny Gat, Скриншот с версии Ultimate 2012 Update 2.
В Visual Studio 2019 нет указанных на скриншоте элементов, но есть возможность создавать ClassDiagramm.cd которые очень похожи.


Евгений Иванов, значит UML теперь действительно нет. А диаграмма классов это не отдельный проект как вы написали в вашем вопросе. Тогда в чем ваш вопрос?

Евгений Иванов @logpol32 Автор вопроса
Johnny Gat,
В видеоуроке используют VS 2012 и говорят — изучаем uml диаграммы. Создают Modeling Project -> UML Class diagramm. Картинки я привел.
В VS 2019 этого нет.
Но в VS 2019 я нашел диаграмму классов. По функционалу она очень похожа на uml диаграмму VS 2019.
Это одно и тоже?
Просто для дальнейшего изучения мне нужен этот инструмент. А менять VS 2019 на VS 2012 наверно плохая идея. Продукт скорее всего устарел или будут проблемы с другими расширениями.

Евгений Иванов, UML-диаграмм много, диаграмма классов это один из видов UML-диаграмм. Если вам достаточно только диаграммы классов то подойдет встроенный функционал VS2019. Если же вам нужно больше видов UML-диаграмм, то придется использовать отдельное ПО.
Диаграммы классов в Visual Studio

Традиционно моделирование программного обеспечения осуществляется отдельно от кодирования. Как правило, это происходит на этапе проектирования, который заканчивается до начала кодирования. В большей части случаев диаграммы моделирования, построенные на этапе проектирования, быстро устаревают в ходе разработки программного обеспечения и теряют свое значение при неизбежном изменении проекта.
Утилита Class Designer системы Visual Studio позволяет внедрить моделирование в интегрированную среду разработки в виде действий, которые можно выполнить в любое время на всем протяжении разработки проекта. Диаграммы классов динамически конструируются по исходному коду, т.е. они никогда не устаревают. Любые изменения, внесенные в исходном коде, немедленно отражаются на диаграмме классов, а любое изменение диаграммы классов отражается в коде.
Создание диаграммы классов
Процесс проектирования приложения обычно подразумевает как минимум наличие схемы классов, которые будут созданы, и описание их взаимодействия. Среда Visual Studio 2013 имеет область проектирования Class Designer, в которой можно формировать диаграмму классов. Затем в классы можно добавлять поля, свойства и методы, а также устанавливать взаимоотношения между ними.
Несмотря на то что этот объект называется диаграммой классов, он поддерживает классы, структуры, перечисления, интерфейсы, абстрактные классы и делегаты. Существует несколько способов, с помощью которых разработчик может добавлять диаграмму классов в свой проект. Например, он может открыть диалоговое окно Add New Item, чтобы создать новую пустую диаграмму классов в проекте:

Новую диаграмму классов можно добавить в проект, щелкнув на кнопке View Class Diagram инструментальной панели в окне Solution Explorer или щелкнув правой кнопкой мыши на проекте или классе, а затем выбрав команду View Class Diagram в контекстном меню. Если при этом проект был выделен, то система Visual Studio автоматически добавит все типы, определенные в проекте, в начальную диаграмму классов. Хотя в некоторых случаях это может оказаться удобным, для проекта, содержащего большое количество классов, процесс создания и уточнения такой диаграммы может оказаться слишком долгим.
В отличие от некоторых программных средств, требующих, чтобы все типы, существующие в проекте, принадлежали одной и той же диаграмме классов, в системе Visual Studio диаграмма классов может содержать сколько угодно пользовательских классов. Это позволяет добавлять в одно решение несколько диаграмм классов.
Область действия утилиты Class Designer ограничена одним проектом. Например, нельзя добавлять в диаграмму классов типы, определенные в разных проектах, даже если они являются частями одного и того же решения.
Надстройку Class Designer можно разделить на четыре компонента: область проектирования (design surface), инструментальная панель Toolbox, окно Class Details, сетка свойств. Изменения диаграммы классов сохраняются в файле с расширением *.cd, который в сочетании с исходными файлами используется для генерации схемы, демонстрируемой в области проектирования Class Designer.
Область проектирования диаграммы классов
Область проектирования надстройки Class Designer позволяет разработчику взаимодействовать с типами, используя перетаскивание компонентов. Разработчик может добавлять в область проектирования существующие типы, перетаскивая их из любого представления классов или окна Solution Explorer. Если файл, связанный с окном Solution Explorer, содержит несколько типов, то все они добавляются в область проектирования.
На рисунке ниже показана простая диаграмма классов, содержащая два класса: Customer и Order, а также перечисление OrderStatus. Каждый класс содержит поля, свойства, методы и события. Между классами существует ассоциация, поскольку класс Customer содержит свойство Orders, представляющее собой список объектов типа Order, а класс Order реализует интерфейс IDataErrorInfo. Вся эта информация содержится на диаграмме классов.

Каждый класс на диаграмме классов изображается как отдельная сущность, которую можно перетаскивать по области проектирования и при необходимости изменять размеры. Класс состоит из полей, свойств, методов и событий. На рисунке выше эти компоненты сгруппированы в разделы. Разработчик может изменять шаблон для диаграмм классов, например, перечислять компоненты в алфавитном порядке или группировать их по уровню доступа.
Надстройка Class Designer часто используется для просмотра многочисленных классов, чтобы было понятно, как они связаны друг с другом. В таком случае удобно скрывать компоненты классов, чтобы упростить диаграмму. Для того чтобы скрыть все компоненты одновременно, можно использовать переключатель, расположенный в правом верхнем углу представления класса в области проектирования. Если необходимо скрыть не все, а лишь некоторые компоненты, то их можно скрывать по отдельности или по разделам, щелкая правой кнопкой мыши на соответствующем элементе и выбирая в контекстном меню команду Hide.
Инструментальная панель Toolbox
Для того чтобы облегчить добавление элементов на диаграмму классов, в инструментальной панели Toolbox есть корешок закладки Class Designer. Чтобы создать элемент, следует перетащить его из инструментальной панели Toolbox в область проектирования и дважды щелкнуть на нем. На рисунке ниже показана инструментальная панель Toolbox с видимой закладкой Class Designer. Элементы на панели Toolbox можно разделить на сущности (entities) или соединители (connectors). Обратите внимание на то, что элемент Comment можно добавить на закладку Class Designer, но он не появляется ни в одной части кода, а просто добавляется в документацию о диаграмме классов.

Сущности (entities)
Сущности, которые можно добавить на диаграмму классов, полностью соответствуют типам в технологии .NET Framework. Добавляя новую сущность в область проектирования, необходимо присвоить ей имя. Кроме того, требуется указать, в какой файл ее следует включить: в новый или существующий.
Для того чтобы удалить сущности из диаграммы, надо щелкнуть на них правой кнопкой мыши и выбрать в контекстном меню команду Remove From Diagram. В этом случае они не удаляются из исходного кода, а исчезают из диаграммы классов. Если разработчик все же хочет удалить связанный с сущностью исходный код, следует выбрать команду Delete Code.
Для того чтобы увидеть код, связанный с сущностью, следует дважды щелкнуть на сущности или выбрать команду View Code в контекстном меню, которое открывается после щелчка правой кнопкой мыши. Сущности, включенные в инструментальную панель Toolbox, описаны ниже.
Class (класс)
Поля, свойства, методы, события и константы можно добавлять в класс с помощью контекстного меню, открывающегося после щелчка правой кнопкой мыши или с помощью окна Class Details. Несмотря на то что класс может поддерживать вложенные типы, они не могут добавляться в область проектирования. Классы могут также реализовывать интерфейсы. Например, на рисунке выше класс Order реализует интерфейс IDataErrorInfo.
Enum (перечисление)
Может содержать только список членов с присвоенными им значениями. Каждый метод имеет резюме и комментарии, но они появляются только в виде XML-комментария, расположенного напротив метода.
Interface (интерфейс)
Интерфейсы определяют свойства, методы и события, которые должен реализовать класс. Интерфейсы могут также содержать вложенные типы, но напомним, что добавление вложенных типов не поддерживается утилитой Class Designer.
Abstract Class (абстрактный класс)
Абстрактные классы не отличаются от обычных классов, за исключением того, что их имена в области проектирования набираются курсивом и снабжаются меткой Abstract (в языке C#) или Must Inherit (в языке VB).
Struct (структура)
Это единственная сущность, кроме перечислений, которая появляется в области проектирования в прямоугольнике. Аналогично классу, структура имеет поля, свойства, методы, события и константы. Кроме того, она тоже может содержать вложенные типы. Тем не менее в отличие от класса структура не имеет деструктора.
Delegate (делегат)
Несмотря на то что делегат появляется на диаграмме классов как сущность, он не может содержать вложенные типы. Он может содержать только параметры, определяющие его сигнатуру.
Соединители (connectors)
Между сущностями могут быть установлены отношения двух типов. Они иллюстрируются на диаграмме классов с помощью соединителей, описанных ниже:
Inheritance (Наследование)
Соединитель Inheritance используется для того, чтобы показать отношение между классами, наследующими свойства друг друга.
Association (Ассоциация)
Если класс содержит ссылку на другой класс, то между ними существует ассоциация. Она демонстрируется с помощью соединителя Association. Если отношение основано на коллекции, — например, на списке объектов типа Order, — его можно представить с помощью ассоциации коллекции (collection association). Ассоциация коллекции Orders показана на рисунке выше в виде соединителя, связывающего классы Customer и Order.
Ассоциацию классов (class association) можно представить либо в виде поля или свойства класса, либо в виде ассоциативной связи между классами. Для этого можно использовать контекстное меню, открывающееся после щелчка правой кнопкой мыши на поле, свойстве или линии связи между классами.
Для того чтобы показать свойство как ассоциацию коллекции, необходимо щелкнуть правой кнопкой мыши на классе и выбрать команду Show as Collection Association. В результате свойство будет скрыто в классе и показано в виде соединителя с ассоциированным классом на диаграмме.