我们部门有 2 位新的 GIS 程序员/分析师(编程和 ArcObjects 新手),我觉得我不够资格或没有时间教他们。所以我正在寻找入门级书籍/教程供他们用作参考。
我能找到的用于开发 ArcMap 扩展的唯一书籍是为 VBA 编写的。
除了您从 Redlands 培训中获得的 ESRI 课程书籍外,是否有人知道在 .Net 中学习针对 ArcObjects 进行编码的良好资源?
谢谢
我们部门有 2 位新的 GIS 程序员/分析师(编程和 ArcObjects 新手),我觉得我不够资格或没有时间教他们。所以我正在寻找入门级书籍/教程供他们用作参考。
我能找到的用于开发 ArcMap 扩展的唯一书籍是为 VBA 编写的。
除了您从 Redlands 培训中获得的 ESRI 课程书籍外,是否有人知道在 .Net 中学习针对 ArcObjects 进行编码的良好资源?
谢谢
试图同时教程序员 ArcObjects 和一般软件开发是一个非常糟糕的主意。我现在正在努力解决完全相同的问题。您冒着找到两个既不擅长编程 ArcObjects 也不擅长 C# 的开发人员的风险。
首先教他们成为优秀的开发人员。通过让他们处理非 ArcObjects 代码来做到这一点(这是否意味着高级 ArcGIS ADF 或完整的非 GIS 应用程序取决于您)。确保他们了解应用程序上下文(Web、桌面、中间等)的基础知识。这将简化向 ArcObjects 的过渡。
一旦他们掌握了软件开发的基础知识(特别是继承和 OOP),就可以将他们介绍给 ArcObjects。VBA 参考是足够的,但很难抽象到 C# 和现代工具。一个聪明的开发人员可以做到,但你的普通开发人员可能会学习很多坏习惯。
最好的办法是咬紧牙关,将它们发送到开发人员研讨会。有时,ESRI 会在您可能更本地的区域办事处提供课程。或者,将它们分别发送到春季和夏季的开发者峰会或用户大会。对于初学者来说,技术研讨会有点先进。也就是说,如果开发人员对 ArcMap 或 ArcObjects 有非常基本的了解,则可以从工作坊中学到很多东西。
此外,他们需要学习如何使用 ArcMap。他们学习 ArcObjects 可以做的最重要的有用的事情就是学习 ArcMap。了解它在桌面产品中的工作方式可以经常揭示如何使用 API。一个简单的例子是投影数据。在 ArcMap 中,您必须使用工具来显式投影数据。简单地“设置”投影是行不通的。这直接转化为 API,您必须在其中调用“项目”方法或使用项目 GPTool。
我同意每个人在这里表达的一般观点(从编程开始,从小处着手,尤其是通过示例/实践来学习)。
让开发人员学习 ArcObjects 比让 GIS 分析师学习编程要容易得多。你的任务(两者都做)非常困难!
不过,如果您必须从某个地方开始,我会首先对他们进行 C# 或 VB .NET 基础知识培训(通过良好的基于 Web 的教程或付费课程),然后再进行针对 ESRI .NET 的培训。正如我在上面的评论中所说,ESRI 培训课程给我留下了深刻的印象。我有软件开发背景,并且能够在几个月内学习 ArcObjects API - 与两个月的实践知识相比,培训课程是 ArcObjects 材料的基础。不过,它可能对学徒有用,而且你可能会在你的雇员中走运。
我还想补充一点,您肯定希望首先强调软件培训,并附带考虑 ArcObjects API。如果此 ArcMap 扩展是您打算出售给人们并作为客户拥有的产品,那么要意识到支持、增强和维护一个漏洞百出的产品是一项昂贵的操作。因此,从长远来看,花在软件培训上的任何一美元都会收回成本。
我什至会告诉你考虑以合同的形式聘请一名软件开发人员担任指导和导师,比如说六个月。
据我回忆,ESRI 开发人员网络上的一些代码现在是 C#,至少那是我为 GIS 提供 C# 代码的主要来源,但没有书,抱歉。
也许这将是一个很好的入门: http: //www.pragprog.com/titles/sdgis/gis-for-web-developers
如果您的员工真的是编程新手,我会先让他们学习 C#(或其他一些 .Net 语言,但 C# 可能是初学者的最佳选择)的基础知识和良好的编程实践。我想有现有的 stackoverflow 线程会对此提出建议。我认为对面向对象编程的扎实理解和对示例语言语法的了解将有助于 ArcObjects 的学习。
我不太了解有关 ArcObjects 的非 ESRI 书籍。但是我认为他们的资源足以让初学者入门。除了 ESRI 课程书籍,我建议从http://resources.esri.com/arcgisdesktop/dotnet/index.cfm上的在线资源开始
其他建议是学习如何阅读对象模型图并使用帮助来探索 ArcObjects 的方法和属性。还鼓励员工利用 ESRI 用户论坛。那里有很多知识渊博的人愿意帮助解决问题。
以身作则。
当我第一次开始使用简单但有趣的工具时,我获得了一些乐趣,比如截取当前地图并将其发布到 MediaWiki 站点(只需单击一下)的工具。大部分 API 看起来都像 Deep Magic,而且我不止一次通过浏览 Windows 注册表并做出有根据的猜测(例如如何在“数据视图”上下文菜单上创建自定义菜单项)偶然发现了完全未记录的功能。
比起被迫阅读枯燥乏味的书,我总是通过简单、可完成的任务学到很多东西。
有很多力量,但我在了解和理解其中的大部分方面肯定很慢。
如果不让它变得有趣,我认为开发人员会用这么大的 API 自杀。
也不知道专注于 ArcObjects 的非 ESRI 书籍。对于 ArcGIS Server 软件和我来说,我只能推荐 ArcGIS Server Administrator and Developer Guide(即 AGS 安装框中包含的 AFAIK)——有很多代码示例,适用于 C# 和 VB。即使不使用 AGS 进行编程,示例仍然有助于了解 ArcObjects 代码的工作原理。
我完全同意詹姆斯。
作为 4 年前在这条船上工作的人,我坚信您应该从 .NET 编程开始,然后转向 ESRI 平台,而不是在尝试学习 OOP 概念时陷入 ESRI 问题。
我还想指出,ESRI 开发人员资源中心为初学者提供了丰富的信息 [ http://resources.esri.com/gateway/index.cfm]
如果您从 .NET 和桌面开发开始,您可以在 [ http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/concepts_start.htm]下看到“入门页面”
祝你好运。