Компоненты пакета SDK для Visual Studio
В этом разделе содержатся подробные сведения о расширениях Visual Studio, включая архитектуру Visual Studio, компоненты, службы, схемы, служебные программы и подобные.
Архитектура расширяемости
На следующем рисунке показана архитектура расширяемости Visual Studio. VSPackage предоставляет функциональные возможности приложений, которые совместно используются в интегрированной среде разработки как службы. Стандартная интегрированная среда разработки также предлагает широкий спектр служб, таких как SVsUIShell, которые предоставляют доступ к функциям окна интегрированной среды разработки.
Обобщенное представление архитектуры Visual Studio
Пакеты VSPackage
Пакеты VSPackage — это программные модули, которые образуют и расширяют среду Visual Studio с помощью элементов пользовательского интерфейса, служб, проектов, редакторов и конструкторов. VSPackages — это центральная архитектурная единица Visual Studio. Дополнительные сведения см. в разделе VSPackages.
Оболочка Visual Studio
Оболочка Visual Studio предоставляет основные функциональные возможности и поддерживает перекрестное взаимодействие между его компонентами VSPackages и расширениями MEF. Дополнительные сведения см. в visual Studio Shell.
Руководство по работе пользователей
Если вы планируете разрабатывать новые функции для Visual Studio, ознакомьтесь с этими рекомендациями по проектированию и удобства использования: Рекомендации по работе с пользователем Visual Studio.
Команды
Команды — это функции, которые выполняют задачи, например печать документа, обновление представления или создание нового файла.
При расширении Visual Studio можно создавать команды и зарегистрировать их в оболочке Visual Studio. Вы можете указать, как эти команды будут отображаться в интегрированной среде разработки, например в меню или панели инструментов. Обычно пользовательская команда отображается в меню "Сервис", а команда для отображения окна инструментов появится в подменю "Другие окна Windows" в меню "Вид".
При создании команды необходимо также создать обработчик событий для него. Обработчик событий определяет, когда команда видна или включена, позволяет изменять текст и гарантирует, что команда отвечает соответствующим образом при активации. В большинстве случаев интегрированная среда разработки обрабатывает команды с помощью IOleCommandTarget интерфейса. Команды в Visual Studio обрабатываются начиная с самого внутреннего контекста команды на основе локального выбора и переходят к самому внешнему контексту на основе глобального выбора. Команды, добавленные в главное меню, становятся сразу доступными для использования в сценариях.
Дополнительные сведения см. в разделе "Команды", "Меню" и "Панели инструментов".
Меню и панели инструментов
Меню и панели инструментов позволяют пользователям вызывать команды. Меню — это строки или столбцы команд, которые обычно отображаются в виде отдельных текстовых элементов в верхней части окна инструментов. Подменю — это вторичные меню, которые отображаются при нажатии пользователем команд, которые включают небольшую стрелку. Контекстные меню отображаются, когда пользователь щелкает правой кнопкой мыши определенные элементы пользовательского интерфейса. Некоторые распространенные имена меню : "Файл", "Изменить", "Вид" и "Окно". Дополнительные сведения см. в разделе "Расширение меню" и "Команды".
Панели инструментов — это строки или столбцы кнопок и других элементов управления, например поля со списком, списки и текстовые поля. Кнопки панели инструментов обычно имеют изображения значков, например значок папки для команды "Открыть файл " или принтера для команды "Печать ". Все элементы панели инструментов связаны с командами. При нажатии кнопки панели инструментов ее связанная команда выполняется. В случае раскрывающегося списка каждый элемент в раскрывающемся списке связан с другой командой. Некоторые элементы управления панели инструментов, такие как элемент управления разделением, являются гибридными. Одна из сторон элемента управления — кнопка панели инструментов, а другая — стрелка вниз, отображающая несколько команд при нажатии.
Окна инструментов
Окна инструментов используются в интегрированной среде разработки для отображения сведений. Панель элементов, Обозреватель решений, окно свойств и веб-браузер являются примерами окон инструментов.
Окна инструментов обычно предлагают различные элементы управления, с помощью которых пользователь может взаимодействовать. Например, окно "Свойства" позволяет пользователю задавать свойства объектов, которые служат определенной цели. Окно "Свойства " специализировано в этом смысле, но и общее, так как оно может использоваться во многих различных ситуациях. Аналогичным образом окно вывода специализировано, так как оно предоставляет текстовые выходные данные, но обычно, так как многие подсистемы в Visual Studio могут использовать его для предоставления выходных данных пользователю Visual Studio.
Рассмотрим следующее изображение Visual Studio, содержащее несколько окон инструментов:
Некоторые окна инструментов закреплены вместе на одной панели, которая отображает окно инструментов Обозреватель решений и скрывает другие окна инструментов, но делает их доступными, щелкнув вкладки. На рисунке показаны два других окна инструментов, окно "Список ошибок" и "Вывод", закрепленное на одной панели.
Также показана основная область документа, в которой показаны несколько окон редактора. Хотя окна инструментов обычно имеют только один экземпляр (например, можно открыть только один Обозреватель решений), окна редактора могут иметь несколько экземпляров, каждый из которых используется для редактирования отдельного документа, но все из которых закреплены на одной панели. На рисунке показана панель документов с двумя окнами редактора, одним окном конструктора форм. Все окна в области документов доступны, щелкнув вкладки, но окно редактора, содержащее EditorPane.cs файл, отображается и активен.
При расширении Visual Studio можно создавать окна инструментов, позволяющие пользователям Visual Studio взаимодействовать с расширением. Вы также можете создавать собственные редакторы, позволяющие пользователям Visual Studio редактировать документы. Так как окна инструментов и редакторы будут интегрированы в Visual Studio, вам не нужно программировать их для прикрепления или отображения на вкладке правильно. При правильной регистрации в Visual Studio они автоматически будут иметь типичные функции окон инструментов и окон документов в Visual Studio. Дополнительные сведения см. в разделе "Расширение и настройка инструментов" в Windows.
Окна документов
Окно документа — это фреймированное дочернее окно окна многодокументного интерфейса (MDI). Окна документов обычно используются для размещения текстовых редакторов, редакторов форм (также известных как конструкторы) или элементов управления редактирования, но также могут размещать другие функциональные типы. Диалоговое окно "Новый файл" содержит примеры окон документов, которые предоставляет Visual Studio.
Большинство редакторов относятся к языку программирования или к типу файла, таким как HTML-страницы, кадры, файлы C++ или файлы заголовков. Выбрав шаблон в диалоговом окне "Создать файл ", пользователь динамически создает окно документа для редактора для типа файла, связанного с шаблоном. Окно документа также создается при открытии существующего файла пользователем.
Окна документов ограничены клиентской областью MDI. В каждом окне документа есть вкладка в верхней части, а порядок вкладок связан с другими окнами, которые могут быть открыты в области MDI. Щелкнув правой кнопкой мыши вкладку окна документа, отображает контекстное меню, включающее параметры разделения области MDI на несколько горизонтальных или вертикальных групп вкладок. Разделение области MDI позволяет одновременно просматривать несколько файлов. Дополнительные сведения см. в разделе "Документы Windows".
Редакторы
Редактор Visual Studio позволяет настроить его и использовать его для собственного типа контента с помощью платформы управляемой расширяемости (MEF). Во многих случаях вам не потребуется создать VSPackage для расширения редактора, хотя если вы хотите включить функции из оболочки (например, команду меню или сочетания клавиш), можно объединить расширение MEF с VSPackage.
Вы также можете создать пользовательский редактор, например, если вы хотите читать и записывать данные в базу данных или использовать конструктор. Вы также можете использовать внешний редактор, например Блокнот или Microsoft WordPad. Дополнительные сведения см. в разделе "Редактор" и "Расширения языковой службы".
Языковые службы
Если вы хотите, чтобы редактор Visual Studio поддерживал новые ключевое слово программирования или даже новый язык программирования, создайте языковую службу. Каждая языковая служба может реализовать некоторые функции редактора полностью, частично или не вообще. В зависимости от того, как она настроена, языковая служба может предоставлять выделение синтаксиса, сопоставление фигурных скобок, поддержку IntelliSense и другие функции в редакторе.
В основе языковой службы находятся средство синтаксического анализа и сканер. Сканер (или лексер) делит исходный файл на элементы, которые называются токенами, и средство синтаксического анализа устанавливает связи между этими маркерами. При создании языковой службы необходимо реализовать средство синтаксического анализа и сканер, чтобы Visual Studio могли понять маркеры и грамматику языка. Вы можете создавать управляемые или неуправляемые языковые службы. Дополнительные сведения см. в статье о расширяемости устаревшей языковой службы.
Проекты
В Visual Studio проекты — это контейнеры, используемые разработчиками для упорядочивания и сборки исходного кода и других ресурсов. Проекты позволяют упорядочивать, создавать, отлаживать и развертывать исходный код, ссылки на веб-службы и базы данных и другие ресурсы. VSPackages может расширить систему проектов Visual Studio, предоставляя типы проектов, подтипы проекта и пользовательские средства.
Проекты также могут быть собраны вместе в решении, которое представляет собой группирование одного или нескольких проектов, которые работают вместе для создания приложения. Сведения о проекте и состоянии, относящиеся к решению, хранятся в двух файлах решения, текстовом файле решения (.sln) и файле пользователя двоичного решения (SUO). Эти файлы похожи на файлы группы (VBG), которые использовались в более ранних версиях Visual Basic, а также файлы рабочей области (DSW) и пользовательских параметров (.opt), которые использовались в более ранних версиях C++.
Дополнительные сведения см. в разделе "Проекты и решения".
Шаблоны проектов и элементов
Visual Studio включает стандартные шаблоны проектов и шаблоны элементов проекта. Вы также можете создавать собственные шаблоны или получать шаблоны из сообщества, а затем интегрировать их в Visual Studio. Коллекция кода MSDN — это место для перехода к шаблонам и расширениям.
Шаблоны содержат структуру проекта и базовые файлы, необходимые для создания определенного типа приложения, элемента управления, библиотеки или класса. Если вы хотите разработать программное обеспечение, похожее на один из шаблонов, создайте проект, основанный на шаблоне, а затем измените файлы в этом проекте.
Примечание.
Эта архитектура шаблона не поддерживается для проектов Visual C++.
Дополнительные сведения см. в разделе "Добавление шаблонов элементов проекта и проекта".
Свойства и параметры
В окне "Свойства " отображаются свойства отдельных или нескольких выбранных элементов: страницы параметров расширения свойств содержат наборы параметров, относящихся к определенному компоненту, например язык программирования или VSPackage: Параметры и страницы параметров. Параметры обычно являются функциями, связанными с пользовательским интерфейсом, которые можно импортировать и экспортировать: Поддержка Параметры пользователей.
Службы Visual Studio
Служба предоставляет определенный набор интерфейсов для использования компонентов. Visual Studio предоставляет набор служб, которые могут использоваться любыми компонентами, включая расширения. Например, службы Visual Studio позволяют отображать или скрывать окна инструментов динамически, разрешать доступ к событиям справки, строки состояния или пользовательского интерфейса. Редактор Visual Studio также предоставляет службы, которые можно импортировать расширениями редактора. Дополнительные сведения см. в разделе "Использование и предоставление служб".
Отладчик
Отладчик — это пользовательский интерфейс для компонентов отладки для конкретного языка. Если вы создали новую языковую службу, необходимо создать определенный обработчик отладки, чтобы подключиться к отладчику. Дополнительные сведения см. в статье о расширяемости отладчика Visual Studio.
Система управления версиями
Сведения о реализации подключаемого модуля управления версиями или VSPackage см. в разделе "Управление версиями".
Мастеры
Мастер можно создать вместе с новым типом проекта, чтобы мастер помог пользователям принимать правильные решения при создании нового проекта этого типа. Дополнительные сведения см. в разделе "Мастера".
Настраиваемые средства
Пользовательские средства позволяют связать инструмент с элементом в проекте и запустить этот инструмент всякий раз, когда файл сохраняется. Дополнительные сведения см. в разделе "Пользовательские инструменты".
Служебные программы VSSDK
VSSDK включает набор служебных программ, которые могут потребоваться для работы с различными аспектами VSPackages. Дополнительные сведения см. в разделе "Служебные программы VSSDK".
Использование установщика Windows
В некоторых случаях может потребоваться использовать установщик Windows, а не установщик VSIX: например, может потребоваться записать в реестр. Сведения об использовании установщика Windows с расширениями см. в разделе "Установка VSPackages с помощью установщика Windows".
Окно справки
Вы можете интегрировать собственную справку и страницы F1 в средство просмотра справки. Дополнительные сведения см. в пакете SDK microsoft Help Viewer.