ArcGIS Web API(JavaScript / WPF / Silverlight / Flex)之间有什么区别?


28

Esri当前提供3种不同的Web API,可以免费下载。

他们都平等吗?

如果不是,那么每个API的相对优势/劣势是什么?


如果我们有3个答案并随时间推移添加或扩展每个“许可”编辑,那就太好了。这是否违反GSE政策?
Brad Nesom'3

1
@Brad,因为这是社区Wiki,所以拥有至少100名代表的任何人都可以编辑任何帖子。我不知道只允许“编辑”仅3个帖子的方法。OTOH,也许具有更细粒度的响应,将允许用户对每个优点或缺点的相关性进行投票。因此,也许我应该将答案分为5个答案?
Kirk Kuykendall

我认为他们是平等的。也许更好的回答方法是描述它们的不同之处?
mwalker 2011年

@mwalker同意,标题已更改。
Kirk Kuykendall

1
在2011年ESRI的用户大会Q&一个很好的总结: events.esri.com/uc/QandA/...
德里克Swingley

Answers:


13

从完全抽象的管理角度来看,这三个API是相等的。它们代表在Web浏览器中运行的代码,其目的是通过Internet向用户显示地图数据。您可以使用任何API创建成功,有意义的映射应用程序。

此外,每个API中每个强度/弱点(差异)的影响将取决于受众。程序员将对语言功能或缺点非常感兴趣,您的网络人员将希望了解带宽要求和服务器先决条件,GIS人员将深为关注所显示地图的真实呈现,并且最终用户可能会不太在意所有这些只是想做他们开始做的事。

因此,以下是有关这三种API的一些关键事项:

  • 跨域资源处理:Silverlight和Flex可以使用TARGET服务器上存在的“跨域策略”文件。因此,第三方地图发布者可能会授予您访问权限。使用Javascript API,通常通过使用您选择的服务器端语言(PHP,JSP,ASP等)实现“代理页面”来处理跨域请求。对于大多数服务器来说,这种“软需求”并不是一个大问题,但确实增加了另一层复杂性。请注意,如果您所需的资源没有公开必要的跨域文件,则没有什么可以阻止您将同一代理页面与插件API一起使用。

  • 图形:Silverlight和Flex都允许您轻松在用户界面上绘制任意像素。Javascript也允许这样做,但是您无需进行一些仔细的代码和准备就可以快速使浏览器超载。同样,只能使用Java脚本通过Web服务直接以二进制格式或网络流量进行操作。

  • 开发人员环境:我对此有偏见。Silverlight是我开发的最爱。Visual Studio环境成熟,快速,并且具有一流的调试器。Java语言排在第二位。现在可用的工具比以往任何时候都更好,并且总是在不断改进,但是我们似乎永远无法摆脱“您必须在所有受支持的浏览器上进行测试,然后修复那些奇怪的事情”的诅咒。Flex环境似乎过时且过时,并且基本上阻碍了开发。


2
调试JavaScript是一场噩梦!至少对于我来说。
乔治·席尔瓦

3
@George在Chrome的内置调试器,Firebug和IE Developer Toolbar之间,它现在已经不像以前那样糟糕了。
mwalker 2011年

9

Silverlight / WPF缺点

  • 需要一个插件
  • 未来比javascript(HTML5)不确定

Silverlight / WPF优点

  • 由Visual Studio完全支持
  • 具有更好的多线程支持(至少与flex相比)。
  • 更好的SOAP支持(Esri的SOAP比REST更完整)。

1
Silverlight似乎对开发人员具有很多优势,但对广大用户而言却没有太多优势……
DavidF 2011年

1
@DavidF-我想说的是,它是为已经拥有共享点,.net以及每台计算机已经安装和使用的此类应用程序的企业用户设计的。因此,部署超过20,000机是比较容易的
dassouki

@dassouki-好的一点,在那些值得信赖的情况下,WPF XBAP是有意义的。我将更新Silverlight以包括WPF。
Kirk Kuykendall

8

我猜所有这些答案都不错,但有些过时了。与Javascript相比,Flex和Silverlight肯定很受欢迎,有些人可能认为使用这些API构建应用程序确实很容易,但是Flex和Silverlight 的最大缺点是它们是PLUGINS。这就是他们被歼灭的原因。

HTML5的出现和Javascript是Web App开发的组成部分,因此Future是Javascript API。由于Adobe放弃了Flash,而Silverlight 5是Microsoft的最后更新,因此Flex和Silverlight现在是冗余技术。

因此,如果您要开始使用ESRI API开发Web GIS应用程序,请开始学习Javascript API,因为这是不久的将来的唯一未来。


3

Silverlight和Flex API是迄今为止最受欢迎的ArcGIS API,并且具有作为浏览器插件的优势,该插件可提供更加丰富和一致的用户体验,这对于GIS Web应用程序通常非常重要。如果您喜欢.NET开发,Silverlight可能是最佳选择,而Flex更适合喜欢Adobe环境的开发人员。与Silverlight相比,Flex还具有被广泛用作浏览器插件的优势。

由于不需要浏览器插件,因此Javascript API具有跨平台扩展的优势,因此可以在iPhone和iPad等iOS设备中使用。缺点是您经常会看到应用在各种浏览器(例如IE,Chrome,Firebox,Safari等)中的行为方式差异。

就它们的功能而言,它们确实非常相似,这是esri一直试图与它们做的事情,并且似乎致力于继续保持它们之间强大的功能奇偶性。因此,随着富客户端和Javascript跨平台的普及,我认为这实际上归结于Flex和Silverlight的优势。


3

有一个用于FlexArcGIS Viewer

有一个适用于SilverlightArcGIS Viewer

但是,目前还没有Esri支持的ArcGIS Viewer for Javascript,也没有计划中的一个

相关问题

“查看器”是Esri用于Web应用程序的术语,它使用户无需编写任何代码即可创建映射Web应用程序。通常,这些创建的Web映射应用程序将是查看器,但是使用适当的加载项(或小部件),可以创建具有编辑功能的查看器。


可以说,将ArcGIS Online与模板一起使用...在某种意义上是JavaScript的查看器-无需编码,即可为您提供基本的地图功能。
awesomo

1

它们都不支持开放标准,因此如果ESRI决定3等于1或2太多,您将遭受供应商锁定和投资损失的风险。


1
如果Esri更改它,我会认为版本号会增加(当前为1.0)。如果您构建了一个实现该工具的工具,那为什么不能继续使用该工具呢?
Derek Swingley 2011年

2
如果[x]标准更改怎么办?没有人能百分百地确定一切都会永远相同。
乔治席尔瓦

2
当ArcServer11推出并且仅支持Rest2.0时,@ Swingley会使您的所有工作陷入困境(我记得Avenue和AML)。
伊恩·特顿

1
仍使用Avenue和AMLS ...
Mapperz

1
ArcGIS 10(Workstation)中的@iant AML工具help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//…–
Mapperz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.