Développer avec les technologies ESRI ESRI Developer ... · PDF fileUn produit en deux...
Transcript of Développer avec les technologies ESRI ESRI Developer ... · PDF fileUn produit en deux...
Développer avec les technologies ESRIDévelopper avec les technologies ESRI
ESRIESRI DeveloperDeveloper Network (EDN)Network (EDN)
Gaëtan LAVENU Gaëtan LAVENU –– ESRI FranceESRI FranceJérémie MAJEROWICZ Jérémie MAJEROWICZ –– ESRI FranceESRI France
Le système ArcGISLe système ArcGIS
ArcGIS Engine
ArcReaderClient léger
Clientmobile
ArcView ArcInfoArcEditor
ArcIMS
SGBD
DesktopDesktop
Serveurs d'application Serveurs d'application et de et de donnéesdonnées
DonnéesDonnées
EngineEngine
ArcGISServer
ArcSDE
Qu'est ce que peut faire un développeur ?Qu'est ce que peut faire un développeur ?
•• Personnaliser les applications DesktopPersonnaliser les applications Desktop–– PersonalisationPersonalisation de l'interface, macros VBA, …de l'interface, macros VBA, …–– Développements COM ou .Net (outils, extensions, applications)Développements COM ou .Net (outils, extensions, applications)
•• Programmation de scripts de GéotraitementProgrammation de scripts de Géotraitement•• Développer des systèmes d'intégrations de donnéesDévelopper des systèmes d'intégrations de données•• Développer des interface avec des applications externesDévelopper des interface avec des applications externes•• Ecrire de nouvelles applications (avec du "spatial")Ecrire de nouvelles applications (avec du "spatial")•• Encapsuler des fonctions SIG dans d'autres applications Encapsuler des fonctions SIG dans d'autres applications •• Développer des services Web Développer des services Web •• Construire des applications consommant des servicesConstruire des applications consommant des services
ArcWebArcWeb
Pour cela, un socle commun à tous les produitsPour cela, un socle commun à tous les produits
ArcGISArcGISServerServer
ProduitsProduitsArcGISArcGIS
ArcGISArcGISDesktopDesktop
ArcObjectsArcObjects
SIG MobileSIG Mobile
ArcGISArcGISEngineEngine
ArcObjects c'est quoi ?ArcObjects c'est quoi ?
•• Un ensemble de composants permettant de créer les Un ensemble de composants permettant de créer les produits ArcGISproduits ArcGIS
•• L'interface des développeur sur ArcGISL'interface des développeur sur ArcGIS•• Basé sur les standards de développement COM, .Net et Basé sur les standards de développement COM, .Net et
JavaJava•• Ouvert et extensibleOuvert et extensible•• Indépendant de l'environnement et du langage de Indépendant de l'environnement et du langage de
développementdéveloppement–– VBA, VB, VB.NET, VC++, C#, C#.Net, Java, etc. . .VBA, VB, VB.NET, VC++, C#, C#.Net, Java, etc. . .
ArcObjectsArcObjects
•• Un ensemble d'objets d'une grande richesse fonctionnelle Un ensemble d'objets d'une grande richesse fonctionnelle –– Plus de 1300 classesPlus de 1300 classes–– Plus de 10000 méthodesPlus de 10000 méthodes
•• Organisées en sousOrganisées en sous--systèmes appelés : Bibliothèquessystèmes appelés : Bibliothèques•• Aides, Site web ArcObjectsAides, Site web ArcObjects OnlineOnline, Modèles de , Modèles de
diagrammes objets, Forums, etc. . .diagrammes objets, Forums, etc. . .
Personnalisation d'ArcGIS Desktop avec VBAPersonnalisation d'ArcGIS Desktop avec VBA
•• Avantages:Avantages:–– Développement facile de type macroDéveloppement facile de type macro–– Pratique pour créer des outils ou des Pratique pour créer des outils ou des
barres d'outils personnalisésbarres d'outils personnalisés–– Facile à partager (.Facile à partager (.mxdmxd ouou mxtmxt))
•• Inconvénients:Inconvénients:–– Difficile de protéger le codeDifficile de protéger le code–– On ne peut pas créer des .dll On ne peut pas créer des .dll
ou des .ou des .exeexe–– On ne peut pas accéder à certaines personnalisations avancées On ne peut pas accéder à certaines personnalisations avancées
((rendererrenderer, extensions, extensions de classes, …), extensions, extensions de classes, …)
Développement de scripts et de modèlesDéveloppement de scripts et de modèles
•• Permet d'étendre l'environnement de géotraitementPermet d'étendre l'environnement de géotraitement–– Créer vos propres outils et boîte à outilsCréer vos propres outils et boîte à outils
–– Possibilité d'intégrer vos propres DLLPossibilité d'intégrer vos propres DLL
–– Possibilité d'intégrer d'autres technologies (batch,Possibilité d'intégrer d'autres technologies (batch, exeexe, …), …)
Etendre ArcGIS DesktopEtendre ArcGIS Desktop
•• ExtensionsExtensions–– Fichiers DLLFichiers DLL–– Possèdent ou pas d'interface utilisateurPossèdent ou pas d'interface utilisateur–– Outils, Commandes, Barre d'outils, Extensions, Type de Outils, Commandes, Barre d'outils, Extensions, Type de
symbologie, Extension de classe,symbologie, Extension de classe, GxObjectsGxObjects, …, …
•• Nouvelles applicationsNouvelles applications–– Fichiers EXEFichiers EXE–– Encapsulation des ArcObjects dans une application indépendanteEncapsulation des ArcObjects dans une application indépendante
•• Nécessite une licence ArcGIS Desktop (ArcView, ArcEditor Nécessite une licence ArcGIS Desktop (ArcView, ArcEditor ou ArcInfo) sur le posteou ArcInfo) sur le poste
•• Accède à la totalité du modèle ArcObjects d'ArcGIS Accède à la totalité du modèle ArcObjects d'ArcGIS DesktopDesktop
Développer avec ArcGIS EngineDévelopper avec ArcGIS Engine
•• Un produit séparé pour les développeursUn produit séparé pour les développeurs
•• Un superUn super MapObjectsMapObjects complètement compatible avec les complètement compatible avec les applications ArcGIS et les Géodatabasesapplications ArcGIS et les Géodatabases
•• Peut s'utiliser pour: Peut s'utiliser pour: –– Créer des applications ArcObjects indépendantes sans nécessité Créer des applications ArcObjects indépendantes sans nécessité
ArcGIS Desktop (uniquement unArcGIS Desktop (uniquement un RunRun--Time)Time)
–– Encapsuler les composants ArcObjects pour ajouter des Encapsuler les composants ArcObjects pour ajouter des fonctionnalité SIG dans une application externefonctionnalité SIG dans une application externe
•• Un produit en deux partiesUn produit en deux parties–– EngineEngine DeveloperDeveloper KitKit –– pour le dpour le dééveloppement de l'applicationveloppement de l'application
–– EngineEngine RuntimeRuntime –– pour le dpour le dééploiement de l'applicationploiement de l'application
ArcGIS EngineArcGIS Engine
•• API COM, Java, .Net et C++API COM, Java, .Net et C++
•• Les contrôles disponibles :Les contrôles disponibles :–– MapControlMapControl,, PageLayoutControlPageLayoutControl,, ToolbarControlToolbarControl, TOC Control,, TOC Control,
ReaderControlReaderControl,, SceneControlSceneControl,, GlobeControlGlobeControl
•• Des outils et des commandes ArcGIS prédéveloppéesDes outils et des commandes ArcGIS prédéveloppées
Environ 100 en version 9.1Environ 100 en version 9.1Environ 200 en version 9.2Environ 200 en version 9.2
Les extensions d'ArcGIS EngineLes extensions d'ArcGIS Engine
•• Création et modification des Géodatabases d'entreprise Création et modification des Géodatabases d'entreprise (ArcSDE)(ArcSDE)
•• SpatialSpatial AnalysisAnalysis•• 3D et visualisation sur des globes3D et visualisation sur des globes•• Network AnalystNetwork Analyst
ArcIMSArcIMS
•• Pour créer des applications rapides de cartographie sur en Pour créer des applications rapides de cartographie sur en mode Webmode Web
•• Services de publication de données et de métadonnéesServices de publication de données et de métadonnées
•• Inclus des modèles et des exemples d'applicationsInclus des modèles et des exemples d'applications
•• Communication client/serveur basé sur la technologie XML Communication client/serveur basé sur la technologie XML ((ArcXMLArcXML) fournissant une API de développement) fournissant une API de développement
•• Disponibilité de connecteurs permettant la passerelle entreDisponibilité de connecteurs permettant la passerelle entreArcXMLArcXML et un environnement de développement spécifiqueet un environnement de développement spécifique–– Cold Fusion, ActiveX, .NET et JavaCold Fusion, ActiveX, .NET et Java
–– WMS, WFSWMS, WFS
Développer avec ArcGIS ServerDévelopper avec ArcGIS Server
•• Un produit séparé pour les développeursUn produit séparé pour les développeurs•• Pour les organisations souhaitant intégrer des fonctions Pour les organisations souhaitant intégrer des fonctions
SIG évoluées dans le système d'information d'entrepriseSIG évoluées dans le système d'information d'entreprise•• Une plateforme pour construire des applications Une plateforme pour construire des applications
d'entreprise intégrant un caractère spatial : d'entreprise intégrant un caractère spatial : –– Applications WebApplications Web–– Service WebService Web
•• Construit sur le même noyau ArcObjects que ArcGIS Construit sur le même noyau ArcObjects que ArcGIS Desktop et ArcGIS EngineDesktop et ArcGIS Engine
Architecture d'ArcGIS ServerArchitecture d'ArcGIS Server
•• ApplicationApplication Development FrameworkDevelopment Framework (ADF)(ADF)–– Outils, WebOutils, Web controlscontrols, Modèles d'application, Modèles d'application–– Ressources .NET, Java, SOAP/XMLRessources .NET, Java, SOAP/XML
•• Le GIS Server qui héberge les objets serveur (Map,Le GIS Server qui héberge les objets serveur (Map,GeocodeGeocode, …) pour une utilisation par le serveur Web , …) pour une utilisation par le serveur Web exécutant des applications .Net ou J2EEexécutant des applications .Net ou J2EE
ArcObjectsArcObjects
11
22
11
11
22
Les servicesLes services ArcWebArcWeb
•• Contenu et fonctionnalités SIG déployés via le Web selon Contenu et fonctionnalités SIG déployés via le Web selon la technologie des services Webla technologie des services Web
•• Une API programmable selon le protocole SOAP/XMLUne API programmable selon le protocole SOAP/XML•• Permet de créer ou d'étendre des applications SIG Permet de créer ou d'étendre des applications SIG
personnaliséespersonnalisées•• Environnement de développement au choix :Environnement de développement au choix :
–– Glue, .NET, Java, ASP, JSP, etc. . .Glue, .NET, Java, ASP, JSP, etc. . .
•• Une aide très détaillée, Une aide très détaillée, •• De nombreux exemples De nombreux exemples
de code et un site web de code et un site web d'aide au démarraged'aide au démarrage
Autres possibilités pour les développeursAutres possibilités pour les développeurs
•• ArcView GIS (ArcView 3.x)ArcView GIS (ArcView 3.x)
•• ArcPadArcPad–– Edition des géométries et des attributsEdition des géométries et des attributs
–– Automatisation de tâchesAutomatisation de tâches
–– Communication FTP (en version 7.0)Communication FTP (en version 7.0)
•• MapObjectsMapObjects–– Composants cartographiquesComposants cartographiques encapsulablesencapsulables
–– Windows, Java, JavaWindows, Java, Java––InternetInternet
•• GIS PortalGIS Portal ToolkitToolkit
Les objectifs d’EDNLes objectifs d’EDN
•• Vous permettre de :Vous permettre de :–– Réduire la complexité et les coûts des développements Réduire la complexité et les coûts des développements
–– Fournir l’opportunité de découvrir l’ensemble des possibilités dFournir l’opportunité de découvrir l’ensemble des possibilités de la e la gamme ArcGIS pour le développeurgamme ArcGIS pour le développeur
–– Favoriser et supporter la communauté des développeursFavoriser et supporter la communauté des développeurs
•• Centré sur les besoins des développeursCentré sur les besoins des développeurs
•• Lancé par ESRI en février dernierLancé par ESRI en février dernier
•• Le programme est organisé autour de 2 axesLe programme est organisé autour de 2 axes–– La souscription à une large librairie de logicielsLa souscription à une large librairie de logiciels
–– Un site Web collaboratif pour les développeursUn site Web collaboratif pour les développeurs
Logiciels fournis Logiciels fournis
•• La “bibliothèque” de logiciels livrée contient l’ensemble des La “bibliothèque” de logiciels livrée contient l’ensemble des médias suivants :médias suivants :
–– ArcGIS ServerArcGIS Server–– ArcIMSArcIMS–– ArcSDEArcSDE–– Accès aux servicesAccès aux services ArcWebArcWeb–– ArcGIS EngineArcGIS Engine DeveloperDeveloper KitKit
Pour toutes les platePour toutes les plate--formes supportéesformes supportées
•• LivraisonLivraison–– Un classeur completUn classeur complet
La souscription à EDN, c'est très simple ...La souscription à EDN, c'est très simple ...
•• Valable sur une période de 12 mois , Valable sur une période de 12 mois , •• Lié à un utilisateurLié à un utilisateur•• Licences pour tous les logiciels du programme EDN Licences pour tous les logiciels du programme EDN
•• En options :En options :–– FormationFormation–– Support développeurSupport développeur
Le site Internet EDNLe site Internet EDN
•• Un centre de ressources pour tous les développeurs ESRIUn centre de ressources pour tous les développeurs ESRI–– L’accès ne requiert pas de souscription particulière L’accès ne requiert pas de souscription particulière –– Une ressource centrale pour les développeurs de plateUne ressource centrale pour les développeurs de plate--forme SIGforme SIG–– Contenu ordonné par versionContenu ordonné par version–– Un centre multimédia étenduUn centre multimédia étendu–– Un moteur de recherche amélioréUn moteur de recherche amélioré
•• Une communauté impliquéeUne communauté impliquée–– Collaboration au travers de forums et de commentairesCollaboration au travers de forums et de commentaires–– Nouvelles ressources multimédiaNouvelles ressources multimédia–– Échange de codeÉchange de code
http://http://ednedn.esri..esri.comcom
UtilisationUtilisationAutoriséAutorisé•• Développement de type Développement de type
Commercial OffCommercial Off--TheThe--Shelf Shelf DevelopmentDevelopment (COTS)(COTS)
•• Développements payésDéveloppements payés•• Développements internesDéveloppements internes•• Démonstration & Marketing de Démonstration & Marketing de
solution spécifique
Non autoriséNon autorisé•• Déploiement de la solutionDéploiement de la solution•• Production :Production :
–– Analyse SIGAnalyse SIG–– Conversion de donnéesConversion de données–– Production cartographiqueProduction cartographique
solution spécifique
Une opportunité d’améliorer sa plateUne opportunité d’améliorer sa plate--forme SIGforme SIG
•• EDN permet de choisir la meilleur solution pour vos EDN permet de choisir la meilleur solution pour vos déploiementsdéploiements
•• Importance pour les systèmes simplesImportance pour les systèmes simples–– Ne déployer que le nécessaireNe déployer que le nécessaire
•• La flexibilité est critique lorsque le système est complexeLa flexibilité est critique lorsque le système est complexe–– Intégrer les produits là où cela est nécessaireIntégrer les produits là où cela est nécessaire
–– Tester, évaluer, quantifier, …Tester, évaluer, quantifier, …
Réduire la complexitéRéduire la complexité
•• Développer pour un environnement cibleDévelopper pour un environnement cible–– Les solutions bureautiques intègrent souvent des serveurs de Les solutions bureautiques intègrent souvent des serveurs de
bases de donnéesbases de données
•• La bibliothèque de logiciels rend disponible toute la La bibliothèque de logiciels rend disponible toute la technologie ESRI aux développeurstechnologie ESRI aux développeurs
•• Les services ESRI France sont à votre disposition pour Les services ESRI France sont à votre disposition pour vous aidez à résoudre vos problèmesvous aidez à résoudre vos problèmes
Démarrer rapidementDémarrer rapidement
•• Nombreux exemples, modèles et tutoriauxNombreux exemples, modèles et tutoriaux
•• Une documentation complète de haut niveau, présentant Une documentation complète de haut niveau, présentant des manières de procéder des manières de procéder
•• Possibilité (en option) de suivre des coursPossibilité (en option) de suivre des cours
•• Architectures :Architectures :–– Un modèle de programmation commun basé sur les ArcObjectsUn modèle de programmation commun basé sur les ArcObjects–– De nombreux langages de programmation à choisir entreDe nombreux langages de programmation à choisir entre
•• COM, .NET, JAVA, CrossCOM, .NET, JAVA, Cross PlatformPlatform C++, HTTP et SOAPC++, HTTP et SOAP