Quelle infrastructure est la meilleure pour implémenter une application de manière robuste, à l'aide de l'API ArcGIS Server JS?


13

Sur le forum Esri , l'utilisateur Matt Moyles a suggéré que l'approche utilisée dans les exemples Esri JS ne convient pas au développement robuste d'une application de cartographie Web utilisant HTML, JavaScript et CSS:

L'approche suggérée par ESRI pour le développement d'applications javascript est ancienne et obsolète. Je ne recommanderais pas de suivre les échantillons. Dojo 1.7 prend en charge AMD avec chargement de dépendance asynchrone. Je commencerais par le modèle de passe-partout dojo et "travaillerais" l'api arcgis dans cela. Les exemples ne conviennent pas aux développeurs d'applications sérieux. Ce ne sont pour la plupart que des extraits de preuve de concept.

Une application sérieuse devrait être développée à l'aide d'une sorte de cadre pour aider à structurer les choses. J'utilise dojox.mvc avec beaucoup de succès! Mais d'autres options incluent des choses comme backbone.js, spine.js ou même MVC javascript.

Dojo Boilerplate - https://github.com/csnover/dojo-boilerplate

  • Quelqu'un est-il d'accord / en désaccord avec cette déclaration?
  • existe-t-il des exemples en ligne de meilleures approches pour le développement d'applications Web à l'aide de l'API ArcGIS Server JS?

1
oui dojo 1.7 utilise AMD mais la dernière api esri js est construite au-dessus de dojo 1.6.1 et les packages / modules de couche qu'ils servent ou que vous pouvez télécharger ne sont pas au format AMD. Par conséquent, cela ne fonctionnerait pas seulement. Il semble idiot de charger les js api (dojo 1.6.1) et dojo 1.7 juste pour utiliser AMD
Steve

Je viens de remarquer qu'il y a une session sur backbone.js au Esri Developer Summit cette année.
Stephen Lead

J'ai eu des ennuis en utilisant le dernier passe-partout de dojo. Je suis retombé dans un package passe-partout 1.6.1 car c'est ce que supporte esri. ESRI va prob. libérer la version AMD de leur API pour dojo 2.0. Voici le projet passe- partout que j'ai utilisé blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
dubvfan87

Réponses:


10

Je conviens avec Moyles que les échantillons ne sont que des échantillons et que la plaque bouillante dojo est une excellente ressource, mais la plaque chauffante snovers actuelle n'est pas une solution viable. Vous disposez de deux versions différentes de dojo. L'API js actuelle utilise toujours la syntaxe classique requise de dojo 1.6.1 et ne prend pas en charge AMD. Je suis sûr qu'une nouvelle API js sera construite sur 1.7.x et comme la conversion de modules classiques dojo.defined en AMD est pour la plupart triviale, je choisirais cette route.

