На форуме Esri пользователь Matt Moyles предположил, что подход, используемый в примерах Esri JS, не подходит для надежной разработки веб-картографического приложения с использованием HTML, JavaScript и CSS:
Предложенный ESRI подход к разработке приложений на javascript является древним и устаревшим. Я не рекомендовал бы следовать образцам. Dojo 1.7 поддерживает AMD с асинхронной загрузкой зависимостей. Я бы начал с шаблонного шаблона dojo и «работал» над этим. Образцы не подходят для серьезных разработчиков приложений. Они в основном просто доказательство концептуальных фрагментов.
Серьезное приложение должно быть разработано с помощью какой-то структуры, чтобы помочь структурировать вещи. Я использую dojox.mvc с большим успехом! Но другие варианты включают такие вещи, как backbone.js, spine.js или даже javascript MVC.
Dojo Boilerplate - https://github.com/csnover/dojo-boilerplate
- Кто-нибудь согласен / не согласен с этим утверждением?
- Существуют ли в Интернете примеры лучших подходов к разработке веб-приложений с использованием ArcSIS Server JS API?
источник
Ответы:
Я согласен с Мойлсом в том, что образцы - это просто образцы, и додзё боилеплит является отличным ресурсом, однако в настоящее время примерный анализ не является жизнеспособным решением. У вас там две разные версии додзё. Текущая версия js api по-прежнему использует классический синтаксис require dojo 1.6.1 и не поддерживает AMD. Я уверен, что более новый js api будет построен на 1.7.x, и поскольку преобразование классических модулей dojo.defined в AMD в основном тривиально, я бы выбрал этот путь.
Если вы начинаете свой проект сейчас, я бы выбрал любую серверную инфраструктуру, которую вы хотите использовать (если это необходимо для вашего приложения. Если это просто просмотрщик одной страницы без требований на стороне сервера, то не усложняйте ситуацию). Это могут быть рельсы, php, asp, что угодно. Следуйте лучшим практикам для вашей структуры / языка.
Затем, поскольку esri построен на dojo, вы уже загружаете отличную среду js для создания крупномасштабных веб-приложений. Структурируйте свой код так, чтобы загрузчик dojo мог загружать ваши виджеты и модули с помощью dojo, требующего синтаксиса. Пишите виджеты и модули dojo, при необходимости используйте dijits и инструменты dojox ( 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 ). Не пишите in-js как образцы. Создатьпостроить профиль, чтобы оптимизировать весь ваш код, когда его время для производства.
Вы должны держать свой esri и пользовательский код в определенной степени отдельно, потому что они не предлагают источник для компиляции - он уже собран и минимизирован. Инструменту сборки это не очень нравится.
РЕДАКТИРОВАТЬ
Я создал инструмент grunt esri_slurp для загрузки esri js api, чтобы вы могли использовать его в качестве пакета в своих приложениях. Это позволяет запустить сборку и получить один файл.
источник
Должно быть совершенно очевидно, что образцы не предназначены для серьезных приложений: это образцы.
Тем не менее, в типичном мире Интернета гораздо реже использовать что-то вроде Backbone, чем использовать dojo, которое известно как обширное и сложное, но часто ненужное.
Если бы вы могли более подробно описать свою цель, было бы легче дать твердую рекомендацию. Такие вещи, как Backbone, написаны для полноценных приложений на стороне клиента - поэтому, если вы фактически выполняете большую часть своей работы на PHP, ASP или nodejs, это менее необходимо. Или, если вам не нужны несколько страниц и все просмотры, вы можете легко обойтись просто с помощью jQuery или вообще без фреймворка.
источник
Полностью согласен. ESRI - это javascript api, я чувствую, что они конкурируют с ArcGIS Viewer для Flex. Образцы - не что иное, как подтверждение концепции того, как вы можете использовать их ди-джиты ... Мне бы хотелось, чтобы они просто предоставляли простой чистый API-интерфейс javascript и позволяли пользователю решать, какие фреймворки использовать, например, Bing, Google, Openlayers и некоторые другие. ..
источник
jsRevolution, новая JavaScript-инфраструктура и инструмент сборки OmniStation, является самой надежной коммерчески доступной платформой на рынке. Он предназначен для крупномасштабных развертываний нетривиальных приложений. Я представляю OmniStation. Наши клиенты могут иметь 100 или 1000 классов, от 10 до 100 разработчиков. В то время как эти клиенты сочтут эту среду незаменимой, jsRevolution полезна для определенных приложений, в которых всего 25 классов.
Многие функции jsRevolution включают в себя: асинхронную загрузку, пространство имен без кода, переключаемое представление кода с URL (от разработки до развертывания), наследование без кода с проверкой во время сборки, интерфейс без кода с проверкой во время загрузки, абстракцию без кода (иногда называемую Mixin), возможность идентифицировать ресурс как класс экземпляра, Multi-Versioning (несколько версий классов в одном приложении - просто выполнить) и многие другие функции.
источник