开发 ArcMap 扩展 .Net 书籍?

发布于 2024-07-08 08:59:17 字数 232 浏览 6 评论 0原文

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

我能找到的关于开发 ArcMap 扩展的唯一书籍是针对 VBA 编写的。

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

谢谢

We have 2 new GIS programmer/analyst in our department (new to programming and ArcObjects) and I don't feel I'm qualified enough or have the time to teach them. So I'm looking for entry level books/tutorials for them to use as reference.

The only books I can find for developing Extensions for ArcMap are written for VBA.

Besides the ESRI course books you get from training in Redlands, does anybody know of good sources for learning to code against ArcObjects in .Net?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

峩卟喜欢 2024-07-15 08:59:17

尝试向程序员教授 ArcObjects 和一般软件开发是一个非常糟糕的主意。 我现在正在努力解决完全相同的问题。 您可能会遇到两个开发人员都不太擅长 ArcObjects 和 C# 编程的风险。

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

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

最好的选择是硬着头皮将他们送到开发人员研讨会。 有时,ESRI 在您可能更本地的地区办事处提供课程。 或者,分别将他们发送到春季和夏季的开发者峰会或用户大会。 技术研讨会对于初学者来说有点高级。 也就是说,如果开发人员对 ArcMap 或 ArcObjects 有非常基本的了解,则可以从研讨会中学到很多东西。

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

Trying to teach programmers both ArcObjects and general software development is a really bad idea. I am struggling with the exact same problem right now. You run the risk of getting two developers who program neither ArcObjects nor C# very well.

Teach them to be good developers first. Do this by having them work on non-ArcObjects code (whether that means high-level ArcGIS ADF or complete non-GIS apps is up to you). Make sure they understand the basics of the application context (web, desktop, middle, etc). That will ease the transition to ArcObjects.

Once they have gotten the grasp of software development fundamentals (in particular, inheritance and OOP), introduce them to ArcObjects. The VBA reference is adequate, but hard to abstract to C# and to the modern tools. A bright developer can do it, but your average one will probably learn a lot of bad habits.

Your best bet is to bite the bullet and send them to the developer workshops. Sometimes, ESRI offers classes at a regional office that might be more local to you. Alternatively, send them to the Developer Summit or User Conference in Spring and Summer respectively. The technical workshops are a bit advanced for total beginners. That said, a lot can be learned from the worskhops if the developers have a very basic understanding of ArcMap or ArcObjects.

Also, they need to learn how to use ArcMap. The single most important useful thing they can do to learn ArcObjects is to learn ArcMap. Understanding how it works in the desktop product can frequently reveal how to use the API. An easy example is projecting data. In ArcMap, you must use a tool to explicitly project data. Simply "setting" the projection doesn't work. This translates directly into the API where you must call a "project" method or use the project GPTool.

淤浪 2024-07-15 08:59:17

我同意每个人在这里表达的普遍观点(从编程开始,从小事做起,特别是通过例子/实践来学习)。

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

不过,如果您必须从某个地方开始,我会首先对他们进行 C# 或 VB .NET 基础知识培训(通过良好的基于​​ Web 的教程或付费课程),然后再进行 ESRI .NET 特定培训。 正如我在上面的评论中所说,ESRI 培训课程没有给我留下深刻的印象。 我有软件开发背景,并且能够在几个月内学习 ArcObjects API - 与两个月的实践知识相比,培训课程非常基础于 ArcObjects 材料。 尽管如此,它可能对学徒有用,而且你可能会幸运地雇用你。

我还想补充一点,您肯定希望首先将重点放在软件培训上,并附带考虑 ArcObjects API。 如果此 ArcMap 扩展是您打算向人们销售并作为客户的产品,那么您就会意识到支持、增强和维护一个充满错误的产品是一项昂贵的操作。 因此,从长远来看,花在软件培训上的任何钱都会收回成本。

我什至会告诉你考虑以合同形式雇用一名软件开发人员作为指导和导师,例如六个月。

I agree with the general sentiments everyone is expressing here (start with programming, start small, especially learn by example/doing).

It is vastly easier to get developers to learn ArcObjects than to get GIS analysts to learn programming. Your task (to do both) is pretty difficult!

Still, if you have to start somewhere, I would first train them in C# or VB .NET basics (via a good web-based tutorial or paid course), and then following that up with ESRI .NET-specific training. As I said in a comment above, I wasn't impressed by the ESRI training courses. I have a software development background and I was able to learn the ArcObjects API in a couple of months - compared to two months of hands-on knowledge, the training course was really basic on the ArcObjects material. Still, it may work for apprentices, and you may luck out with your hires.

