Я не очень знаком с QGIS, но мне интересно, как он сравнивается с ArcGIS с точки зрения расширяемости. К сожалению, кажется, что есть хотя бы некоторые компромиссы между расширяемостью и производительностью. Лучший способ почувствовать расширяемость ArcGIS - это посмотреть на категории COM-компонентов Esri, найденные в реестре.
Каждая категория представляет собой место, где пользователи могут регистрировать библиотеки, содержащие классы, которые реализуют интерфейс Esri. Есть много категорий. Эти категории также содержат собачий корм - Esri использует их не только для обнаружения настроек сторонних производителей, но и из коробки. Хотя это обеспечивает очень тонкую настройку, это также означает, что все эти мелкие зерна должны быть обнаружены и загружены во время выполнения. Я не уверен , сколько стоит переезд , но он должен быть значительным.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Когда вы создаете dll в Visual Studio, есть место, где вы можете указать базовый адрес для загрузки dll. Поскольку загружается так много библиотек разных размеров, заранее знать это для настройки ArcObjects было бы очень сложно. Тем не менее, мне интересно, если файл конфигурации может быть создан с указанием, где DLL должен быть загружен в память. Если это так, как только пользователь запустит arcmap с загруженными dll, которые он обычно будет использовать, он может запустить процедуру, которая записывает базовые адреса dll в файл конфигурации. Таким образом, при запуске arcmap можно избежать перемещения путем загрузки в эти адреса. Опять же, может быть, с 64 бит это не имеет значения.
В 10.0 Esri представил надстройки. Категории надстроек намного меньше, и обнаружение не зависит от реестра Windows. Вместо этого dll надстройки заархивированы и помещены в известную папку. Я не уверен, как это сравнивает по производительности с DLL, обнаруженные через реестр Windows. Я думаю, что главная цель состояла в том, чтобы разрешить установку не администраторами.
Я предполагаю, что вопрос относится к продукту для настольных ПК. Новый продукт ArcGIS Runtime намного легче. Я слышал, что это описывается как замена MapObjects. Будет интересно посмотреть, как это будет развиваться. Если Esri представит расширяемость для WPF Runtime, я надеюсь, что они не используют тот же механизм обнаружения, который используется Visual Studio, когда он заполняет список сборок. Первое нажатие кнопки «Добавить ссылку ...» стало мучительно медленным.