Answers:
从完全抽象的管理角度来看,这三个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环境似乎过时且过时,并且基本上阻碍了开发。
Silverlight / WPF缺点
Silverlight / WPF优点
我猜所有这些答案都不错,但有些过时了。与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,因为这是不久的将来的唯一未来。
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的优势。
有一个用于Flex的ArcGIS Viewer。
有一个适用于Silverlight的ArcGIS Viewer。
但是,目前还没有Esri支持的ArcGIS Viewer for Javascript,也没有计划中的一个。
见相关问题。
“查看器”是Esri用于Web应用程序的术语,它使用户无需编写任何代码即可创建映射Web应用程序。通常,这些创建的Web映射应用程序将是查看器,但是使用适当的加载项(或小部件),可以创建具有编辑功能的查看器。