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?
quelle
Antworten:
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.
quelle
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.
quelle
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. ..
quelle
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.
quelle