Kerangka kerja mana yang terbaik untuk mengimplementasikan aplikasi dengan kuat, menggunakan ArcGIS Server JS API?

13

Selama di forum Esri , pengguna Matt Moyles menyarankan bahwa pendekatan yang digunakan dalam sampel Esri JS tidak cocok untuk pengembangan yang kuat dari aplikasi pemetaan web menggunakan HTML, JavaScript dan CSS:

Pendekatan yang disarankan ESRI untuk pengembangan aplikasi javascript sudah kuno dan ketinggalan zaman. Saya tidak akan merekomendasikan mengikuti sampel. Dojo 1.7 mendukung AMD dengan memuat ketergantungan Asynchronous. Saya akan mulai dengan template dojo boilerplate dan "bekerja" api arcgis ke dalamnya. Sampel tidak cocok untuk pengembang aplikasi yang serius. Mereka kebanyakan hanya bukti cuplikan konsep.

Aplikasi serius harus dikembangkan dengan bantuan semacam kerangka kerja untuk membantu menyusun berbagai hal. Saya telah menggunakan dojox.mvc dengan sangat sukses! Tetapi opsi lain termasuk hal-hal seperti backbone.js, spine.js, atau bahkan javascript MVC.

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

  • apakah ada yang setuju / tidak setuju dengan pernyataan ini?
  • Adakah contoh online dari pendekatan yang lebih baik untuk pengembangan aplikasi web menggunakan ArcGIS Server JS API?
Stephen Lead
sumber
1
ya dojo 1.7 menggunakan AMD tetapi esri js api terbaru dibangun di atas dojo 1.6.1 dan paket lapisan / modul yang mereka layani atau Anda dapat unduh tidak dalam format AMD. Karena itu tidak hanya bekerja. Tampaknya konyol untuk memuat js api (dojo 1.6.1) dan dojo 1.7 hanya menggunakan AMD
Steve
Saya hanya memperhatikan bahwa ada sesi di backbone.js di Esri Developer Summit tahun ini.
Stephen Lead
Saya mengalami masalah menggunakan boilerplate dojo terbaru. Saya kembali ke paket boilerplate 1.6.1 karena itulah yang didukung esri. ESRI akan prob. merilis versi AMD API mereka untuk dojo 2.0. Ini adalah proyek boilerplate yang saya gunakan di blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
dubvfan87

Jawaban:

10

Saya setuju dengan Moyles bahwa sampel hanya sampel dan dojo boileplate adalah sumber yang bagus namun pada saat ini snplate boilerplate bukan solusi yang layak. Anda memiliki dua versi dojo yang berbeda di sana. Js api saat ini masih menggunakan klasik memerlukan sintaks dojo 1.6.1 dan tidak mendukung AMD. Saya yakin bahwa js api yang lebih baru akan dibangun pada 1.7.x dan karena mengkonversi modul dojo.defined klasik ke AMD sebagian besar sepele saya akan memilih rute itu.

Jika Anda memulai proyek Anda sekarang maka saya akan memilih kerangka sisi server apa pun yang ingin Anda gunakan (jika diperlukan untuk aplikasi Anda. Jika hanya satu halaman penampil tanpa persyaratan sisi server maka jangan terlalu rumit). Bisa jadi rel, php, asp, apa pun. Ikuti praktik terbaik untuk kerangka / bahasa Anda.

Kemudian karena esri dibangun di atas dojo, Anda sudah memuat kerangka js yang bagus untuk membuat aplikasi web skala besar. Struktur kode Anda sehingga loader dojo dapat memuat widget dan modul Anda dengan dojo memerlukan sintaksis. Tuliskan widget dan modul dojo, gunakan dijit dan alat dojox bila perlu ( 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 ). Jangan menulis inline js seperti sampel. Membuatbuat profil untuk mengoptimalkan semua kode Anda ketika saatnya diproduksi.

Anda harus menjaga kode esri dan kustom Anda terpisah pada tingkat tertentu karena mereka tidak menawarkan sumber untuk dikompilasi - itu sudah dibangun dan diperkecil. Alat build tidak begitu menyukainya.

EDIT

Saya membuat alat kasar, esri_slurp untuk mengunduh esri js api sehingga Anda dapat menggunakannya sebagai paket di aplikasi Anda. Ini memungkinkan Anda untuk menjalankan build dan mendapatkan satu file.

