=== Langage de développement ArcGIS === \\ Le socle commun à tous les produits ArcGIS est une collection de composants (un composant est une unité binaire de code réutilisable) appelée ArcObjects. ArcObjects inclut toutes les fonctions accessibles dans les applications. La figure ci-dessous illustre la place d’ArcObjects dans les applications. {{fonctions:automatisation:langages:imagearcobjects1.jpg}}\\ ESRI : Developing Applications with ArcInfo : An Overview of ArcObjects, An ESRI White Paper, Avril 2000 Pour les développeurs ArcObjects, des évolutions importantes sont proposées en version 10. Tout d'abord, ESRI fournit un seul et unique SDK ArcObjects pour ArcGIS Desktop, Engine et Server. Ce dernier est disponible pour .Net et Java. En revanche, VB6 n'est plus supporté. ArcGIS 10 introduit la notion de "compléments" (Add-Ins) qui va permettre aux développeurs (.Net et Java) de développer et de déployer beaucoup plus facilement leurs personnalisations d'ArcGIS Desktop (outils, commandes, barres d'outils, menus, fenêtres ancrables, extensions, …). Un complément est un fichier packagé et autoinstallable qu'il suffit de déployer sur le poste de l'utilisateur. L'utilisateur peut désormais gérer ses Compléments (installer et désinstaller) automatiquement à partir de la fenêtre "Gestionnaire des compléments". Un des grands avantages des compléments, plus besoin de gérer l'enregistrement des composants dans la base de registre et donc les privilèges systèmes de l'utilisateur. \\ ArcObjects est basé sur les standards de développement [[COM]] ( Microsoft’s Component Object Model). Ainsi, les développeurs peuvent faire appel à tous les composants COM en utilisant une langue de programmation compatible [[COM]]. En d’autres termes, il est possible en utilisant la collection des composants [[COM]] ArcObjects, de développer des extensions, des outils personnalisés, ou même de créer des interfaces totalement nouvelles pour intervenir sur des cartes, à l’aide d’interfaces de programmation Windows standard, telles que Visual Basic® (VB), [[:fonctions:automatisation:interface:vba|VBA]], [[.NET]], [[:fonctions:automatisation:java|Java]] et Visual [[C++]], etc. Les nouveaux composants développés pourront être ajoutés dans ArcGIS comme [[dll]] (Dynamic Link Librairy). \\ ArcGIS fourni un langage de programmation, il s’agit de [[:fonctions:automatisation:interface:vba|Visual Basic pour Applications®]] (VBA). Il est appelé depuis ArcMap (Alt + F11).\\ C’est à la fois un langage et un environnement de développement. C'est aussi un langage interprété [[http://fr.wikipedia.org/wiki/Langage_interpr%C3%A9t%C3%A9_informatique|wikipedia]] dont l'intérêt est d'être partagé également par d'autres applications (notamment bureautiques : Word, Access, Excel ...).\\ Par l'utilisation d'ArcObjetcs on peut ainsi [[:fonctions:automatisation:interface:arcgis|personnaliser l'environnement]] dans ArcMap ou ArcCatalog avec VBA. [[:fonctions:automatisation:interface:vba|VBA]]:\\ * Avantages : * Développement facile de type macro * Pratique pour créer des outils ou des barres d'outils personnalisés * Facile à partager (.mxd ou .mxt) * Inconvénients : * Difficile de protéger le code * On ne peut pas créer des .[[dll]] ou des .exe (nécessite d'écrire le code dans Visual Basic ou Visual Studio) * On ne peut pas accéder à certaines personnalisations avancées (renderer, extensions, extensions de classes, …) \\ Parmis les applications d'ESRI il existe également ArcGIS Engine. C’est un produit séparé qui peut s'utiliser pour: * Créer des applications ArcObjects indépendantes sans nécessité d’avoir ArcGIS Desktop1 (uniquement un Run-Time). * Encapsuler les composants ArcObjects pour [[:fonctions:automatisation:composants:arcgis|ajouter des fonctionnalité SIG dans une application externe]]. \\ Il est également possible dans ArcGis d’[[:fonctions:automatisation:macrocommande:arcgis|automatiser certaines tâches grâce à des scripts]] (en [[python]] par exemple). \\ Pour plus d’information vous pouvez:- télécharger le support de cours de l’E.N.S.G. intitulé [[http://www.ensg.ign.fr/FAD/FAD_PDF/Sig_Pdf/Cours_vba.pdf |«Introduction à la programmation en VBA sur ArcGIS»]].\\ -aller sur http://resources.arcgis.com/fr/content/arcgissdks/10.0/system-requirements pour avoir des informations sur la configuration système pour le SDK d'ArcObjects 10. \\ 1 ArcGIS Desktop est composé des applications ArcMap, ArcCatalog et ArcToolbox ---- mise à jour Février 2012 par GK et Laura HOURY