(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Автоматизация работы в среде Visual Studio .NET

Источник: PCWeek/RE, №42(360)'2002
Андрей Колесов

В пакете Microsoft Visual Studio .NET помимо множества новшеств, связанных с использованием .NET-платформы, существенно расширены возможности управления средой разработки и автоматизации выполнения часто используемых операций. В предыдущих версиях этого инструмента для решения подобных задач нужно было подключать дополнения формата COM Add-Ins, представленные в виде библиотек ActiveX DLL. Создать же такие модули было очень непросто хотя бы потому, что при этом запрещалось пользоваться отладочными средствами среды разработки. Так или иначе, но реально COM Add-Ins разрабатывались обычно в коммерческих целях специализированными фирмами-разработчиками. "Обычные" программисты крайне редко прибегали к ним для собственного, "внутреннего" потребления.

С появлением VS.NET ситуация в этой сфере изменилась: в дополнение к COM Add-Ins он позволяет создавать и использовать макросы. В целом механизм макросов здесь похож на тот, что многим программистам знаком по приложениям MS Office, хотя есть в нем некоторые принципиальные отличия.

Оба варианта средств автоматизации и настройки VS.NET базируются на применении объектной модели среды разработки (VS.NET IDE), которая строится на корневом объекте Development Tools Extensibility (DTE), находящемся в пространстве имен EnvDTE библиотек классов .NET Framework. Через DTE можно получить ссылки на все множество объектов, соответствующих отдельным элементам IDE, таким, как Windows, Documents, Solutions, Projects, Debugger и Events (рис. 1). Каждый такой объект позволяет обратиться к собственной иерархической системе объектов, коллекций, свойств, методов и событий. Многие из них имеют перекрестные связи, а следовательно, и доступ к ним можно получить несколькими путями. Эта система обеспечивает доступ практически к любым компонентам и функциям среды разработки VS.NET. В то же время нужно подчеркнуть, что вся объектная модель IDE является сугубо внутренней; DTE - не COM-объект, он недоступен из внешних приложений, т. е. VS.NET в отличие, например, от Word не относится к ActiveX-серверам.

Рис. 1. Общая структура иерархической системы объектов среды разработки (представлена только небольшая часть основных объектов)

Знакомство с макросами

Общая последовательность работы с макросами соответствует иерархии компонентов - проект, модуль, макрос. Для работы с ними непосредственно в среде VS.NET используется специальное окно Macro Explorer, которое открывается командой Tools/Macros/Macro Explorer (рис. 2). К сожалению, в документации технология работы с макросами и объектом DTE описана весьма скудно, поэтому оптимальным вариантом является изучение Macro-проекта Samples, входящего в поставку. Он содержит пять модулей, включающих по набору макросов и взаимодействующих с отдельными объектами среды разработки (VSEditor - редактор кода, VSDebugger - отладчик и т. д.).

Рис. 2. Структура Macro-проектов, подключенных к среде разработки VS.NET IDE

Для запуска макросов совсем не обязательно открывать окно Macro Explorer - для часто применяемых операций можно установить ссылки в виде команд меню, кнопок панелей управления или "горячих" клавиш с помощью диалогового окна Tools/Customize. Настройка пользовательского интерфейса среды разработки VS.NET выполняется точно так же, как в офисных приложениях Microsoft.
Самым простым методом создания макросов является запись (Macro Recording; примерно то же самое делается в MS Office). Но все же этот вариант скорее годится для формирования заготовок, с тем чтобы на их базе затем писать более сложные программы. Для разработки макросов в VS.NET имеется специальная среда, которая открывается в отдельном окне с помощью команды Macros IDE меню Tools/Macros (рис. 3). Macros IDE - это фактически та же основная среда VS IDE, но только с усеченным набором функций. Каждый Macro-проект обязательно включает модуль обработки событий EnvironmentEvents, содержащий несколько групп предопределенных событийных процедур. Создаваемые посредством этих процедур макросы автоматически реагируют на операции, выполняемые в основной среде VS IDE. Например, в группу DocumentEvents входят события DocumentOpening, DocumentClosing, DocumentClosed и DocumentSaved.

Рис. 3. Среда разработки макросов - Macros IDE

Использование макросов, конечно же, существенно упрощает автоматизацию работы в среде VS.NET. Но по сравнению с COM Add-Ins и механизмом макросов, уже давно реализованным в MS Office/VBA, эта технология содержит целый ряд ограничений:

Macro-проекты VS.NET могут содержать только обычные модули кода и модули классов. Пока нет возможности применять формы и элементы управления, т. е. с их помощью нельзя реализовать полнофункциональный пользовательский интерфейс;

среда Macro IDE не является ActiveX-контейнером - из нее нельзя, например, обращаться к внешним COM-объектам, тем же офисным приложениям;

макросам доступно лишь подмножество объектной модели DTE и библиотек классов .NET Framework;
cоздавать макросы можно только на языке VB.NET;

конечно, метод Macro Recorder очень прост, однако не все созданные мною таким образом макросы заработали: выдавались сообщения о неверном использовании команд, о конфликтах потоков и пр. Возможно, для устранения подобных проблем нужно более точное управление установками среды, но вполне вероятно, что есть какие-то дефекты и в самом VS.NET (не будем забывать - это ведь версия 1.0!).

Применение COM Add-Ins

Наиболее универсальный метод автоматизации работы в среде VS.NET IDE - использование расширений COM Add-Ins. Создавать их сложнее, нежели макросы (прежде всего потому, что в этой процедуре разделены процессы написания кода и отладки), но и возможности COM Add-Ins гораздо шире - это могут быть полноценные приложения с развитым пользовательским интерфейсом, с применением баз данных и всей функциональности .NET Framework. Они могут подключаться не только к VS.NET IDE, но и к Macro IDE. Механизм их создания фактически идентичен тому, что задействован в VS 6.0, VB 6.0, VBA 6.0 и MS Office (на базе подключения программного интерфейса IDTExtensibility2). Эти COM-компоненты могут быть написаны, вообще говоря, на любом языке, поддерживающем COM, но специальные средства разработки в VS.NET позволяют использовать только VB.NET и C#.

Для создания COM Add-Ins в VS.NET нужно запустить мастер Add-Ins Project Wizard, который находится в папке Other Projects/Extensibility Projects диалогового окна New Project. Собственно, в этой папке есть два мастера: один позволяет написать расширение специально для VS.NET, другой - совместное (Shared) дополнение, подключаемое к различным приложениям, в том числе к MS Office. Каждый из них в режиме диалога с разработчиком выполняет подключение необходимых библиотек, элементов пользовательского интерфейса и пр.

После того как шаблон проекта будет готов, нужно заняться его функциональным наполнением, используя все доступные средства VS.NET. Однако отладка этого специализированного приложения сопряжена с определенными сложностями, так как некоторые режимы его работы непосредственно в среде VS.NET проверить нельзя (их можно запускать только при работе с автономным COM Add-Ins). И вот здесь опять может пригодиться механизм макросов: функциональные блоки лучше отладить с его помощью, а потом просто подключить готовый код к приложению COM Add-Ins.



 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 27.03.2003 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Business Basic (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Мастерская программиста
Краткие описания программ и ссылки на них
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100