Welches Framework ist am besten geeignet, um eine Anwendung mit der ArcGIS Server JS-API robust zu implementieren?


13

Im Esri-Forum schlug Benutzer Matt Moyles vor, dass der in den Esri-JS-Beispielen verwendete Ansatz nicht für die robuste Entwicklung einer Web-Mapping-Anwendung mit HTML, JavaScript und CSS geeignet sei:

Der von ESRI vorgeschlagene Ansatz zur Entwicklung von Javascript-Anwendungen ist veraltet und veraltet. Ich würde nicht empfehlen, den Beispielen zu folgen. Dojo 1.7 unterstützt AMD beim asynchronen Laden von Abhängigkeiten. Ich würde mit der Dojo-Boilerplate-Vorlage beginnen und die Arcgis-API in diese "einarbeiten". Die Beispiele sind nicht für ernsthafte Anwendungsentwickler geeignet. Meist handelt es sich nur um Proof-of-Concept-Schnipsel.

Eine seriöse Anwendung sollte mit Hilfe eines Frameworks entwickelt werden, das bei der Strukturierung hilft. Ich benutze dojox.mvc mit großem Erfolg! Andere Optionen umfassen Dinge wie backbone.js, spine.js oder sogar Javascript MVC.

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

  • Ist jemand mit dieser Aussage einverstanden / nicht einverstanden?
  • Gibt es Online-Beispiele für bessere Ansätze zur Entwicklung von Webanwendungen mithilfe der ArcGIS Server JS-API?

1
yes dojo 1.7 verwendet AMD, aber die neueste esri js-API basiert auf Dojo 1.6.1 und die Layer-Pakete / Module, die sie bereitstellen oder die Sie herunterladen können, sind nicht im AMD-Format. Deshalb würde es nicht einfach funktionieren. Es scheint dumm zu sein, das js api (dojo 1.6.1) und das dojo 1.7 zu laden, nur um AMD
Steve

Mir ist gerade aufgefallen, dass auf dem diesjährigen Esri Developer Summit eine Sitzung zu backbone.js stattfindet.
Stephen Lead

Ich hatte Probleme mit der neuesten Dojo-Heizplatte. Ich habe auf ein 1.6.1 Boilerplate-Paket zurückgegriffen, da esri dies unterstützt. ESRI wird prob. Veröffentlichung der AMD-Version ihrer API für Dojo 2.0. Hier ist das Boilerplate-Projekt, das ich verwendet habe blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
dubvfan87

Antworten:


10

Ich würde Moyles zustimmen, dass die Proben nur Beispiele sind und Dojo-Boileplate eine großartige Ressource darstellt, jedoch ist Boilerplate bei aktuellen Snovers keine praktikable Lösung. Sie haben zwei verschiedene Versionen von Dojo. Die aktuelle js-API verwendet weiterhin die klassische Syntax von Dojo 1.6.1 und unterstützt AMD nicht. Ich bin sicher, dass eine neuere js-API auf 1.7.x erstellt wird, und da das Konvertieren von klassischen dojo.defined-Modulen in AMD größtenteils trivial ist, würde ich diese Route wählen.

Wenn Sie Ihr Projekt jetzt starten, würde ich das von Ihnen gewünschte serverseitige Framework auswählen (wenn es für Ihre Anwendung erforderlich ist. Wenn es sich nur um einen einzelnen Seitenbetrachter ohne serverseitige Anforderungen handelt, sollten Sie die Dinge nicht übermäßig komplizieren). Es könnte Schienen, PHP, Asp, was auch immer sein. Befolgen Sie die Best Practices für Ihr Framework / Ihre Sprache.

Dann, da esri auf Dojo basiert, laden Sie bereits ein großartiges js-Framework für die Erstellung umfangreicher Webanwendungen. Strukturieren Sie Ihren Code so, dass der Lader des Dojos Ihre Widgets und Module mit der erforderlichen Dojo-Syntax laden kann. Write Dojo - Widgets und Module, die Verwendung Dijits und Dojox Werkzeuge bei Bedarf ( 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 ). Schreiben Sie keine Inline-Js wie in den Beispielen. Ein ... kreierenErstellen Sie ein Profil, um Ihren gesamten Code zu optimieren, wenn er für die Produktion benötigt wird.

Sie müssen Ihren esri und Ihren benutzerdefinierten Code bis zu einem gewissen Grad getrennt halten, da sie nicht die Quelle für das Kompilieren bieten - es ist bereits erstellt und minimiert. Das Build-Tool mag das nicht so sehr.

