使用ArcGIS Server JS API哪种框架最能可靠地实现应用程序?


13

Esri论坛上,用户Matt Moyles建议Esri JS示例中使用的方法不适用于使用HTML,JavaScript和CSS进行Web地图应用程序的健壮开发:

ESRI建议的javascript应用程序开发方法是古老而过时的。我不建议您跟随样本。Dojo 1.7支持带有异步依赖项加载的AMD。我将从dojo样板模板开始,然后将arcgis api“工作”到其中。这些示例不适合认真的应用程序开发人员。它们大多只是概念片段的证明。

应该借助某种框架来开发一个严肃的应用程序,以帮助构建事物。我一直在使用dojox.mvc取得巨大成功!但是其他选项包括骨干.js,spine.js甚至是javascript MVC之类的东西。

Dojo样板-https: //github.com/csnover/dojo-boilerplate

  • 是否有人同意/不同意此声明?
  • 是否有在线示例说明使用ArcGIS Server JS API进行Web应用程序开发的更好方法?

1
是的,dojo 1.7使用AMD,但是最新的esri js api是在dojo 1.6.1之上构建的,它们提供或您可以下载的层软件包/模块不是AMD格式的。因此,它不只是工作。仅仅为了使用AMD而加载js api(dojo 1.6.1)和dojo 1.7似乎很愚蠢
Steve

我刚刚注意到,今年Esri开发者峰会有一个关于 ribs.js的会议。
斯蒂芬·利德

我在使用最新的dojo样板时遇到了麻烦。我回落到1.6.1样板程序包,因为这是esri支持的。ESRI将可能。发布适用于dojo 2.0的API的AMD版本。这是我使用的样板项目blog.rebeccamurphey.com/a-dojo-boilerplate(Matt Moyles)
dubvfan87

Answers:


10

我会同意Moyles的观点,即样本只是样本,而dojo boileplate是一个很好的资源,但是在当前的Snovers样板上并不是可行的解决方案。您正在使用两种不同版本的dojo。当前的js API仍使用dojo 1.6.1的经典require语法,并且不支持AMD。我确信将在1.7.x上构建新的js api,并且由于将经典的dojo.defined模块转换为AMD几乎是微不足道的,所以我会选择这种方法。

如果你开始你的项目现在那么我会选择你想要的任何服务器端框架来使用(如果有必要为您的应用程序。如果它只是一个没有服务器端要求单页浏览器,然后不要过分复杂的事情)。可能是rails,php,asp等。遵循您的框架/语言的最佳做法。

然后,由于esri是基于dojo构建的,因此您已经在加载用于创建大规模Web应用程序的出色js框架。结构化代码,以便dojo的加载程序可以使用dojo require语法加载小部件和模块。写Dojo小部件和模块,使用的dijits和DojoX中的工具在必要时(http://dojotoolkit.org/documentation/tutorials/1.6/declarehttp://dojotoolkit.org/documentation/tutorials/1.6/recipes/custom_widget/HTTP ://dojotoolkit.org/documentation/tutorials/1.6/understanding_widgethttp://dojotoolkit.org/documentation/tutorials/1.6/templatedhttp://dojotoolkit.org/documentation/tutorials/1.6/cdn)。不要像示例一样编写内联js。创建一个构建配置文件以优化所有代码的生产时间。

您必须在某种程度上将esri和自定义代码分开,因为它们不提供编译源-它已经构建并缩小了。构建工具不是很喜欢。

编辑

我构建了一个grunt工具esri_slurp来下载esri js api,因此您可以在应用程序中将其作为软件包使用。这使您可以运行构建并获取单个文件。


3

很明显,样本并不是认真的应用:它们是样本。

就是说,在典型的互联网世界中,使用Backbone之类的东西比使用dojo少得多,而dojo则以广泛而复杂而闻名,但通常是不必要的。

如果您可以更详细地描述您的目标,则可以提出可靠的建议。像Backbone这样的东西是为完整的客户端应用程序编写的-因此,如果您实际上是在用PHP或ASP或nodejs进行大部分工作,则不必要。或者,如果您不需要连接多个页面和视图,则仅使用jQuery或根本不需要框架就可以轻松实现。


1
如果esri代码是建立在dojo之上的,那么为什么还要使用dojo以外的任何东西?Dojo可以做骨干可以做的所有事情和jquery。您已经在加载一个功能强大的框架,为什么建议您加载其他框架呢?
史蒂夫

@tmcw足够公平,不应使用识别工具示例来开发应用程序-但是基于ArcGIS.com的更完整示例又如何呢?Esri在这些方面走错了轨道吗?
斯蒂芬·利德

@tmcw作为我的目标,这里是一个网站我的工作,利用ESRI的道场方法的一个例子。如果明天要重新开始,是否应该以其他方式进行?
斯蒂芬·利德

2
@Steve是的,如果您有兴趣的话,这里有录音的记录。
斯蒂芬·利德

1
@StephenLead我在那儿:)
史蒂夫

-3

完全同意。ESRI是javascript API,我觉得它们正在与ArcGIS Viewer for Flex竞争。样本不过是概念证明,说明如何使用他们的dijit ...我希望他们只是提供一个简单的纯JavaScript API,并让用户决定人们要使用的框架,例如Bing,Google,Openlayers等。 ..


-4

jsRevolution是OmniStation的新JavaScript框架和构建工具,是市场上最强大的商用框架。它旨在用于非平凡应用程序的大规模部署。我代表OmniStation。我们的客户可能拥有100或1000的课程,甚至有10甚至100的开发人员。尽管这些客户端会发现必不可少的框架,但是jsRevolution对于某些应用程序(只有25个类)是实用的。

jsRevolution的许多功能包括:异步加载,无代码命名空间,URL可切换代码视图(从Dev到Deploy),具有构建时验证的无代码继承,具有加载时验证的无代码接口,无代码抽象(有时称为Mixin),功能将资源标识为实例类,Multi-Versioning(同一应用程序中的类的多个版本,易于执行)和许多其他功能。


嗨,瑞安,欢迎来到我们的网站!我已对您的答案进行了少量修改,以符合我们有关商业职位的政策。有关更多信息,请查询常见问题解答。如果您希望人们与您取得联系,则可以使用您的用户个人资料来显示联系信息。
whuber

1
您是否有使用您的技术的ArcGIS JS API映射站点的链接?否则,这个答案太像垃圾邮件了。
Devdatta Tengshe 2013年
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.