Введение в объектную модель расширяемости

Оценить
(0 голоса)
Она поставляется с собственным интерфейсом приклад­ного программирования (API), чтобы дать разработчикам возможность управлять многими элементами интегрированной среды. Этот API называется объектной .моделью расширяемости Visual Studio, и понимание его возможностей является ключом к освоению программирования и управления интегрирован­ной средой, для чего пишется код в виде макросов и надстроек (см. главы 12 и 13). В данной главе мы обсуждаем компоновку и структуру объектной модели расширяемости. Мы установим соответствие между различными объектами объектной модели и элементами интегрированной среды, изучим различные способы взаимодействия с этими объектами (при помощи управляемого кода) и начнем понимать возможности доработки Visual Studio. Для того чтобы собрать воедино концепции объектной…
Оценить
(0 голоса)
Объектная модель расширяемости — это структурированная библиотека классов с корне­вым объектом верхнего уровня под названием DTE (или DTE2, об этом несколько позже), что означает Development Tools Environment (среда разработки инструментов). Сделав ссылку на сборку, которая реализует объект DTE/DTE2, вы можете получить экземпляр этого корне­вого объекта и использовать его члены и дочерние классы для доступа к компонентам ин­тегрированной среды разработки.
Оценить
(0 голоса)
Объектная модель расширяемости реализована в трех разных взаимодействующих сборках: EnvDTE, EnvDTE80 и EnvDTE90. EnvDTE — это исходная сборка расширяемости, постав­лявшаяся вместе с Visual Studio .NET 2003. EnvDTE80 — это библиотека, которая поставля­лась с Visual Studio 2005, a EnvDTE90 поставляется с Visual Studio 2008. Причина использо­вания нескольких сборок проста: они помогают сбалансировать потребность в новых функциональных возможностях с необходимостью сохранения обратной совместимости. Например, в Visual Studio 2008 фирма Microsoft столкнулась с необходимостью принять обычное проектное решение: либо заменить (или обновить) предыдущую сборку, постав­лявшуюся с Visual Studio 2005 (EnvDTE80) и получить возможную несовместимость с имеющимися макросами и надстройками — либо поставлять новую…
Оценить
(0 голоса)
Поскольку всякая работа по расширяемости Visual Studio начинается с объектной модели, то вы должны сначала понять, как она соответствует конструкциям интегрированной среды, и определить предоставляемые ею возможности. Вы можете считать, что классы объектной модели организованы в категории, которые непо­средственно соответствуют следующим концепциям интегрированной среды: □    решения и проекты; □    окна и панели команд (панели инструментов и меню); □    документы; □    команды; □    отладчик; □    события. Каждый объект имеет отношение к своему элементу интегрированной среды и доступ к ка­ждому объекту обычно производится через корневой объект DTE2.
Оценить
(0 голоса)
Объект DTE/DTE2 представляет собой верхушку дерева API. Вы можете считать его пред­ставлением самой интегрированной среды Visual Studio, причем находящиеся ниже него объекты соответствуют различным частям интегрированной среды. Как уже упоминалось, самая новая версия — это DTE2, а версия DTE обеспечивает совмес­тимость с предыдущими версиями. В данной главе (если не будет необходимости подчерк­нуть различия между ними) мы будем называть объекты DTE и DTE2 — просто DTE. Свойства DTE используются для получения ссылок на конкретный объект интегрированной среды (или коллекцию объектов). Методы объектов используются для выполнения команд в интегрированной среде, запуска мастеров или выхода из интегрированной среды. В табл. 11.2 показаны основные…
Оценить
(0 голоса)
Объект Solution представляет собой текущее загруженное решение. Отдельные проекты решения доступны через объекты Project, возвращаемые в коллекции Solution. Projects. Доступ к элементам проекта можно получить аналогичным образом через коллекцию Project. Projectltems. Как видно из рис. 11.1, эта иерархия точно отражает иерархию решение/проект, которую мы уже обсуждали в главе 4. Здесь есть некоторые несоответствия — например, каталоги решений трактуются как проек­ты — но по большей части дерево объектной модели достаточно точно соответствует дере­ву проектов решения (к которому вы привыкли). Члены объектов Solution и Solution2 позволяют вам взаимодействовать с текущим ре­шением для выполнения таких стандартных задач, как следующие: □    определение количества проектов…
Оценить
(0 голоса)
Объект Solution очень удобен для получения ссылок на различные проекты решения. Ка­ждый объект Project имеет свой собственный набор полезных членов для взаимодействия с проектами и их элементами. Используя эти члены, вы можете взаимодействовать с проек­тами различными способами, такими как: переименование проекта, удаление проекта и со­хранение проекта. В табл. 11.4 приведен обзор наиболее часто используемых членов Project.
Оценить
(0 голоса)
Кроме основных атрибутов и элементов проекта через экземпляр Project можно получить доступ к реальному коду исходных файлов проекта.   При помощи свойства CodeModel вы можете получить доступ ко всей линейке прокси-объектов, представляющих собой конст­рукции кода внутри проекта. Например, интерфейс CodeClass позволяет вам изучить и от­редактировать код для данного класса в данном проекте. Примечание Поддержка объектов модели CodeModel для разных языков отличается. В докумен­тации MSDN для каждого типа CodeModel четко указана имеющаяся языковая под­держка данного элемента. После получения ссылки на CodeModel из экземпляра Project вы можете получить доступ к его коллекции CodeElements (которая (естественно) является коллекцией объектов CodeElement). CodeElement — это…
Оценить
(0 голоса)
Та видимая часть Visual Studio, которая содержит контент, представлена объектами Window. Объекты Window— это экземпляры открытых окон интегрированной среды (такие как Solution Explorer, окно Task List, открытое окно редактора кода и т. д.) Даже сама интег­рированная среда представлена объектом Window. Любое окно является либо окном документа, либо окном инструмента. Окна документов содержат документы, редактируемые при помощи Text Editor. Окна инструментов содер­жат элементы управления, которые отображают информацию, соответствующую текущему контексту интегрированной среды; окна Solution Explorer и Task List являются примерами окон инструментов, а открытый в редакторе файл исходного кода на языке Visual Basic — это пример окна документа.
Оценить
(0 голоса)
Если вам нужно отыскать конкретное окно, то у вас есть несколько вариантов (оптимальных для разных ситуаций). Для новичков: главное окно интегрированной среды всегда доступно непосредственно из объекта dte: Dim IDE As Window IDE = DTE.MainWindow Очевидно, что если вам нужно выполнить определенное действие с окном интегрированной среды, то это самый быстрый вариант. Свойство DTE.ActiveWindow также предоставляет прямой и быстрый доступ к объекту Window (в данном случае это текущее активное окно): Dim CurrentWindow As Window CurrentWindow = DTE.ActiveWindow Окна инструментов в интегрированной среде (окно команд, окно списка ошибок, окно вы­вода, окна Solution Explorer.и Task List и панель инструментов)— также имеют прямой…
«ПерваяПредыдущая12СледующаяПоследняя»
Навигация
© 2017 www.visualstudios.ru. Все права защищены.