(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 Office 365 Бизнес. Подписка на 1 рабочее место на 1 год
Microsoft 365 Apps for business (corporate)
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новые материалы
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100