QGIS nie znam się tak dobrze, ale zastanawiam się, jak wypada w porównaniu z ArcGIS pod względem rozszerzalności. Niestety wydaje się, że istnieją przynajmniej pewne kompromisy między rozszerzalnością a wydajnością. Najlepszym sposobem, w jaki udało mi się poznać rozszerzalność ArcGIS, jest przyjrzenie się kategoriom komponentów Esri w rejestrze.
Każda kategoria reprezentuje miejsce, w którym użytkownicy mogą rejestrować biblioteki dll zawierające klasy implementujące interfejs Esri. Istnieje wiele kategorii. Te kategorie zawierają również karmę dla psów - Esri używa ich nie tylko do odkrywania dostosowań innych firm, ale także po wyjęciu z pudełka. Chociaż zapewnia to bardzo drobiazgowy poziom dostosowania, oznacza to również, że wszystkie te drobne ziarna muszą zostać odkryte i załadowane w czasie wykonywania. Nie jestem pewien, jaki jest koszt przeprowadzki , ale musi być znaczny.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Podczas tworzenia biblioteki DLL w programie Visual Studio istnieje miejsce, w którym można określić adres bazowy biblioteki DLL do załadowania. Ponieważ ładuje się tak wiele bibliotek DLL o różnych rozmiarach, wiedząc, że z wyprzedzeniem dostosowanie ArcObjects byłoby bardzo trudne. Nadal zastanawiam się, czy można utworzyć plik konfiguracyjny z instrukcją, gdzie dll powinien zostać załadowany do pamięci. Jeśli tak, gdy użytkownik uruchomi arcmap z załadowanymi bibliotekami DLL, których zwykle używa, może uruchomić procedurę zapisującą podstawowe adresy bibliotek DLL w pliku konfiguracyjnym. W ten sposób, gdy arcmap się uruchomi, może uniknąć przeniesienia poprzez załadowanie do tych adresów. Z drugiej strony może 64-bitowe to nie będzie miało znaczenia.
O 10.0 Esri wprowadziło dodatki. Kategorie dodatków są znacznie mniejsze, a wykrywanie nie zależy od rejestru systemu Windows. Zamiast tego biblioteki DLL dodatków są spakowane i umieszczone w znanym folderze. Nie jestem pewien, jak to pod względem wydajności porównuje się z bibliotekami DLL wykrytymi przez rejestr systemu Windows. Myślę, że głównym celem było umożliwienie instalacji przez osoby niebędące administratorami.
Zakładam, że pytanie dotyczy produktu Desktop. Nowy produkt ArcGIS Runtime jest znacznie lżejszy. Słyszałem, że jest to opisywane jako zamiennik MapObjects. Ciekawie będzie zobaczyć, jak się rozwija. Jeśli Esri wprowadzi rozszerzalność dla środowiska wykonawczego WPF, mam nadzieję, że nie używają tego samego mechanizmu wykrywania używanego przez program Visual Studio, gdy zapełni on listę zestawów. Pierwsze kliknięcie „Dodaj referencję ...” stało się boleśnie powolne.