Какая инфраструктура лучше всего подходит для надежной реализации приложения с использованием ArcSIS Server JS API?

13

На форуме 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?
Стивен Лид
источник
1
да dojo 1.7 использует AMD, но последняя версия esri js api построена поверх dojo 1.6.1, а пакеты / модули слоев, которые они обслуживают или могут загрузить, не в формате AMD. Поэтому это не просто работает. Кажется глупым загружать js api (dojo 1.6.1) и dojo 1.7 только для использования AMD
Steve
Я только что заметил, что в этом году на саммите разработчиков Esri состоится сессия по backbone.js .
Стивен Лид
У меня возникли проблемы с использованием последней модели додзё. Я вернулся к стандартному пакету 1.6.1, потому что это то, что поддерживает esri. ESRI будет проб. выпустить AMD версию своего API для Dojo 2.0. Вот примерный проект, который я использовал blog.rebeccamurphey.com/a-dojo-boilerplate (Мэтт
Мойлс

Ответы:

10

Я согласен с Мойлсом в том, что образцы - это просто образцы, и додзё боилеплит является отличным ресурсом, однако в настоящее время примерный анализ не является жизнеспособным решением. У вас там две разные версии додзё. Текущая версия 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, чтобы вы могли использовать его в качестве пакета в своих приложениях. Это позволяет запустить сборку и получить один файл.

Стив
источник
3

Должно быть совершенно очевидно, что образцы не предназначены для серьезных приложений: это образцы.

Тем не менее, в типичном мире Интернета гораздо реже использовать что-то вроде Backbone, чем использовать dojo, которое известно как обширное и сложное, но часто ненужное.

Если бы вы могли более подробно описать свою цель, было бы легче дать твердую рекомендацию. Такие вещи, как Backbone, написаны для полноценных приложений на стороне клиента - поэтому, если вы фактически выполняете большую часть своей работы на PHP, ASP или nodejs, это менее необходимо. Или, если вам не нужны несколько страниц и все просмотры, вы можете легко обойтись просто с помощью jQuery или вообще без фреймворка.

tmcw
источник
1
если код esri построен поверх dojo, зачем вам использовать что-то кроме dojo? Додзё может делать все то, что может сделать магистраль и jquery. Вы уже загружаете очень функциональные фреймворки, зачем рекомендовать загружать другие?
Стив
@ tmcw достаточно справедливо, чтобы образец инструмента идентификации не использовался для разработки приложения - но как насчет более полных примеров на основе ArcGIS.com ? Esri на неправильном пути с этим?
Стивен Лид
@tmcw, что касается моей цели, вот пример сайта, над которым я работал, используя подход Esri Dojo. Если бы я должен был начать это снова завтра, я должен сделать это по-другому?
Стивен Лид
2
@ Стив да, есть запись разговора здесь, если вам интересно.
Стивен Лид
1
@ StefhenLead я был там :)
Стив
-3

Полностью согласен. ESRI - это javascript api, я чувствую, что они конкурируют с ArcGIS Viewer для Flex. Образцы - не что иное, как подтверждение концепции того, как вы можете использовать их ди-джиты ... Мне бы хотелось, чтобы они просто предоставляли простой чистый API-интерфейс javascript и позволяли пользователю решать, какие фреймворки использовать, например, Bing, Google, Openlayers и некоторые другие. ..

Захид Чаудхри
источник
-4

jsRevolution, новая JavaScript-инфраструктура и инструмент сборки OmniStation, является самой надежной коммерчески доступной платформой на рынке. Он предназначен для крупномасштабных развертываний нетривиальных приложений. Я представляю OmniStation. Наши клиенты могут иметь 100 или 1000 классов, от 10 до 100 разработчиков. В то время как эти клиенты сочтут эту среду незаменимой, jsRevolution полезна для определенных приложений, в которых всего 25 классов.

Многие функции jsRevolution включают в себя: асинхронную загрузку, пространство имен без кода, переключаемое представление кода с URL (от разработки до развертывания), наследование без кода с проверкой во время сборки, интерфейс без кода с проверкой во время загрузки, абстракцию без кода (иногда называемую Mixin), возможность идентифицировать ресурс как класс экземпляра, Multi-Versioning (несколько версий классов в одном приложении - просто выполнить) и многие другие функции.

К. Райан Хассе
источник
Привет Райан, добро пожаловать на наш сайт! Я внес незначительные изменения в ваш ответ, чтобы соответствовать нашей политике в отношении коммерческих сообщений. Для получения дополнительной информации, пожалуйста, обратитесь к нашему FAQ . Если вы хотите, чтобы люди связывались с вами, вы можете использовать свой профиль пользователя для представления контактной информации.
whuber
1
У вас есть ссылка на сайт картографирования API ArcGIS JS, использующий вашу технологию? В противном случае этот ответ слишком похож на спам.
Девдатта Тенгше