Я не такий знайомий з QGIS, але мені цікаво, як він порівнюється з ArcGIS з точки зору розширюваності. На жаль, мабуть, принаймні деякі компроміси між розширюваністю та продуктивністю. Найкращий спосіб, щоб я відчув розширюваність ArcGIS, - це ознайомитись із категоріями компонентів Есрі, що знаходяться в реєстрі.
Кожна категорія являє собою місце, де користувачі можуть реєструвати клітини, що містять класи, що реалізують інтерфейс Esri. Є цілі багато категорій. Ці категорії також містять корми для собак - Esri використовує їх не тільки для відкриття сторонніх налаштувань, але і для функціональності поза коробкою. Хоча це забезпечує дуже дрібнозернистий рівень налаштування, це також означає, що всі ці дрібні зерна потрібно виявити та завантажити під час виконання. Я не впевнений, яка вартість переїзду , але вона повинна бути значною.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Коли ви створюєте dll у Visual Studio, є місце, де ви можете вказати базову адресу для dll для завантаження. Оскільки завантажується стільки dll різного розміру, знаючи це достроково для налаштування ArcObjects було б дуже складно. Тим не менш, мені цікаво, чи не міг би бути створений файл конфігурації, який вказує, де dll слід завантажувати в пам'ять. Якщо так, то, як тільки користувач має arcmap, що працює з завантаженими dlls, які він зазвичай використовує, він може запустити процедуру, яка запише базові адреси dll до файлу config. Таким чином, коли Arcmap запускається, це може уникнути переміщення , завантажуючи в ці адреси. Тоді, можливо, з 64 бітом це не має значення.
О 10.0 Esri представив надбудови. Категорії надбудов значно менші, а відкриття не покладається на реєстр Windows. Натомість, додаткові модулі накопичуються та розміщуються у відомій папці. Я не впевнений, як це порівнює ефективність роботи з DLL, виявленими через реєстр Windows. Я думаю, що головна мета полягала в тому, щоб дозволити встановлення не адміном.
Я припускаю, що питання стосується продукту Desktop. Новий продукт ArcGIS Runtime набагато менший. Я чув, як це описано як заміну для MapObjects. Буде цікаво подивитися, як воно розвивається. Якщо Esri дійсно введе розширюваність для WPF Runtime, я сподіваюся, що вони не використовуватимуть той самий механізм для відкриття, який використовувався Visual Studio, коли він заповнює список збірок. Цей перший раз натискання "Додати довідку ..." стало болісно повільним.