Le blog francophone consacré
aux technologies Esri

Quelle API Web ArcGIS dois-je choisir ?



Depuis la naissance d'ArcGIS Server, ESRI propose des frameworks de développement d'application Web (Web ADF) pour .Net et pour Java. Depuis la version 9.3, ESRI propose également des APIs pour JavaScript, Flex et Silverlight/WPF pour étendre encore le choix des développeurs.

Revenant d'une série de déplacements chez quelques uns de nos clientsvenant d'acquérir ArcGIS Server et la question qui revient le plus souvent concerne le choix de l'API à utiliser. A cette question je réponds à mon tour par une série de questions que je reprends aujourd'hui pour vous donner quelques pistes de réflexion.

Avec quelle plateforme de développement vous sentez-vous le plus à l'aise ?

Toutes ces APIs consommes les services web d'ArcGIS Server, elles sont donc toutes assez proches en termes de fonctionnalités ainsi la question "Qu'est ce que vous voulez faire ?" devient désormais "Quelle plateforme de développement maîtrisez-vous le mieux ?". Si vous avez déjà une solide expérience avec la plateforme Microsoft .Net alors le Web ADF .Net ou Silverlight seront des bons choix. De la même manière si vous travaillez depuis 10 ans sur des applications web ArcIMS en développant des scripts, l'API JavaScript sera un meilleur choix pour vous.

Choisir une plateforme que vos développeurs connaissent déjà bien vous permet de faire des économies de coûts et d'entretenir leur motivation. Ce simple fait d'avoir le choix est un point essentiel pour démarrer votre projet avec ArcGIS Server plutôt qu'une autre solution.

Quel niveau et quelle expérience ont vos développeurs ?

Les développeurs débutant trouvent souvent que les API JavaScript, Flex et Silverlight sont plus simples à appréhender que les Web ADFs car l'architecture est plus simple. Pour ces API web, les centres de ressources en ligne d'ESRI proposent beaucoup de tutoriaux, d'exemple de code, des vidéos et des services de tests spécialement conçus pour les développeurs débutants. Par exemple, grâce à ses ressources, avec un Notepad et une connexion Internet un développeur peut en quelques minutes rapidement créer une application cartographique basée sur l'API JavaScript.

A l'inverse, les développeurs plus confirmés apprécieront l'accès bas niveau aux fonctionnalités et le les patterns de codage des ADFs .Net et Java dont ils sont familiers. En particulier, les développeurs .Net et Java ayant déjà manipulé les ArcObjects seront à l'aise avec Web ADFs.

Est-ce que l'usage d'un plug-in dans le navigateur en envisageable ?

Les APIs Flex et Silverlight nécessite la présence d'un plug-in dans le navigateur du client. Si vous ne pouvez satisfaire cette exigence, l'API JavaScript ou les Web ADFs devront être privilégié.

L'API Flex nécessite le plug-in Flash qui est présente (selon Adobe asserts) sur 99% des postes ayant accès à Internet. Le plug-in Silverlight n'en est pas à ce niveau d'ubiquité mais on peut imaginer que ce retard sera rapidement comblé dans les années à venir.

Les plug-ins existent dans différentes versions ce qui pose éventuellement un problèmes d'incompatibilités ou de dégradations de l'expérience utilisateurs vis-à-vis de votre applications web. Il est donc important, si vous vous orientez vers les options Flex ou Silverlight, de considérer la latitude que vous avez sur les versions supportées par votre application et sur la capacité des clients à mettre à jour la version du plug-in pour utiliser votre application. Pour l'API Flex, les versions 9 ou supérieures du player Flash sont supportées. Pour l'API Silverlight, les versions 2 ou supérieures sont supportées.

Dans les futures versions des APIs Flex et Silverlight, des versions plus récentes seront probablement nécessaires pour exploiter au mieux les dernières innovations des ces technologies de RIA.

Souhaitez-vous utiliser une IDE, si oui laquelle ?

