tags:

views:

664

answers:

3

Hello all. I'm a computer scientist and i've been working with Java mostly to develop applications. I just been hired in a company that makes projects with ArcGIS. The company has hired na electrical engineer to develop the arcGIS projects. This engineer used to customize ArcMap with VBA and lately extensions with .NET and C#.

I want to take a new path and start using the ArgGIS Engine with Java. I want to know if this choice is right.Has any of you been developing with Engine-Java and how difficult is it(The use of JNI -for which i have little knoledge- is making it more difficult? ). Also i have a little experience with .NET and c++ but not C#.I will have a big learning curve with this path?

Also which are the advantages and disadvantages and limitations of each method?

Thank you

+1  A: 

I would go for .NET and C#

If you know java and C++ than C# must be easy. You will just need to find your way through the .net framework that's all.

You will be safe with C# if you ever have to make some rich internet application in combination with arcgis and Silverlight (C#).

juFo
+2  A: 

Hard question to answer.

  • The general opinion seems to be that C# is easy to learn if you know Java.
  • IMHO your biggest problem is going to be learning and manipulating the massive, convoluted ArcGIS object model. Choice of language is probably secondary.
  • My instinct is that C#/.Net is probably more popular for desktop programming with ArcGIS, so you'll get more community support with that. But I don't know. There's clearly a lot of folks using Java with ArcGIS - I suspect it's mostly server work, but I'm not sure. You might be able to figure out how popular ArcEngine with Java is by checking out the ESRI forum activity.

EDIT. You probably need to decide whether learning C# is going to be valuable in future to your employer (and your career), and balance that against some assessment of whether using Java with ArcGIS engine is unusual, and therefore more risky. Only you can answer the first question.

MarkJ
+1: your second point nails it. Whatever language you choose, you're always programming ArcObjects. The language itself is merely the glue that holds them in place (if you're lucky). I've programmed ArcGIS in VBA, VB.Net, C#, F#, and it's the non-ArcGIS-related parts of the application where the choice of language matters most.
cfern
+2  A: 

Hi,

I absolutely in all respects suggest you stick with C#/.Net over Java. Last time i looked (take this with a grain of salt), the Java Library + COM inter-opt done with ArcGIS is pretty slow when working with certain elements (Arrays, oh god the arrays), also i am pretty sure Java will most likely be the next language to be put onto the cutting block in the near future(VB6 is now getting the axe). Also ESRI's java community is pretty tiny compared to their C#/.NET (however about 50 times bigger then their C++ :()

UberJumper
There's more hits for Java than C# when I search on the ESRI site. I was surprised. Probably web server stuff not desktop though?
MarkJ
The key difference that i have noticed in regards is QUALITY over quantity. Also check out their ESRI development network(EDN). Quickly looking at the tutorials and sample code uploaded, java really isn't up there.However, no matter how you do it. Working with ArcEngine / ArcObjects is painful. So painful. From my works experience, we have received the best support when dealing with C#/.Net.
UberJumper