¿Qué marco es mejor para implementar una aplicación de manera robusta, utilizando la API JS de ArcGIS Server?

13

En el foro de Esri , el usuario Matt Moyles sugirió que el enfoque utilizado en las muestras de Esri JS no es adecuado para el desarrollo robusto de una aplicación de mapeo web usando HTML, JavaScript y CSS:

El enfoque sugerido por ESRI para el desarrollo de aplicaciones javascript es antiguo y anticuado. No recomendaría seguir las muestras. Dojo 1.7 admite AMD con carga de dependencia asincrónica. Comenzaría con la plantilla repetitiva del dojo y "trabajaría" la API del arco en eso. Las muestras no son adecuadas para desarrolladores de aplicaciones serios. En su mayoría, son solo pruebas de fragmentos de conceptos.

Se debe desarrollar una aplicación seria con la ayuda de algún tipo de marco para ayudar a estructurar las cosas. ¡He estado usando dojox.mvc con gran éxito! Pero otras opciones incluyen cosas como backbone.js, spine.js o incluso javascript MVC.

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

  • ¿Alguien está de acuerdo / en desacuerdo con esta declaración?
  • ¿Existen ejemplos en línea de mejores enfoques para el desarrollo de aplicaciones web utilizando la API JS de ArcGIS Server?
Stephen Lead
fuente
1
sí, dojo 1.7 usa AMD, pero la última API de esri js está construida sobre dojo 1.6.1 y los paquetes / módulos de capa que sirven o que puedes descargar no están en formato AMD. Por lo tanto, no solo funcionaría. Parece una tontería cargar la js api (dojo 1.6.1) y el dojo 1.7 solo para usar AMD
Steve
Acabo de notar que hay una sesión en backbone.js en la Esri Developer Summit este año.
Stephen Lead el
Me encontré con problemas usando la última versión del dojo. Volví a un paquete 1.6.1 repetitivo ya que eso es lo que admite esri. ESRI será prob. lanza la versión AMD de su API para dojo 2.0. Aquí está el proyecto repetitivo que utilicé blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
dubvfan87

Respuestas:

10

Estoy de acuerdo con Moyles en que las muestras son solo muestras y dojo boileplate es un gran recurso, sin embargo, en los snovers actuales, boilerplate no es una solución viable. Tienes dos versiones diferentes de dojo pasando allí. La js api actual todavía utiliza la sintaxis clásica de dojo 1.6.1 y no es compatible con AMD. Estoy seguro de que se construirá una nueva api js en 1.7.xy que la conversión de módulos clásicos dojo.defined a AMD es en su mayoría trivial, elegiría esa ruta.

Si está comenzando su proyecto ahora, entonces elegiría el marco del lado del servidor que desea usar (si es necesario para su aplicación. Si es solo un visor de página sin requisitos del lado del servidor, entonces no complique las cosas). Podrían ser rieles, php, asp, lo que sea. Siga las mejores prácticas para su marco / idioma.

Entonces, dado que esri se basa en dojo, ya está cargando un gran marco js para crear aplicaciones web a gran escala. Estructura tu código para que el cargador del dojo pueda cargar tus widgets y módulos con la sintaxis de dojo. Escriba widgets y módulos dojo, use dijits y herramientas dojox cuando sea necesario ( 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 ). No escriba js en línea como lo hacen las muestras. Crear unCree un perfil para optimizar todo su código cuando llegue el momento de la producción.

Debe mantener su esri y su código personalizado separados hasta cierto punto porque no ofrecen la fuente para la compilación: ya está construido y minimizado. La herramienta de compilación no le gusta tanto.

EDITAR

Creé una herramienta ronca, esri_slurp, para descargar la API de esri js para que pueda usarla como un paquete en sus aplicaciones. Esto le permite ejecutar la compilación y obtener un solo archivo.

Steve
fuente
3

Debería ser bastante obvio que las muestras no están destinadas a ser aplicaciones serias: son muestras.

Dicho esto, es mucho menos común, en el mundo típico de Internet, usar algo como Backbone que usar dojo, que es conocido por ser expansivo y complejo, pero a menudo innecesario.

Si pudiera describir su objetivo más, sería más fácil hacer una recomendación sólida. Cosas como Backbone están escritas para aplicaciones completas del lado del cliente, por lo que si realmente está haciendo la mayor parte de su trabajo en PHP o ASP o nodejs, es menos necesario. O si no necesita varias páginas y vistas todas conectadas, puede pasar fácilmente con jQuery, o sin marco.

tmcw
fuente
1
si el código esri está construido sobre dojo, ¿por qué usarías algo más que dojo? Dojo puede hacer todas las cosas que backbone puede y jquery. Ya está cargando un marco muy capaz, ¿por qué recomendaría cargar otros?
Steve
@tmcw es lo suficientemente justo como para que la muestra de la herramienta de identificación no se use para desarrollar una aplicación, pero ¿qué pasa con las muestras más completas basadas en ArcGIS.com ? ¿Esri está en el camino equivocado con esto?
Stephen Lead el
@tmcw en cuanto a mi objetivo, aquí hay un ejemplo de un sitio en el que trabajé, utilizando el enfoque de Esri Dojo. Si tuviera que comenzar de nuevo mañana, ¿debería hacerlo de manera diferente?
Stephen Lead el
2
@ Steve sí, hay una grabación de la charla aquí si estás interesado.
Stephen Lead el
1
@StephenLead I was there :)
Steve
-3

Totalmente de acuerdo. ESRI es una API de JavaScript, siento que están compitiendo con ArcGIS Viewer for Flex. Las muestras no son más que una prueba de concepto de cómo puedes usar sus dijits ... Deseo que solo proporcionen una API de JavaScript pura y simple, y que el usuario decida qué marco usarán las personas como Bing, Google, Openlayers y varios otros. ..

Zahid Chaudhry
fuente
-4

jsRevolution, la nueva herramienta JavaScript Framework and Build Tool de OmniStation, es el framework más robusto disponible comercialmente en el mercado. Está diseñado para implementaciones a gran escala de aplicaciones no triviales. Represento a OmniStation. Nuestros clientes pueden tener 100 o 1000 de clases, 10 o incluso 100 de desarrolladores. Si bien estos clientes encontrarán que el marco es inexpugnable, jsRevolution es práctico para ciertas aplicaciones con tan solo 25 clases.

Las muchas características de jsRevolution incluyen: carga asincrónica, espacio de nombres sin código, vista de código conmutable de URL (de Dev a Deploy), herencia sin código con validación de tiempo de construcción, interfaz sin código con validación de tiempo de carga, abstracción sin código (a veces denominada Mixin), la capacidad para identificar un recurso como una clase de instancia, Multi-Versioning (múltiples versiones de clases dentro de la misma aplicación, simple de ejecutar) y muchas otras características.

K. Ryan Hasse
fuente
Hola Ryan, bienvenido a nuestro sitio! He realizado modificaciones menores en su respuesta para cumplir con nuestra política sobre publicaciones comerciales. Para más información, consulte nuestras preguntas frecuentes . Si desea que las personas se comuniquen con usted, puede usar su perfil de usuario para presentar información de contacto.
whuber
1
¿Tiene un enlace de un sitio de mapeo API ArcGIS JS utilizando su tecnología? De lo contrario, esta respuesta se siente demasiado como spam.
Devdatta Tengshe