Développer avec les technologies ESRI ESRI Developer ... · PDF fileUn produit en deux...

28
Développer avec les technologies ESRI Développer avec les technologies ESRI ESRI ESRI Developer Developer Network (EDN) Network (EDN) Gaëtan LAVENU Gaëtan LAVENU ESRI France ESRI France Jérémie MAJEROWICZ Jérémie MAJEROWICZ ESRI France ESRI France

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

Merci pour votre attentionMerci pour votre attention

Vos questions ?Vos questions ?