Steve
sumber
3

Seharusnya cukup jelas bahwa sampel tidak dimaksudkan untuk menjadi aplikasi serius: mereka sampel.

Yang mengatakan, itu jauh lebih umum, di dunia internet yang khas, untuk menggunakan sesuatu seperti Backbone daripada menggunakan dojo, yang dikenal ekspansif dan kompleks, tetapi seringkali tidak perlu.

Jika Anda dapat lebih mendeskripsikan tujuan Anda, akan lebih mudah untuk membuat rekomendasi yang solid. Hal-hal seperti Backbone ditulis untuk aplikasi sisi klien lengkap - jadi jika Anda benar-benar melakukan sebagian besar pekerjaan Anda di PHP atau ASP atau nodejs, itu kurang perlu. Atau jika Anda tidak membutuhkan banyak halaman dan tampilan semua terhubung, Anda dapat dengan mudah bertahan hanya dengan jQuery, atau tidak ada kerangka sama sekali.

tmcw
sumber
1
jika kode esri dibangun di atas dojo mengapa Anda menggunakan apa pun selain dojo? Dojo dapat melakukan semua hal yang bisa dilakukan oleh backbone dan jquery. Anda sudah memuat kerangka kerja yang sangat cakap, mengapa Anda menyarankan memuat yang lain?
Steve
@ tmcw cukup adil sehingga sampel alat identifikasi tidak boleh digunakan untuk mengembangkan aplikasi - tetapi bagaimana dengan sampel berbasis ArcGIS.com yang lebih lengkap ? Apakah Esri berada di jalur yang salah dengan ini?
Stephen Lead
@ tmcw untuk tujuan saya, berikut adalah contoh situs yang saya kerjakan, menggunakan pendekatan Esri Dojo. Jika saya memulainya lagi besok, haruskah saya melakukannya secara berbeda?
Stephen Lead
2
@Steve ya, ada rekaman pembicaraan di sini jika Anda tertarik.
Stephen Lead
1
@StephenLead aku ada di sana :)
Steve
-3

Setuju. ESRI adalah javascript api, saya merasa mereka bersaing dengan ArcGIS Viewer untuk Flex. Sampel hanyalah bukti konsep bahwa bagaimana Anda dapat menggunakan dijit mereka ... Saya berharap mereka hanya menyediakan API javascript murni sederhana, dan biarkan pengguna memutuskan kerangka kerja yang akan digunakan orang seperti Bing, Google, Openlayers dan beberapa lainnya. ..

Zahid Chaudhry
sumber
-4

jsRevolution, Kerangka JavaScript dan Alat Bangun baru OmniStation, adalah kerangka kerja yang tersedia paling kuat di pasaran. Ini dirancang untuk penyebaran aplikasi non-sepele skala besar. Saya mewakili OmniStation. Klien kami mungkin memiliki 100-an atau 1000-an kelas, 10 bahkan 100-an pengembang. Sementara klien-klien ini akan menemukan kerangka kerja tidak bisa ditembus, jsRevolution praktis untuk aplikasi tertentu dengan sedikitnya 25 kelas.

Banyak fitur jsRevolution meliputi: Asynchronous Loading, Codeless Namespacing, URL Switchable Code View (dari Dev to Deploy), Codeless Inheritance dengan build-time validation, Codeless Interface dengan load-time validation, Abstraksi Codeless (kadang-kadang disebut sebagai Mixin), kemampuan untuk mengidentifikasi sumber daya sebagai instance instance, Multi-Versioning (beberapa versi kelas dalam aplikasi yang sama -sederhana untuk dieksekusi), dan banyak fitur lainnya.

K. Ryan Hasse
sumber
Halo Ryan, selamat datang di situs kami! Saya telah mengedit jawaban Anda untuk mematuhi kebijakan kami tentang pos komersial. Untuk informasi lebih lanjut, silakan lihat faq kami . Jika Anda ingin orang lain menghubungi Anda, Anda dapat menggunakan profil pengguna Anda untuk menyajikan informasi kontak.
whuber
1
APAKAH Anda memiliki tautan situs pemetaan API ArcGIS JS menggunakan teknologi Anda? Kalau tidak, jawaban ini hanya terasa seperti spam.
Devdatta Tengshe