学习.NET for ArcGIS(主要是台式机)使用吗?


12

我具有基本的编程技能(我编写了简单的vba python和lisp脚本,并且很久以前就读过Java课程),但是在我看来(由ESRI出版物判断)并没有逃脱学习.NET的需要。未来在GIS就业市场中的相关性(甚至是作为分析师)。

我已经完成了基本的C#课程,并且可以(遗憾地)编写非常差的程序,但是我不知道如何将C#知识与arcgis的实际编程联系起来。

1)我知道差异不大,但是ArcGIS是否使用.NET或C#?

2)我知道增加我在.NET中经验的最好方法是编写越来越多的程序,但是有什么好的.NET编程书籍或课程可以学到技术吗?

3)您认为学习在.NET for ArcGIS中编程的最佳方法是什么?有没有有用的书籍或网站?

非常感谢您对ArcGIS 10的评论(并将保存以供以后使用),但是如果您能给我一些有关ArcGIS 9.3.1的建议,那将是非常出色的(我发现自己处于非常任性的位置,而Esri和全世界的注意力都集中在ArcGIS 10.0上(包括当地的Esri代表),该国几乎没有人从9.3.1升级或有计划这样做,并且个人在寻求9.3.1适当答案时遇到问题)。

Answers:



7

4

如果您想编写避免程序员嘲笑和嘲弄的东西,而这些东西令您在投资组合中感到自豪,那么您将希望真正牢固地掌握面向对象的设计和开发(如果还没有的话) 。精通特定语言和框架可以在以后出现。

在一些好的软件开发书中进行编程练习时,请务必使用.NET和ArcObjects作为首选语言/ API。这里有一些开始:

  • 实用程序员:编写代码的最佳实践,以及有关软件项目生命周期的一些好东西。
  • 完整的代码:与上述代码相似,但有更多详细信息和示例。
  • 测试驱动开发:TDD迫使您遵循以上两本书推荐的一些实践。
  • 首要设计模式:如果您必须处理ArcObjects,那么您将想了解设计模式。API对它们感到厌烦。

代码完成很大,但是其余的可以快速阅读。实际上,我会为GIS人士推荐前两本书,这些书永远不会编写任何代码。在源代码控制,项目管理,通信和良好的设计原则方面有很多很棒的东西。


我完全同意。采取基层方法,它将带来红利。
凯尔索2010年

4

只是想从我的个人经历中补充一点。我主要是作为雇主需求的副产品学习的。首先使用ArcGIS Desktop脚本,然后使用扩展,然后是ArcGIS Server(SOE,Web ADF和Web API)编程。我认为,最好的资源实际上是API和帮助文档。第一次进入未知区域时,我会阅读一些概念上的帮助,然后深入进行编码并根据需要引用API文档。然后,如果我遇到麻烦,可以使用Esri论坛。现有的代码示例有时会有所帮助,但是我通常找不到适用于我正在从事的工作的东西-现在情况可能并非如此。Esri视频和这个出色的网站也尚未提供,因此这些当然是额外的资源。

我还要补充一点,就是我在一所大学学习了地理,GIS和一些比较科学,而且我认为很难通过“课堂作业”或以非常通用的方式来掌握GIS开发人员的知识。如果您在使用GIS的雇主那里工作,我建议与那里的GIS人员交谈,以确定需要满足您需求的小开发人员的测试平台,即使您必须自己动手工作。除非如此,否则我将尝试提出一些特定功能,您希望拥有这些功能,或者您认为将这些功能组合在一起很有趣,然后着手发现实现该功能所需的知识。


我也有类似的经历。对我来说效果很好!
乔治席尔瓦

3

现有代码(除了其他答案...而不是)。

诸如Google ProjectsCodeplexGithub之类的地方都有很多在线内容。

从相当活跃/正在使用的项目中学习代码,这是很有趣的,并且具有相当大的用户社区。(并不是说您无法从过时的代码存储库中学到任何东西)


2

1)ArcGIS或ArcObjects是一个COM模型,顶部带有.Net,Java和C ++包装器。因此,可以使用任何.Net语言或Java或C ++。请参阅ArcObjects帮助.NetJavaC ++

2)我建议阅读一本内容丰富的书,例如Wrox的Beginning C#或VB.Net。

3)我将从查看文档中的样本开始。特别是插件


2

我建议不要依赖ESRI示例来学习一般的编程技能,尤其是.NET。这不是对样品或制备样品的人的抨击。样本旨在显示特定事物可能或应该如何工作。为简便起见,样本中遗漏了很多东西。另外,我见过的大多数ESRI示例都不是面向对象的,而是意大利面条代码。

听起来很傻,但是我从Visual Basic 6过渡到VB.NET和C#的方式是研究认证书。当时,由于COM和.NET是新的,因此非常强调COM和.NET之间的区别。您选择的开发语言的良好基础将帮助您在软件公司样本和文档的雷区中导航。

也了解COM Interop;ESRI确实有一些不错的信息,但是它是ESRI特定的。在ArcGIS中,COM Interop可能不是您的朋友,但是如果没有它,您将遭受很多调试。


我同意,在比GIS应用程序更抽象的环境中学习,通常不会使您受益。另外,我知道大多数成功的GIS程序员都不是来自GIS或地理特定背景的
WolfOdrade 2010年

1

在查看Esri的在线资源时,我不禁注意到ArcObjects如何不像其他ArcGIS技术那样拥有丰富而最新的资源。

这就是我开始在IGeometry Youtube频道上讨论ArcObjects的原因,该系列我称为ArcObjects的.NET编程,到目前为止已经发展到第14集,而且许多GIS人士都从中受益匪浅。

该系列基于我创建的一个虚构的项目“ Bestaurants”,您必须在ArcMap上创建一个应用程序以搜索,管理,添加,删除餐厅。在每一集中,我们都引入一个新的界面,并以一种有趣的方式了解ArcObjects中的细粒度对象!

只要有机会,我每周都会发布视频,因为这是我自己的时间。

随时检查它,并与您可能认识的任何GIS极客共享。始终欢迎您提出改进系列的建议。

谁知道,也许一旦我们完成了这个,我可能会开始另一个系列。

请享用,

.NET使用ArcObjects编程(IGeometry)-01-入门

.NET使用ArcObjects进行编程(IGeometry)-02-使用图层

.NET使用ArcObjects编程(IGeometry)-03-过滤层

……

查看整个播放列表,(到目前为止有14集)

http://www.youtube.com/watch?v=XrZs1rwmOwg&index=1&list=PLQnljOFTspQXqQYsWJG8o-eJpGlvzww9lE




0

Web ADF是ESRI的.NET SDK。下一个版本将不推荐使用。

但是,如果使用9.3.1,则Web ADF将是.NET的工具集。在线上有很多资源,ESRI和其他资源。

为了使您的程序设计总体上变得更好,请不要停止阅读!阅读编程博客和网站。使用堆栈溢出。永远不要害怕问问题。阅读Code Complete和其他与编程和软件开发有关的书籍。阅读所有您可以动手的东西!祝好运!


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.