เฟรมเวิร์กใดที่ดีที่สุดในการติดตั้งแอปพลิเคชั่นอย่างมีประสิทธิภาพโดยใช้ ArcGIS Server JS API


13

เหนือฟอรัม Esriผู้ใช้ Matt Moyles แนะนำว่าวิธีการที่ใช้ในตัวอย่าง Esri JS ไม่เหมาะสำหรับการพัฒนาแอปพลิเคชันการทำแผนที่เว็บอย่างมีประสิทธิภาพโดยใช้ HTML, JavaScript และ CSS:

แนวทางที่แนะนำของ ESRI ในการพัฒนาแอปพลิเคชันจาวาสคริปต์นั้นเก่าและล้าสมัยแล้ว ฉันจะไม่แนะนำต่อไปนี้ตัวอย่าง Dojo 1.7 รองรับ AMD พร้อมการโหลดการพึ่งพาแบบไม่ซิงค์ ฉันจะเริ่มต้นด้วยเทมเพลตสำเร็จรูปของ dojo และ "ทำงาน" arcgis api ลงไป ตัวอย่างไม่เหมาะสำหรับนักพัฒนาแอปพลิเคชันที่ร้ายแรง พวกมันส่วนใหญ่เป็นเพียงหลักฐานของตัวอย่างแนวคิด

ควรพัฒนาแอพพลิเคชั่นที่จริงจังด้วยความช่วยเหลือของกรอบบางอย่างเพื่อช่วยโครงสร้างสิ่งต่างๆ ฉันใช้ dojox.mvc ด้วยความสำเร็จอย่างมาก! แต่ตัวเลือกอื่น ๆ รวมถึงสิ่งต่าง ๆ เช่น backbone.js, spine.js หรือแม้แต่ javascript MVC

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

  • ไม่มีใครเห็นด้วย / ไม่เห็นด้วยกับคำสั่งนี้?
  • มีตัวอย่างออนไลน์ของแนวทางที่ดีกว่าในการพัฒนาเว็บแอปพลิเคชันโดยใช้ ArcGIS 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

ฉันเพิ่งสังเกตเห็นว่ามีเซสชั่นเกี่ยวกับ backbone.jsในการประชุมสุดยอด Esri Developer Summit ในปีนี้
สตีเฟ่นนำ

ฉันพบปัญหาในการใช้แผ่นเหล็กโดโจล่าสุด ฉันกลับไปที่แพคเกจแผ่นเหล็ก 1.6.1 เพราะนั่นคือสิ่งที่สนับสนุน ESRI ESRI จะตรวจสอบ API เวอร์ชัน API ของตนวางจำหน่ายสำหรับ dojo 2.0 นี่คือโครงการสำเร็จรูปที่ฉันใช้blog.rebeccamurphey.com/a-dojo-boilerplate (Matt Moyles)
dubvfan87

คำตอบ:


10

ฉันเห็นด้วยกับ Moyles ว่าตัวอย่างเป็นเพียงตัวอย่างและ dojo boileplate เป็นแหล่งข้อมูลที่ดี แต่ที่ snovers สำเร็จรูปในปัจจุบันไม่ได้เป็นทางออกที่ดี คุณมีโดโจสองรุ่นที่ต่างกันเกิดขึ้นที่นั่น js api ปัจจุบันยังคงใช้คลาสสิกที่ต้องการไวยากรณ์ของ 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 ) อย่าเขียน inline js เหมือนตัวอย่างที่ทำ สร้างสร้างโปรไฟล์เพื่อปรับรหัสทั้งหมดให้เหมาะสมเมื่อถึงเวลาผลิต

คุณต้องแยก ESRI และรหัสที่กำหนดเองให้อยู่ในระดับหนึ่งเพราะพวกเขาไม่ได้เสนอแหล่งที่มาสำหรับการรวบรวม - มันถูกสร้างขึ้นและย่อขนาด เครื่องมือสร้างไม่ชอบสิ่งนั้นมากนัก

แก้ไข

ฉันสร้างเครื่องมือที่น่ากลัว esri_slurpเพื่อดาวน์โหลดesri js api เพื่อให้คุณสามารถใช้เป็นแพ็คเกจในแอปพลิเคชันของคุณ สิ่งนี้อนุญาตให้คุณรันบิลด์และรับไฟล์เดียว


3

ควรเห็นได้ชัดว่าตัวอย่างไม่ได้หมายถึงแอปพลิเคชันที่ร้ายแรง: เป็นตัวอย่าง

ในโลกอินเทอร์เน็ตทั่วไปนั้นไม่ค่อยมีอะไรที่จะใช้Backboneมากกว่าการใช้ dojo ซึ่งเป็นที่รู้กันว่ากว้างขวางและซับซ้อน แต่มักไม่จำเป็น

หากคุณสามารถอธิบายวัตถุประสงค์ของคุณได้มากขึ้นมันจะเป็นการง่ายกว่าที่จะให้คำแนะนำที่ชัดเจน สิ่งต่าง ๆ เช่น Backbone นั้นเขียนขึ้นสำหรับแอปพลิเคชันฝั่งไคลเอ็นต์ - ดังนั้นถ้าคุณทำงานส่วนใหญ่ใน PHP หรือ ASP หรือ nodejs จริง ๆ แล้วมันไม่จำเป็น หรือถ้าคุณไม่ต้องการหลายเพจและดูการเชื่อมต่อทั้งหมดคุณสามารถทำได้ง่ายๆด้วย jQuery หรือไม่มีกรอบเลย


1
หากรหัส esri ถูกสร้างขึ้นที่ด้านบนของ dojo เหตุใดคุณจึงต้องใช้สิ่งอื่นนอกเหนือจาก dojo Dojo สามารถทำทุกสิ่งที่กระดูกสันหลังและ jquery คุณกำลังโหลดเฟรมเวิร์กที่มีความสามารถมากแล้วทำไมคุณถึงแนะนำให้โหลดเฟรมเวิร์กอื่น
Steve

พอยุติธรรม @tmcw ว่าเครื่องมือที่ระบุตัวอย่างไม่ควรที่จะใช้ในการพัฒนาแอพลิเคชัน - แต่สิ่งที่เกี่ยวกับความสมบูรณ์มากขึ้นตัวอย่าง ArcGIS.com ตาม ? Esri ผิดทางกับสิ่งเหล่านี้หรือไม่?
สตีเฟ่นนำ

@tmcw สำหรับวัตถุประสงค์ของฉันนี่คือตัวอย่างของเว็บไซต์ที่ฉันทำงานโดยใช้วิธีการของ Esri Dojo ถ้าฉันจะเริ่มต้นใหม่อีกครั้งพรุ่งนี้ฉันควรทำมันต่างออกไปไหม
สตีเฟ่นนำ

2
@ Steve ใช่มีการบันทึกคำพูดที่นี่หากคุณสนใจ
สตีเฟ่นนำ

1
@StephenLead ฉันอยู่ที่นั่น :)
Steve

-3

เห็นด้วยอย่างสิ้นเชิง. ESRI เป็น javascript api ฉันรู้สึกว่าพวกเขากำลังแข่งขันกับ ArcGIS Viewer for Flex ตัวอย่างไม่มีอะไร แต่เป็นเพียงหลักฐานของแนวคิดที่ว่าคุณจะสามารถใช้ dijits ได้อย่างไร ... ฉันหวังว่าพวกเขาจะให้บริการจาวาสคริปต์ API แบบบริสุทธิ์และให้ผู้ใช้ตัดสินใจว่าเฟรมเวิร์กใดที่คนทั่วไปใช้เช่น Bing, Google, Openlayers และอื่น ๆ ..


-4

jsRevolution ซึ่งเป็นเฟรมเวิร์ก JavaScript และเครื่องมือสร้างใหม่ของ OmniStation เป็นเฟรมเวิร์กเชิงพาณิชย์ที่มีประสิทธิภาพที่สุดในตลาด มันถูกออกแบบมาสำหรับการปรับใช้ขนาดใหญ่ของแอพพลิเคชั่นที่ไม่สำคัญ ฉันเป็นตัวแทนของ OmniStation ลูกค้าของเราอาจมีชั้นเรียน 100 หรือ 1,000 ชั้นผู้พัฒนา 10 คนหรือ 100 คน ในขณะที่ลูกค้าเหล่านี้จะพบกรอบที่ขาดไม่ได้ jsRevolution เป็นประโยชน์สำหรับการใช้งานบางอย่างที่มีน้อยถึง 25 ชั้นเรียน

คุณสมบัติหลายอย่างของ jsRevolution ประกอบด้วย: Asynchronous Loading, Codeless Namespacing, URL Switchable Code View (จาก Dev to Deploy), Codeless Inheritance พร้อมการตรวจสอบความถูกต้องของเวลาทำงาน, Codeless Interface กับการตรวจสอบความเร็วในการโหลด, Abeless เพื่อระบุทรัพยากรเป็นคลาสอินสแตนซ์, Multi-Versioning (คลาสหลายเวอร์ชันภายในแอพพลิเคชั่นเดียวกัน - ง่ายต่อการดำเนินการ) และคุณสมบัติอื่น ๆ อีกมากมาย


สวัสดี Ryan ยินดีต้อนรับสู่เว็บไซต์ของเรา! ฉันได้ทำการแก้ไขเล็กน้อยสำหรับคำตอบของคุณเพื่อให้สอดคล้องกับนโยบายของเราเกี่ยวกับโพสต์เชิงพาณิชย์ สำหรับข้อมูลเพิ่มเติมโปรดปรึกษาของเราคำถามที่พบบ่อย หากคุณต้องการให้ผู้อื่นติดต่อคุณคุณอาจใช้โปรไฟล์ผู้ใช้ของคุณเพื่อนำเสนอข้อมูลการติดต่อ
whuber

1
คุณมีลิงค์ของเว็บไซต์แผนที่ ArcGIS JS API ที่ใช้เทคโนโลยีของคุณหรือไม่? มิฉะนั้นคำตอบนี้รู้สึกเหมือนสแปมมากเกินไป
Devdatta Tengshe
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.