Je ne connais pas très bien QGIS, mais je me demande comment il se compare à ArcGIS en termes d'extensibilité. Malheureusement, il semble y avoir au moins quelques compromis entre l'extensibilité et les performances. La meilleure façon que j'ai trouvée pour avoir une idée de l'extensibilité d'ArcGIS est de jeter un œil aux catégories de composants COM d'Esri trouvées dans le registre.
Chaque catégorie représente un endroit où les utilisateurs peuvent enregistrer des dll contenant des classes qui implémentent une interface Esri. Il y a beaucoup de catégories. Ces catégories contiennent également des aliments pour chiens - Esri les utilise non seulement pour découvrir des personnalisations tierces, mais également des fonctionnalités prêtes à l'emploi. Bien que cela offre un niveau de personnalisation très fin, cela signifie également que tous ces grains fins doivent être découverts et chargés au moment de l'exécution. Je ne sais pas quel est le coût de la réinstallation , mais il doit être important.
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin\Categories.exe
Lorsque vous créez une DLL dans Visual Studio, il existe un endroit où vous pouvez spécifier l'adresse de base pour la DLL à charger. Comme il y a tellement de DLL de tailles différentes en cours de chargement, il sera très difficile de le savoir à l'avance pour une personnalisation d'ArcObjects. Pourtant, je me demande si un fichier de configuration pourrait être créé indiquant où la DLL doit être chargée en mémoire. Si c'est le cas, une fois qu'un utilisateur a exécuté arcmap avec les DLL chargées qu'il utilisera généralement, il pourrait exécuter une routine qui écrirait les adresses de base des DLL dans un fichier de configuration. De cette façon, lorsque arcmap démarre, il pourrait éviter la relocalisation en chargeant dans ces adresses. Là encore, peut-être qu'avec 64 bits, cela n'aura pas d'importance.
À 10,0, Esri a introduit des compléments. Les catégories de compléments sont beaucoup plus petites et la découverte ne dépend pas du registre Windows. Au lieu de cela, les DLL du complément sont zippées et placées dans un dossier connu. Je ne sais pas comment cela se compare aux performances avec les DLL découvertes via le registre Windows. Je pense que l'objectif principal était de permettre l'installation par des non-administrateurs.
Je suppose que la question fait référence au produit Desktop. Le nouveau produit ArcGIS Runtime est beaucoup plus léger. Je l'ai entendu décrit comme un remplacement de MapObjects. Il sera intéressant de voir comment il évolue. Si Esri introduit une extensibilité pour WPF Runtime, j'espère qu'ils n'utilisent pas le même mécanisme de découverte utilisé par Visual Studio lorsqu'il remplit la liste des assemblys. Cette première fois, cliquer sur "Ajouter une référence ..." est devenu extrêmement lent.