Поделиться через


Элементы модели проекта

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

VSPackage взаимодействует с интегрированной среды разработки через службы, предоставляющие доступ к интерфейсам интегрированной среды разработки. Например, с помощью определенных служб вы отслеживаете и маршрутизируете команды и предоставляете контекстную информацию для выбора, сделанных в проекте. Все глобальные функции интегрированной среды разработки, необходимые для VSPackage, предоставляются службами. Дополнительные сведения о службах см. в статье "Практическое руководство. Получение службы".

Другие рекомендации по реализации:

  • Одна модель проекта может содержать несколько типов проекта.

  • Типы проектов и фабрики проектов-участников регистрируются независимо с идентификаторами GUID.

  • Каждый проект должен иметь файл шаблона или мастер для инициализации нового файла проекта при создании нового проекта с помощью пользовательского интерфейса Visual Studio. Например, шаблоны Visual C++ инициализируют то, что в конечном итоге становится vcproj-файлами.

    На следующем рисунке показаны основные интерфейсы, службы и объекты, которые составляют типичную реализацию проекта. С помощью вспомогательного HierUtil7приложения можно создать базовые объекты и другие стандартные программные объекты. Дополнительные сведения о вспомогательном HierUtil7 приложении см. в разделе "Использование классов проектов HierUtil7" для реализации типа проекта (C++).

    Рисунок модели проекта Visual Studio

    модель проекта

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

    Проекты могут поддерживать команды и, следовательно, должны реализовать IOleCommandTarget интерфейс для участия в маршрутизации команд с помощью идентификаторов guid контекста команд.