Ich bin mit QGIS nicht so vertraut, aber ich frage mich, wie es sich im Hinblick auf die Erweiterbarkeit mit ArcGIS vergleichen lässt. Leider scheint es zumindest einige Kompromisse zwischen Erweiterbarkeit und Leistung zu geben. Der beste Weg, um ein Gefühl für die ArcGIS-Erweiterbarkeit zu bekommen, ist ein Blick auf die COM-Komponentenkategorien von Esri in der Registrierung.
Jede Kategorie stellt einen Ort dar, an dem Benutzer DLLs registrieren können, die Klassen enthalten, die eine Esri-Schnittstelle implementieren. Es gibt viele Kategorien. Diese Kategorien enthalten auch Hundefutter - Esri verwendet sie nicht nur, um Anpassungen von Drittanbietern zu ermitteln, sondern auch, um sofort einsatzbereite Funktionen bereitzustellen. Dies bietet zwar ein sehr feinkörniges Maß an Anpassung, bedeutet jedoch auch, dass alle diese Feinkörner zur Laufzeit erkannt und geladen werden müssen. Ich bin mir nicht sicher, wie hoch die Umzugskosten sind, aber sie müssen erheblich sein.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Wenn Sie eine DLL in Visual Studio erstellen, gibt es einen Ort, an dem Sie die Basisadresse für das Laden der DLL angeben können . Da so viele DLLs unterschiedlicher Größe geladen werden, wäre es sehr schwierig, dies im Voraus für eine ArcObjects-Anpassung zu wissen. Trotzdem frage ich mich, ob eine Konfigurationsdatei erstellt werden könnte, die angibt, wo die DLL in den Speicher geladen werden soll. Wenn dies der Fall ist, kann ein Benutzer nach Ausführung von arcmap mit den geladenen DLLs, die er normalerweise verwendet, eine Routine ausführen, die die DLL-Basisadressen in eine Konfigurationsdatei schreibt. Auf diese Weise kann beim Start von arcmap eine Verlagerung durch Laden in diese Adressen vermieden werden . Andererseits spielt dies bei 64-Bit vielleicht keine Rolle.
Bei 10.0 führte Esri Add-Ins ein. Die Kategorien von Add-Ins sind viel kleiner, und die Erkennung hängt nicht von der Windows-Registrierung ab. Stattdessen werden die Add-In-DLLs komprimiert und in einem bekannten Ordner abgelegt. Ich bin nicht sicher, wie dies in Bezug auf die Leistung mit DLLs verglichen wird, die über die Windows-Registrierung ermittelt wurden. Ich denke, das Hauptziel war, die Installation durch Nichtadministratoren zu ermöglichen.
Ich gehe davon aus, dass sich die Frage auf das Desktop-Produkt bezieht. Das neue ArcGIS Runtime- Produkt ist viel leichter. Ich habe gehört, dass es als Ersatz für MapObjects beschrieben wurde. Es wird interessant sein zu sehen, wie es sich entwickelt. Wenn Esri die Erweiterbarkeit für WPF Runtime einführt, wird hoffentlich nicht derselbe Mechanismus für die Erkennung verwendet, der von Visual Studio beim Auffüllen der Liste der Assemblys verwendet wird. Das erste Mal, dass Sie auf "Verweis hinzufügen ..." klicken, ist schmerzhaft langsam geworden.