I also want to add that you definitely want to put the emphasis on software training first, and consider the ArcObjects API incidental. If this ArcMap extension is a product you intend to sell to people and have as customers, realize supporting, enhancing, and maintaining a bug-riddled product is an expensive operation. So, any dollar spent on software training will pay for itself in the long-term.

I would even tell you to consider hiring a software developer on a contract basis to serve as a guide and mentor for say, six months.

dawn曙光 2024-07-15 08:59:17

据我记得,ESRI 开发者网络上的一些代码现在是 C# 语言,至少那是我的 GIS C# 代码的主要来源,但抱歉,没有书籍。

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

As far as I recall some of the code at the ESRI Developer Network is now in C#, at least that was me primary source of C# code for GIS, but no books, sorry.

Perhaps this would be a good primer: http://www.pragprog.com/titles/sdgis/gis-for-web-developers

永言不败 2024-07-15 08:59:17

如果您的员工确实是编程新手,我会首先让他们学习 C#(或其他一些 .Net 语言,但 C# 可能是初学者的最佳选择)和良好的编程实践的基础知识。 我想现有的 stackoverflow 线程会对此提出建议。 我认为对面向对象编程的深入理解以及示例所用语言的语法将有助于 ArcObjects 的学习。

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

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

If your employees are really new to programming, I would start with having them learn the fundamentals of C# (or some other .Net language but C# is probably the way to go for beginners) and good programming practice. I would imagine there are existing stackoverflow threads that would have suggestions for this. I think a solid understanding of object oriented programming and knowing the syntax of the language that examples will be in will facilitate the learning of ArcObjects.

I am not really aware of non-ESRI books on ArcObjects. However I think their resources are adequate to get beginners started. In addition to ESRI course books, I would suggest starting with the online resourses at http://resources.esri.com/arcgisdesktop/dotnet/index.cfm

Other suggestions are to learn how to read the object model diagrams and to use the help to explore methods and properties of the ArcObjects. Also encourage the employees to take advantage of the ESRI user forums. There are a lot of knowledgeable people willing to help with questions there.

鸠书 2024-07-15 08:59:17

举例练习。

当我第一次开始使用简单但有趣的工具时,我玩得很开心,比如截取当前地图的屏幕截图并将其发布到 MediaWiki 网站(只需单击一次)。 大部分 API 看起来就像 Deep Magic,而且我不止一次通过浏览 Windows 注册表并进行有根据的猜测(例如如何在“数据视图”上下文菜单上创建自定义菜单项)偶然发现完全未记录的功能。

通过完成简单、可完成的作业,我总是能学到很多东西,而不是被迫阅读无聊、枯燥的书籍。

它有很多力量,但我在了解和理解其中的大部分方面确实进展缓慢。

如果不让它变得有趣,我认为开发人员会用这么大的 API 自杀。

Practice by example.

I had some fun when I was first starting with simple but interesting tools like one that took a screenshot of the current map and posted it a MediaWiki site (with just one click). Much of the API seems like Deep Magic and more than once I've stumbled across completely undocumented features by poking through the Windows registry and making educated guesses (like how to create a custom menu item on the "Data View" context menu).

I've always learned a LOT better by having simple, achievable assignments than being forced to read boring, dry books.

There's a lot of power, but I've certainly been slow in getting to know and understand much of it.

Without making it interesting, I think developers will go suicidal with an API that big.

橘虞初梦 2024-07-15 08:59:17

也不知道有关 ArcObjects 的非 ESRI 书籍。 对于ArcGIS Server软件和我来说,我只能推荐ArcGIS Server管理员和开发人员指南(即AGS安装框中包含的AFAIK) - 有很多代码示例,适用于C#和VB。 即使不使用 AGS 进行编程,示例仍然可以帮助您了解 ArcObjects 代码的工作原理。

Also don't know about non-ESRI books focused on ArcObjects. For ArcGIS Server software and for me, I can only recommend ArcGIS Server Administrator and Developer Guide (that is, AFAIK included in the AGS installation box) - there are many examples of code, for both C# and VB. Even if not programming with AGS, examples still can be usefull for educating how ArcObjects code works.

美胚控场 2024-07-15 08:59:17

我完全同意詹姆斯的观点。

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

好运。

I completely agree with James.

As someone who was in this boat 4 years ago, I firmly believe you should start with .NET programming then move to ESRI platform and not get bogged down by ESRI issues when you are trying to learn OOP concepts.

I would also like to point out that the ESRI developer resource centers hava a wealth of information for beginers [http://resources.esri.com/gateway/index.cfm]

If you start with .NET and desktop developemnt, you can see the 'getting started page' under [http://resources.esri.com/help/9.3/ArcGISDesktop/dotnet/concepts_start.htm]

good luck.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文