Si vous démarrez votre projet maintenant, je choisirais le framework côté serveur que vous souhaitez utiliser (si cela est nécessaire pour votre application. Si c'est juste une visionneuse de page unique sans exigences côté serveur, ne compliquez pas trop les choses). Il peut s'agir de rails, php, asp, peu importe. Suivez les meilleures pratiques pour votre framework / langage.

Puis, comme esri est construit sur dojo, vous chargez déjà un excellent framework js pour créer des applications web à grande échelle. Structurez votre code afin que le chargeur du dojo puisse charger vos widgets et modules avec le dojo requiert la syntaxe. Écrivez des widgets et des modules dojo, utilisez des dijits et des outils dojox si nécessaire ( http://dojotoolkit.org/documentation/tutorials/1.6/declare , http://dojotoolkit.org/documentation/tutorials/1.6/recipes/custom_widget/ , http : //dojotoolkit.org/documentation/tutorials/1.6/understanding_widget , http://dojotoolkit.org/documentation/tutorials/1.6/templated , http://dojotoolkit.org/documentation/tutorials/1.6/cdn ). N'écrivez pas js en ligne comme le font les échantillons. Créer uncréer un profil pour optimiser tout votre code au moment de sa production.

Vous devez garder votre esri et votre code personnalisé séparés dans une certaine mesure car ils n'offrent pas la source de compilation - il est déjà construit et minifié. L'outil de construction n'aime pas tellement ça.

ÉDITER

J'ai construit un outil de grognement, esri_slurp pour télécharger l'api esri js afin que vous puissiez l'utiliser comme package dans vos applications. Cela vous permet d'exécuter la génération et d'obtenir un seul fichier.


3

Il devrait être assez évident que les échantillons ne sont pas destinés à être des applications sérieuses: ce sont des échantillons.

Cela dit, il est beaucoup moins courant, dans le monde Internet typique, d'utiliser quelque chose comme Backbone que d'utiliser le dojo, qui est connu pour être expansif et complexe, mais souvent inutile.

Si vous pouviez décrire davantage votre objectif, il serait plus facile de faire une recommandation solide. Des trucs comme Backbone sont écrits pour des applications côté client complètes - donc si vous faites en fait la plupart de votre travail en PHP ou ASP ou nodejs, c'est moins nécessaire. Ou si vous n'avez pas besoin de plusieurs pages et vues toutes câblées, vous pouvez facilement vous en tirer avec juste jQuery, ou pas de cadre du tout.


1
si le code esri est construit au-dessus de dojo, pourquoi utiliseriez-vous autre chose que dojo? Dojo peut faire tout ce que le backbone peut faire et jquery. Vous chargez déjà un framework très performant, pourquoi recommanderiez-vous d'en charger d'autres?
Steve

@tmcw assez juste pour que l' exemple de l' outil d'identification ne soit pas utilisé pour développer une application - mais qu'en est-il des exemples plus complets basés sur ArcGIS.com ? Esri est-il sur la mauvaise voie avec ces derniers?
Stephen Lead

@tmcw quant à mon objectif, voici un exemple de site sur lequel j'ai travaillé, en utilisant l'approche Esri Dojo. Si je devais recommencer demain, devrais-je le faire différemment?
Stephen Lead

2
@Steve yep, il y a un enregistrement de la conférence ici si vous êtes intéressé.
Stephen Lead

1
@StephenLead j'étais là :)
Steve

-3

Entièrement d'accord. ESRI est une API javascript, j'ai l'impression qu'ils sont en concurrence avec ArcGIS Viewer for Flex. Les exemples ne sont rien d'autre qu'une preuve de concept selon laquelle vous pouvez utiliser leurs dijits ... Je souhaite qu'ils fournissent simplement une API javascript simple et laissent l'utilisateur décider du cadre que les gens vont utiliser comme Bing, Google, Openlayers et plusieurs autres. ..


-4

jsRevolution, le nouveau framework et outil de construction d'OmniStation, est le framework le plus robuste du marché. Il est conçu pour les déploiements à grande échelle d'applications non triviales. Je représente OmniStation. Nos clients peuvent avoir 100 ou 1000 classes, 10 voire 100 développeurs. Alors que ces clients trouveront le framework indispenable, jsRevolution est pratique pour certaines applications avec aussi peu que 25 classes.

Les nombreuses fonctionnalités de jsRevolution incluent: le chargement asynchrone, l'espace de noms sans code, la vue de code commutable par URL (du développeur au déploiement), l'héritage sans code avec la validation au moment de la construction, l'interface sans code avec la validation du temps de chargement, l'abstraction sans code (parfois appelée Mixin), la capacité pour identifier une ressource en tant que classe d'instance, Multi-Versioning (plusieurs versions de classes dans la même application - simple à exécuter), et de nombreuses autres fonctionnalités.


Salut Ryan, bienvenue sur notre site! J'ai apporté des modifications mineures à votre réponse afin de nous conformer à notre politique concernant les publications commerciales. Pour plus d'informations, veuillez consulter notre FAQ . Si vous souhaitez que des personnes vous contactent, vous pouvez utiliser votre profil d'utilisateur pour présenter vos coordonnées.
whuber

1
Avez-vous un lien vers un site de cartographie ArcGIS JS API utilisant votre technologie? Sinon, cette réponse ressemble trop à du spam.
Devdatta Tengshe
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.