Lorsque vous choisissez une API, vous faites souvent le choix indirectement de l'IDE (Integrated Development Environment) dans laquelle vous allez coder. Pour Flex, vous allez probablement opter pour Flex Builder. Pour .Net et Silverlight, vous opterez probablement pour la plateforme Visual Studio ou Visual Web Developer Express. Dans certains cas, vous utiliserez également pour Silverlight l'outil Expression Blend pour le Design et la conception avancée d'IHM. Les développeurs utilisant le Web ADF Java choisiront peut être Eclipse ou NetBeans. Enfin, les développeurs JavaScript auront beaucoup plus de choix car ils pourront utiliser du simple éditeur de texte aux environnements plus évolués comme Aptana Studio ou encore JSEditor for Eclipse.

Les arguments pour et contre chacune de ces IDE ne seront pas traitées ici mais ce qu'il faut retenir c'est que chacune de ces API d'ArcGIS Server intègre les ressources nécessaires pour bien s'intégrer à ces principaux environnements de développement.

Avez-vous besoins de mettre à jour les entités via le web ?

Une autre question importante concerne l'accès à des fonctionnalités de mises à jour d'entités (spatiales et attributaires) dans vos applications web. Au-delà de l'environnement de mise à jour prêt à l'emploi dans les modèles d'application de base (WebMap), les Web ADFs .Net et Java donnent accès aux couches basses des ArcObjects et permet donc d'aller très loin dans les opérations de modification des données via le Web.

Pour les APIs JavaScript, Flex et Silverlight ces fonctionnalités ne sont pas disponibles mais peuvent s'implémentées aujourd'hui en étendant l'API Rest d'ArcGIS Server. Ces fonctionnalités de mises à jour sont en cours de développement et seront disponibles à partir de la version 10 d'ArcGIS (mi-2010).

Avez-vous besoin de superposer vos données aux fonds de carte Microsoft ou Google ?

Votre application a peut être besoin de s'appuyer sur des fonds de carte issues de la plateforme Microsoft Bing Maps (anciennement Virtual Earth) ou Google Maps. Ce paramètre peut influencer le choix de l'API à utiliser.
  • Bing Maps est supporté en tant que couche de fond de carte dans les API JavaScript, Flex et Silverlight ainsi qu'avec le Web ADF .Net. Une autre option est d'utiliser directement l'API Bing Maps avec l'extension Bing Maps de l'API JavaScript ArcGIS.
  • Google Maps est supporté en utilisant directement l'API Google Maps avec l'extension Google Maps de l'API JavaScript ArcGIS.

Etes-vous plus à l'aise avec des technologies matures ou des technologies émergentes ?

Certaines entreprises abordent les nouvelles technologies avec la plus grande prudence alors que d'autres y voit une chance de développer des choses nouvelles et innovantes. Cette attitude vis à vis de la maturité des technologies est importante à considérer en particulier si vous choisissez entre une technologie très mature comme JavaScript, et Silverlight qui est né fin 2007. Cette question est une question de culture et de point de vue des responsables informatiques mais elle pèse lourdement dans le choix.

Avez-vous discuté avec d'autres utilisateurs de ce qui a pesé dans leur choix ?

Les conférences ESRI, les forums de discussion, les groupes d'utilisateurs et les blogs sont autant de sources d'information de la part d'organisations qui ont déjà eu cette réflexion. Je sais pour ma part que certains lecteurs de ce blog ont déjà eu ces réflexions et même utilisés largement certaines de ces technologies. Il y a probablement des expériences intéressantes à partager sur ce sujet, n'hésitez donc pas à poster vos commentaires au bas de cet article !

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

1 comments :

n314 a dit…

http://eriknyberg.net/post/2010/04/07/Devsummit-2010.aspx

ESRI about the webADF:
The webADF is what we consider a mature product at 10. So what we have done for version 10 is to put in the most requested features to finish it off in terms of the feature set. The future is the webAPIs such as Silverlight, Flex and Javascript. The reason for the shift of focus is not just ESRI, its the way the industry is going. We will maintain the webADF and it will be supported but we are not doing active development on the webADF.
(check out the video “Getting More out of Your .NET Web ADF Application” for the whole answer)