BEARBEITEN

Ich habe ein Grunt-Tool namens esri_slurp erstellt , um die esri js-API herunterzuladen, damit Sie sie als Paket in Ihren Anwendungen verwenden können. Auf diese Weise können Sie den Build ausführen und eine einzelne Datei abrufen.


3

Es sollte ziemlich offensichtlich sein, dass Beispiele keine ernstzunehmenden Anwendungen sind: Sie sind Beispiele.

Allerdings ist es in der typischen Internetwelt weitaus seltener, so etwas wie Backbone zu verwenden, als Dojo, das für seine Ausdehnung und Komplexität bekannt ist, aber oftmals unnötig ist.

Wenn Sie Ihr Ziel genauer beschreiben könnten, wäre es einfacher, eine solide Empfehlung abzugeben. Sachen wie Backbone wurden für vollständige clientseitige Anwendungen geschrieben. Wenn Sie also den größten Teil Ihrer Arbeit in PHP, ASP oder NodeJS erledigen, ist dies weniger notwendig. Wenn Sie nicht mehrere Seiten und Ansichten benötigen, die alle verkabelt sind, können Sie problemlos mit nur jQuery oder ohne Framework auskommen.


1
Wenn der Esri-Code auf Dojo basiert, warum sollten Sie etwas anderes als Dojo verwenden? Dojo kann all die Dinge tun, die Backbone kann und jquery. Sie laden bereits ein sehr leistungsfähiges Framework. Warum empfehlen Sie, andere zu laden?
Steve

@tmcw Angemessen genug, dass das Identifizierungs-Tool- Beispiel nicht zum Entwickeln einer Anwendung verwendet werden sollte - aber was ist mit den vollständigeren ArcGIS.com-basierten Beispielen ? Befindet sich Esri damit auf dem falschen Weg?
Stephen Lead

Für mein Ziel ist hier ein Beispiel einer Site, an der ich mit dem Esri Dojo-Ansatz gearbeitet habe. Wenn ich es morgen wieder anfangen sollte, sollte ich es anders machen?
Stephen Lead

2
@Steve yep, es gibt eine Aufzeichnung des Vortrags hier, wenn Sie interessiert sind.
Stephen Lead

1
@ StephenLead Ich war dort :)
Steve

-3

Stimme voll und ganz zu. ESRI ist Javascript-API. Ich habe das Gefühl, sie konkurrieren mit ArcGIS Viewer for Flex. Beispiele sind nichts anderes als ein Beweis für das Konzept, wie man ihre Dijits verwenden kann ... Ich wünschte, sie bieten nur eine einfache reine Javascript-API und lassen den Benutzer entscheiden, welches Framework Leute wie Bing, Google, Openlayers und einige andere verwenden. ..


-4

jsRevolution, das neue JavaScript-Framework und Build-Tool von OmniStation, ist das robusteste auf dem Markt erhältliche Framework. Es wurde für die Bereitstellung nicht trivialer Anwendungen in großem Maßstab entwickelt. Ich vertrete OmniStation. Unsere Kunden können 100er oder 1000er Klassen haben, 10er oder 100er Entwickler. Während diese Clients das Framework für unverzichtbar halten, ist jsRevolution für bestimmte Anwendungen mit nur 25 Klassen praktisch.

Zu den zahlreichen Funktionen von jsRevolution gehören: Asynchrones Laden, Codeless Namespacing, URL-umschaltbare Codeansicht (von Dev bis Deploy), Codeless Inheritance mit Build-Time-Validierung, Codeless Interface mit Load-Time-Validierung, Codeless Abstraction (manchmal auch als Mixin bezeichnet), die Fähigkeit Identifizieren einer Ressource als Instanzklasse, Multi-Versioning (mehrere Versionen von Klassen innerhalb derselben Anwendung - einfach auszuführen) und viele andere Funktionen.


Hallo Ryan, willkommen auf unserer Seite! Ich habe Ihre Antwort geringfügig geändert, um sie an unsere Richtlinien für kommerzielle Posts anzupassen. Weitere Informationen finden Sie in unserer FAQ . Wenn Sie möchten, dass sich Personen mit Ihnen in Verbindung setzen, können Sie Ihr Benutzerprofil verwenden, um Kontaktinformationen anzuzeigen.
Whuber

1
Haben Sie einen Link zu einer ArcGIS JS-API-Zuordnungssite, die Ihre Technologie verwendet? Ansonsten fühlt sich diese Antwort einfach zu sehr nach Spam an.
Devdatta Tengshe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.