开发ArcMap扩展.Net书籍?

时间:2008-10-21 21:54:29

标签: .net esri arcobjects arcmap

我们的部门有两名新的GIS程序员/分析员(编程和ArcObjects的新手),我觉得我没有足够的资格或没有时间教他们。所以我正在寻找入门级书籍/教程供他们参考。

我可以找到的唯一用于开发ArcMap扩展的书籍是为VBA编写的。

除了您从Redlands的培训中获得的ESRI课程书籍之外,是否有人知道学习在.Net中对ArcObjects进行编码的良好来源?

由于

7 个答案:

答案 0 :(得分:7)

尝试向程序员传授ArcObjects和一般软件开发是一个非常糟糕的主意。我现在正在努力解决同样的问题。你冒着让两个开发人员无法很好地编写ArcObjects和C#的风险。

首先教他们成为优秀的开发人员。通过让它们处理非ArcObjects代码来执行此操作(无论这意味着高级ArcGIS ADF还是完整的非GIS应用程序取决于您)。确保他们了解应用程序上下文的基础知识(Web,桌面,中间等)。这样可以简化向ArcObjects的过渡。

一旦掌握了软件开发基础知识(特别是继承和OOP),就将它们引入ArcObjects。 VBA参考是足够的,但很难抽象到C#和现代工具。一个聪明的开发人员可以做到这一点,但你的普通人可能会学到很多坏习惯。

最好的办法是咬紧牙关并将它们发送给开发者研讨会。有时,ESRI会在区域办事处提供课程,这些课程可能更适合您。或者,分别在春季和夏季发送给开发者峰会或用户大会。对于初学者来说,技术研讨会有点先进。也就是说,如果开发人员对ArcMap或ArcObjects有一个非常基本的了解,那么可以从人才中学到很多东西。

此外, 他们需要了解如何使用ArcMap 。学习ArcObjects可以做的最重要的一件事就是学习ArcMap。了解它在桌面产品中的工作原理可以经常揭示如何使用API​​。一个简单的例子就是投射数据。在ArcMap中,必须使用工具显式投影数据。简单地“设置”投影不起作用。这直接转换为API,您必须调用“项目”方法或使用项目GPTool。

答案 1 :(得分:2)

我同意每个人在这里表达的一般情绪(从编程开始,从小做起,特别是通过示例/做事来学习)。

让开发人员学习ArcObjects比让GIS分析师学习编程要容易得多。你的任务(做两件事)非常困难!

但是,如果你必须从某个地方开始,我首先要用C#或VB .NET基础知识(通过一个很好的基于网络的教程或付费课程)训练它们,然后用ESRI .NET特定培训进行训练。正如我在上面的评论中所说,我对ESRI培训课程印象不深。我有一个软件开发背景,我能够在几个月内学习ArcObjects API - 与两个月的实践知识相比,培训课程在ArcObjects材料上非常基础。不过,它可能适用于学徒,你可能会和你的雇员一起运气。

我还想补充一点,你肯定希望首先强调软件培训,并考虑附带ArcObjects API。如果此ArcMap扩展程序是您打算向人们销售并作为客户销售的产品,那么实现支持,增强和维护错误的产品是一项昂贵的操作。因此,花在软件培训上的任何美元都将在长期内收回成本。

我甚至会告诉你考虑在合同的基础上聘请软件开发人员作为指导和导师,比如六个月。

答案 2 :(得分:1)

据我所知,ESRI开发者网络中的一些代码现在使用的是C#,至少这是我用于GIS的C#代码的主要来源,但没有书籍,抱歉。

也许这是一个很好的入门书:http://www.pragprog.com/titles/sdgis/gis-for-web-developers

答案 3 :(得分:1)

如果您的员工对编程非常陌生,我首先要让他们学习C#(或其他一些.Net语言的基础知识,但C#可能是初学者的方法)和良好的编程习惯。我想象现有的stackoverflow线程会有这方面的建议。我认为对面向对象编程的深刻理解以及了解示例所用语言的语法将有助于学习ArcObjects。

我不太了解ArcObjects上的非ESRI书籍。但是我认为他们的资源足以让初学者入门。除ESRI课程书籍外,我建议您从http://resources.esri.com/arcgisdesktop/dotnet/index.cfm

的在线资源开始

其他建议是学习如何阅读对象模型图并使用帮助来探索ArcObjects的方法和属性。还鼓励员工利用ESRI用户论坛。有很多知识渊博的人愿意帮助解决问题。

答案 4 :(得分:0)

以身作则。

当我第一次使用简单但有趣的工具开始时,我获得了一些乐趣,例如一个截取当前地图的截图并将其发布到MediaWiki网站(只需点击一下)。很多API看起来像Deep Magic,并且不止一次我偶然发现完全没有文档的功能,通过浏览Windows注册表并进行有根据的猜测(比如如何在“数据视图”上下文菜单中创建自定义菜单项)。 / p>

我总是通过简单,可实现的任务而不是被迫阅读枯燥乏味的书籍来学习更多。

有很多权力,但我在了解和了解其中很多方面肯定很慢。

如果没有让它变得有趣,我认为开发人员会因为API太大而自杀。

答案 5 :(得分:0)

也不了解专注于ArcObjects的非ESRI书籍。对于ArcGIS Server软件和我来说,我只推荐ArcGIS Server Administrator和开发人员指南(即AGS安装框中包含的AFAIK) - C#和VB都有许多代码示例。即使不使用AGS编程,示例仍然可用于教育ArcObjects代码的工作方式。

答案 6 :(得分:0)

我完全赞同詹姆斯。

作为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]

下看到“入门页面” 祝你好运。