2009-01-28

Разработка расширений для ArcGIS Desktop [5 Разработка на основе COM-технологии во внешней среде разработки]

Разработка на основе COM-технологии, на мой взгляд, является не альтернативой разработке в среде VBA, а следующим шагом в создании приложения (если это необходимо): закрытие программного кода и подготовка дистрибутива.

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

Разработка на основе COM-технологии во внешней среде разработки обладает следующими особенностями:

·         выбор языка программирования не имеет значения (только личные предпочтения). Однако стоит учесть, что перенос приложения из среды VBA заметно быстрее при использовании Visual Basic .NET.

·         объекты приложения создаются от классов ArcObjects (Application Developer Framework, ADF)

·         для создания инструментов (например, команд и кнопок панели инструментов) удобно использовать встраиваемые в среду разработки шаблоны:

clip_image002

Мастер создания инструмента на основе шаблона

·         для использования требуемой функциональности следует подключить соответствующие библиотеки ArcObjects:

clip_image004

Мастер подключения библиотек ArcObjects

·         в среду разработки встроены сниппеты для ускорения написания типовых фрагментов кода

·         создаваемая функциональность должна быть реализована в виде COM-класса

<ComClass(ZoomToLayer.ClassId, ZoomToLayer.InterfaceId, ZoomToLayer.EventsId), _

          ProgId("CommandInheritingBaseCommand.ZoomToLayer")>

·         после компиляции приложения, во вложенной директории Bin\Debug проекта будут созданы библиотека DLL, файл отладки PDB и типовая библиотека ArcGIS TLB

·         для включения реализованной функциональности на панель инструментов можно воспользоваться меню ToolsCustomize…—CommandsРазделИнструмента—НазваниеИнструмента

clip_image006

Подключение созданного инструмента

·         для отладки приложения требуется указать путь к приложению ArcMap, которое будет запускаться автоматически при запуске процесса отладки

clip_image008

Настройка параметров отладки

Пошаговая инструкция для создания расширения для ArcGIS Desktop в среде .NET приведена в Центре ресурсов ESRI.

При компиляции приложения COM-классы на компьютере разработчика регистрируются автоматически (в шаблоне для этого предусмотрен код). Таким образом, созданную функциональность можно использовать сразу.

С развертыванием приложения на другие компьютеры ситуация обстоит по-другому. Разработчик должен позаботиться о том, каким образом регистрация COM-классов будет выполнена на компьютере пользователя.

Для выполнения приложения на компьютере пользователя должно быть установлены:

·         библиотеки .NET Framework

·         соответствующая функциональности расширения лицензия ArcGIS Desktop

·         зарегистрированная в COM-реестре библиотека расширения и используемые ей ресурсы

Регистрация библиотеки в COM-реестре может быть выполнена:

·         при помощи утилиты Regasm.NET 2.0 находится в каталоге C:\Windows\Microsoft.NET\Framework\v2.0.50727).

§   regasm [DLL_NAME] /codebase

§   например, regasm Kmeans.dll /codebase

§   для отмены регистрации используйте команду regasm [DLL_NAME] /unregister

·         включением регистрации COM-классов в дистрибутив приложения

После того, как регистрация библиотеки в COM-реестре на компьютере пользователя выполнена, созданная функциональность может быть вынесена на панель инструментов.

Исходные коды Алгоритма на Visual Basic .NET и BAT-файл для регистрации в  COM-реестре можно скачать по ссылке: http://narod.ru/disk/5260884000/vb.net%20solution.zip.html

 


Скачать PDF-версию с оригинальным оформлением. © Для использования опубликованных на ресурсе материалов достаточно упоминания имени автора и адреса первоисточника. Дата обновления: 2009-01-28.

Комментариев нет: