Sự khác biệt giữa các API Web ArcGIS (JavaScript / WPF / Silverlight / Flex) là gì?


28

Esri hiện cung cấp 3 API web khác nhau có thể được tải xuống miễn phí.

Có phải tất cả đều bình đẳng?

Nếu không, điểm mạnh / điểm yếu tương đối của từng API này là gì?


Sẽ thật tuyệt nếu chúng tôi có 3 câu trả lời và "cho phép" chỉnh sửa để thêm hoặc mở rộng mỗi lần. Điều đó có vi phạm chính sách của GSE không?
Brad Nesom

1
@Brad vì đây là wiki cộng đồng, bất kỳ ai có ít nhất 100 đại diện đều có thể chỉnh sửa bất kỳ bài đăng nào. Tôi không biết cách "cho phép" chỉnh sửa chỉ với 3 bài viết. OTOH, có thể có các phản hồi chi tiết hơn sẽ cho phép người dùng bỏ phiếu về mức độ phù hợp của từng pro hoặc con. Vì vậy, có lẽ tôi nên chia câu trả lời của tôi thành 5 câu trả lời?
Kirk Kuykendall

Tôi coi chúng bằng nhau; có lẽ một cách tốt hơn để trả lời là mô tả chúng khác nhau như thế nào?
đường

@mwalker đồng ý, tiêu đề thay đổi.
Kirk Kuykendall

1
Tốt tóm tắt trong ESRI tài 2011 Hội nghị Q & A: events.esri.com/uc/QandA/...
Derek Swingley

Câu trả lời:


13

Từ góc độ quản lý hoàn toàn trừu tượng, ba API bằng nhau. Chúng đại diện cho mã chạy trong trình duyệt web, mục đích của nó là hiển thị dữ liệu bản đồ cho người dùng qua internet. Bạn có thể tạo một ứng dụng ánh xạ thành công, có ý nghĩa với bất kỳ API nào.

Hơn nữa, tác động của từng điểm mạnh / điểm yếu (khác biệt) trong mỗi API sẽ khác nhau tùy thuộc vào đối tượng. Các lập trình viên sẽ rất quan tâm đến các tính năng ngôn ngữ hoặc nhược điểm, người dùng mạng của bạn sẽ muốn biết các yêu cầu về băng thông và các điều kiện tiên quyết của máy chủ, người dùng GIS sẽ lo ngại sâu sắc rằng bản đồ được hiển thị thực sự được hiển thị và người dùng cuối của bạn có thể quan tâm đến tất cả những điều đó và chỉ muốn làm bất cứ điều gì họ bắt đầu làm.

Vì vậy, đây là một số mục chính về ba API:

  • Xử lý tài nguyên tên miền chéo : Silverlight và Flex có thể sử dụng tệp "chính sách tên miền chéo" tồn tại trên máy chủ TARGET. Vì vậy, các nhà xuất bản bản đồ bên thứ ba có thể cấp cho bạn quyền truy cập vào họ. Với API Javascript, các yêu cầu tên miền chéo thường được xử lý bằng cách triển khai "trang proxy" bằng ngôn ngữ phía máy chủ mà bạn chọn (PHP, JSP, ASP, v.v.). "Yêu cầu mềm" này không phải là một vấn đề lớn đối với hầu hết các máy chủ, nhưng lại thêm một lớp phức tạp khác. Lưu ý rằng không có gì ngăn bạn sử dụng cùng một trang proxy với các API plugin, nếu tài nguyên mong muốn của bạn KHÔNG để lộ các tệp tên miền chéo cần thiết.

  • Đồ họa : Silverlight và Flex đều cho phép bạn dễ dàng vẽ các pixel tùy ý trên giao diện người dùng. Javascript cũng cho phép điều này, nhưng bạn có thể nhanh chóng làm quá tải dung lượng của trình duyệt mà không cần chuẩn bị và mã cẩn thận. Tương tự, hoạt động trực tiếp với định dạng nhị phân hoặc lưu lượng mạng chỉ có thể được thực hiện trong Javascript với sự trợ giúp của các dịch vụ web.

  • Môi trường nhà phát triển : Tôi thiên vị ở đây. Silverlight là yêu thích của tôi để phát triển. môi trường Visual Studio trưởng thành, nhanh chóng và có trình gỡ lỗi hàng đầu. Javascript đứng ở vị trí thứ hai; các công cụ hiện có tốt hơn bao giờ hết và luôn cải tiến, nhưng dường như chúng ta không bao giờ có thể thoát khỏi lời nguyền "các bạn phải kiểm tra trên tất cả các trình duyệt được hỗ trợ, sau đó sửa những điều kỳ lạ xảy ra". Môi trường Flex có vẻ cổ kính và cồng kềnh, và về cơ bản cản trở sự phát triển.


2
đó là một cơn ác mộng để gỡ lỗi javascript! ít nhất là đối với tôi
George Silva

3
@George Giữa trình gỡ lỗi dựng sẵn của Chrome, Fireorms và Thanh công cụ dành cho nhà phát triển IE, giờ đây nó không còn quá tệ như trước đây.
đường

9

Nhược điểm Silverlight / WPF

  • Yêu cầu một plugin
  • Tương lai ít chắc chắn hơn javascript (HTML5)

Ưu điểm của Silverlight / WPF

  • Được hỗ trợ đầy đủ bởi Visual Studio
  • Có hỗ trợ đa luồng tốt hơn (ít nhất là so với flex ).
  • Hỗ trợ SOAP tốt hơn (SOAP của Esri hoàn chỉnh hơn REST).

