Разработка на основе COM-технологии, на мой взгляд, является не альтернативой разработке в среде VBA, а следующим шагом в создании приложения (если это необходимо): закрытие программного кода и подготовка дистрибутива.
По ряду причин чаще более эффективным подходом является первоначальное создание приложения в среде VBA и последующий перенос во внешнюю среду разработки, чем создание приложения во внешней среде разработки изначально.
Разработка на основе COM-технологии во внешней среде разработки обладает следующими особенностями:
· выбор языка программирования не имеет значения (только личные предпочтения). Однако стоит учесть, что перенос приложения из среды VBA заметно быстрее при использовании Visual Basic .NET.
· объекты приложения создаются от классов ArcObjects (Application Developer Framework, ADF)
· для создания инструментов (например, команд и кнопок панели инструментов) удобно использовать встраиваемые в среду разработки шаблоны:
Мастер создания инструмента на основе шаблона
· для использования требуемой функциональности следует подключить соответствующие библиотеки ArcObjects:
Мастер подключения библиотек ArcObjects
· в среду разработки встроены сниппеты для ускорения написания типовых фрагментов кода
· создаваемая функциональность должна быть реализована в виде COM-класса
<ComClass(ZoomToLayer.ClassId, ZoomToLayer.InterfaceId, ZoomToLayer.EventsId), _
ProgId("CommandInheritingBaseCommand.ZoomToLayer")>
· после компиляции приложения, во вложенной директории Bin\Debug проекта будут созданы библиотека DLL, файл отладки PDB и типовая библиотека ArcGIS TLB
· для включения реализованной функциональности на панель инструментов можно воспользоваться меню Tools—Customize…—Commands—РазделИнструмента—НазваниеИнструмента
Подключение созданного инструмента
· для отладки приложения требуется указать путь к приложению ArcMap, которое будет запускаться автоматически при запуске процесса отладки
Настройка параметров отладки
Пошаговая инструкция для создания расширения для 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.