Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I know that many of you guys don't like GIS analysts that turn (or act as part time) programmers and think that their codes are sloppy (which I guess that they are many times) but as everybody has to start as a newbie, I have a few questions:

I have basic programming skills (I program simple vba python and lisp scripts and had gone through a java course a long time ago), but it seems to me (judging by ESRI publications)that there is no escaping the need to learn .NET for future relevance in the GIS job market (even as an analyst). I've gone through a basic c# course and can program (regrettably) quite poor programs, but I have no idea how to link the c# knowledge to actually programming for arcgis in order to progress.

1) I know the differences aren't big, but does ArcGIS use .NET or C# ??

2) I know the best way to further my experience in .NET is to program more and more but are there any good .NET programming books or courses I can learn techniques from?

3) In your opinion, what is the best way to learn to program in .NET for ArcGIS ?? Are there any useful books or websites?

EDIT COMMENT (added later): I appriciate your comments regarding ArcGIS 10 (and will be saving them for later) But If you could give give me some heads on for ArcGIS 9.3.1 that would be grand (I'm finding myself in a very ackward position that while esri and the whole world are focused on ArcGIS 10.0 (including local esri representatives), almost nobody in the country upgraded from 9.3.1 or have plans to do so, and am personnally having problems seeking 9.3.1 appropiate answers).

share|improve this question
Are you talking about Desktop or Server development? i.e. web apps or Desktop based apps/add-ons? –  Simon Sep 21 '10 at 2:51
OH sorry, I meant strictly Desktop (Which I reckon is a bit easier, no?) –  user749 Sep 21 '10 at 5:08

6 Answers 6


This sample will allow you to get a map displayed inside of a Visual Studio environment. You can program in C# or VB.NET (both .NET langs).

share|improve this answer

Migrating over from VBA to .NET is quite tricky. I know python is all the rage at v10, but hoping ESRI put something together for a pathway around moving to .NET with Add-Ins. Ideally an equivalent to the great book on 'Getting to Know Arcobjects" which is specifically around VBA.

Have a read through this (2008) pdf about migrating from VBA to NET I would also recommend reading this link in the v10 webhelp

share|improve this answer

Web ADF is ESRI's .NET SDK. It will be deprecated after its next release.

However, if you are using 9.3.1, Web ADF will be your toolset for .NET. There are plenty of resources online, ESRI and otherwise.

As for getting better at programming in general, never stop reading! Read programming blogs and website. Use Stack Overflow. Never be afraid to ask questions. Read Code Complete, and other highly regarded books on programming and software development. Read everything you can get your hands on! Good luck!

share|improve this answer
Although I agree with all your thoughts, this Q is specific to desktop, hence the downvote. –  Simon Sep 21 '10 at 5:09
i think you should reconsider the downvote. the question was revised to include desktop 5 hours ago, but he answered 10 hours ago (gis.stackexchange.com/posts/2047/revisions) . I think it's better to not vote at all in this case rather than to downvote, which will undoubtedly result in a sympathy vote (resulting in a +3 rep). –  Jay Cummins Sep 21 '10 at 12:30
or maybe leave a comment without downvote initially and give the answerer a chance to modify/delete the answer? jscharf hasn't been on since he left the answer. good question for meta.gis.stackexchange.com –  Jay Cummins Sep 21 '10 at 12:34
I agree with Jay, it was a poor downvote. I will however edit the answer to remove the 10.0 specific stuff, in light of the edit to the question. –  jscharf Sep 21 '10 at 15:26
Downvote removed. Applied it to push this answer below the rest, as its not relevant to Q. –  Simon Sep 22 '10 at 10:49

1) ArcGIS or ArcObjects is a COM model, with a .Net, Java and C++ wrapper on top. So any .Net language or Java or C++ can be used. See the ArcObjects Help .Net, Java, C++

2) I would suggest a refrence book wit a lot of content, like Begining C# or VB.Net from Wrox.

3) I would start by looking at thte samples in the dokumentations. Specially the add-in stuff.

share|improve this answer

If you want to write stuff that avoids the scorn and derision of programmers, stuff that you can feel proud of in a portfolio, you'll want to get a really firm grasp of object oriented design and development (if you don't already). Mastering specific languages and frameworks can come later.

By all means, use .NET and ArcObjects as the go-to language/API when working through programming exercises in some good software development books. Here are a few to start:

  • The Pragmatic Programmer: Best practices when writing code, and some good stuff on the software project life cycle.
  • Code Complete: Similar to the above, but with a great deal more detail and examples.
  • Test Driven Development: TDD forces you to conform to some of the practices the two above books recommend.
  • Head First Design Patterns: If you are having to deal with ArcObjects, you are going to want to know about design patterns. The API is sick with them.

Code Complete is pretty big, but the rest of them can be quick reads. I'd actually recommend the first two books for GIS people that will never write a line of code. There is some great stuff in there on source control, project management, communication, and good design principals.

share|improve this answer
I couldn't agree more. Take a grass roots approach and it will pay dividends. –  Kelso Sep 22 '10 at 1:19

I'd suggest not relying on the ESRI samples to learn programming skills in general or .NET in particular. That's not a slam on the samples or the people who prepared them; samples are meant to show how a particular thing could or should work. For brevity, a lot of things are left out of samples. Also, most ESRI samples I've seen are not object-oriented but spaghetti code.

It sounds silly, but the way I transitioned from Visual Basic 6 to VB.NET and C# was to study the certification books. At the time, there was a lot of emphasis on what was different between COM and .NET since it was new. A good grounding in your development language of choice will help you navigate through the minefield of software company samples and documentation.

Also get to know COM Interop; ESRI does have some good info on it, but it's ESRI-specific. In ArcGIS, COM Interop may not be your friend but you will suffer a lot of debugging without it.

share|improve this answer
I agree, programming in general is not something you benefit from learning in a more abstract environment than GIS applications; in addition most successful GIS programmers I know haven't come from a GIS- or Geography- specific background –  WolfOdrade Sep 23 '10 at 16:06

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.