1
Silverlight có vẻ như có rất nhiều lợi thế cho nhà phát triển, không nhiều cho một lượng lớn người dùng ...
DavidF

1
@DavidF - Tôi muốn nói rằng nó được thiết kế cho người dùng doanh nghiệp đã có sharepoint, .net và các ứng dụng như vậy đã được cài đặt và sử dụng bởi mọi máy. Vì vậy, việc triển khai hơn 20.000 máy tương đối dễ dàng
dassouki

@dassouki - Điểm hay, trong những tình huống đáng tin cậy của WPF XBAP có ý nghĩa. Tôi sẽ cập nhật Silverlight để bao gồm WPF.
Kirk Kuykendall

8

Tôi đoán tất cả những câu trả lời là tốt nhưng một chút lỗi thời. Flex và Silverlight chắc chắn rất phổ biến so với Javascript và một số người có thể lập luận rằng việc xây dựng Ứng dụng bằng các API này thực sự dễ dàng, nhưng ĐỊNH NGH BIGA LỚN nhất mà Flex và Silverlight có là chúng là PLUGIN . Và đó là nguyên nhân cho sự hủy diệt của họ.

Với sự khởi đầu của HTML5 và Javascript là phần không thể thiếu trong quá trình phát triển Ứng dụng Web, Tương lai là API Javascript. Với việc Adobe từ bỏ Flash và Silverlight 5 là bản cập nhật cuối cùng của Microsoft, Flex và Silverlight hiện là những công nghệ dư thừa.

Vì vậy, nếu bạn đang bắt đầu phát triển Ứng dụng Web Web bằng API ESRI, hãy bắt đầu học API Javascript vì đó là tương lai duy nhất trong Tương lai gần.


3

API của Silverlight và Flex cho đến nay là API ArcGIS phổ biến nhất và có lợi thế là trình cắm trình duyệt cung cấp trải nghiệm người dùng phong phú và nhất quán hơn, thường khá quan trọng với các ứng dụng web GIS. Silverlight có lẽ là lựa chọn tốt nhất nếu bạn thích phát triển .NET và Flex sẽ là tốt nhất cho các nhà phát triển thích môi trường Adobe. Flex cũng có lợi thế khi áp dụng rộng rãi hơn như là một trình cắm bổ sung cho trình duyệt so với Silverlight.

API Javascript có lợi thế tiếp cận nhiều nền tảng hơn do không cần plugin của trình duyệt để có thể sử dụng nó trong các thiết bị iOS như iPhone và iPad. Nhược điểm là bạn thường có thể thấy sự khác biệt trong cách ứng dụng hoạt động trong các trình duyệt khác nhau như IE, Chrome, Firebox, Safari, v.v.

Theo như các tính năng của chúng, chúng thực sự rất giống nhau, đó là điều mà esri luôn cố gắng thực hiện với những tính năng này và dường như cam kết tiếp tục giữ tính tương đương tính năng mạnh mẽ giữa chúng để tiến về phía trước. Vì vậy, tôi nghĩ rằng điều đó thực sự ảnh hưởng đến sức mạnh của Flex và Silverlight khi các khách hàng giàu có và Javascripts tiếp cận đa nền tảng.


3

Có một Trình xem ArcGIS cho Flex .

Có một Trình xem ArcGIS cho Silverlight .

Nhưng hiện tại không có Trình xem ArcGIS do Esri hỗ trợ cho Javascript, cũng không có kế hoạch nào .

Xem câu hỏi liên quan .

"Trình xem" là thuật ngữ Esri sử dụng cho các ứng dụng web cho phép người dùng tạo các ứng dụng web ánh xạ mà không cần viết bất kỳ mã nào. Thông thường, các ứng dụng lập bản đồ web được tạo này sẽ là người xem, nhưng với các bổ trợ (hoặc widget) thích hợp, có thể tạo người xem với khả năng chỉnh sửa.


Có thể cho rằng, sử dụng ArcGIS Online với các mẫu ... theo nghĩa là Trình xem cho javascript - không mã hóa, cung cấp cho bạn các chức năng bản đồ cơ bản.
awesomo

1

Không ai trong số họ hỗ trợ các tiêu chuẩn mở để bạn chịu sự ràng buộc của nhà cung cấp và nguy cơ mất khoản đầu tư của bạn nếu ESRI quyết định rằng 3 là 1 hoặc 2 quá nhiều.


1
Nếu Esri thay đổi nó, tôi sẽ nghĩ rằng số phiên bản sẽ được tăng lên (hiện tại là 1.0). Nếu bạn xây dựng một công cụ thực hiện nó, tại sao bạn không thể tiếp tục sử dụng công cụ đó?
Derek Swingley

2
Điều gì xảy ra nếu [x] thay đổi tiêu chuẩn? không ai chắc chắn 100% rằng mọi thứ sẽ mãi mãi như vậy.
George Silva

2
@Swingley khi ArcServer11 xuất hiện và chỉ hỗ trợ Rest2.0, tất cả công việc của bạn đều bị vặn (Tôi nhớ Avenue và AML).
Ian Turton

1
Vẫn sử dụng Avenue và AMLS ...
Mapperz

1
@iant Các công cụ AML trong ArcGIS 10 (Máy trạm) help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#// Lỗi
Mapperz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.