Not Everyone Uses .NET or Java
Looks like some ESRI developers aren’t sure where they fit within the new ESRI developer community.
…but those of us who are straight ArcObjects programmers for in-house applications didn’t have much choice. There were very few sessions geared to helping us RIGHT NOW, and I think that ESRI needs to understand that.
I’m sure not everyone has plans to migrate to .NET or Java in the next year so any new site should probably still cater to those who want to develop with VB, VBA or C++. At the very least there probably needs to be more migration examples and best practices to help those who want to move to .NET or Java. Like it or not, there are tons of VBA and VB6 applications being developed using ArcObjects and these folks can’t be ignored.


Ahhhh… the life of a software developer, constantly having to evolve, re-tool, migrate. When one starts resisting that reality it may be time to hang up yer spurs and move into project management.
KML Home Companion is an excellent example of a very nice, recently created GIS tool using VB6 and/or ArcObjects.
The future is .NET & Java, but there is a whole bunch of important tools out there for GIS Users that aren’t converted yet. I agree with James, there needs to be continued support for those tools and the people who wrote them, in addition to a strong emphasis on code migration. I would hate to just “turn the corner” and have lost all my tools and the people who created them. I went through that with the 3.x to 8.x move several years ago and still have not replaced some of those 3.x “extensions” functionality.
The future is not Java. Java is now and in a couple of years, will be “then”. .NET seems to be doing pretty well for itself.
The future is dynamic, non-compiled languages like Python, Ruby, et al.
But I agree that also supporting something as near-universal as C++ isn’t a bad move.
We have about half a million lines of ArcObjects code written in Visual Basic and C++. But in the past year we’ve completed the transition to .NET, and all new code gets written in C#. (The old stuff works just fine) While I agree that continuing to support the old languages would be nice, I’m pretty sure ESRI’s budget for developer support is fixed. Supporting 4 environments instead of 2 means that each of those environments gets half the support that it does now…
Forward ho!
We have zero plans to move from VB for our arcobjects internal projects. I’m not asking for the same level of support for VB as .NET, but I’d like at least some. I can’t imagine that every application ESRI builds for their consulting business customers is pure .NET or Java.
In addition to the usual arguments about why C# or Java are better languages than VB6, here are two more:
1. Microsoft no longer supports VB6- why should ESRI?
2. It looks better on your resume.
And if your company is digging in its heels and refusing to consider alternatives to VB6, #2 might become useful (or necessary).
BTW, for VB6 programmers who want to learn .NET, I highly recommend C# over VB.NET.
1. C# programmers make more money than VB.NET programmers (really)
2. It’s a better structured, more consistent language.
3. There’s more support for this language on the web and in your local bookstore
I’m in the Coldfusion camp for my web apps. With its inherent ability to use just about any language within its own syntax, I see no reason to change. Using java is especially simple. I can usually develop an app in half the time that you .net or pure java folks can. We do plenty of .net and pure java here too, CF is just my language of choice.
What really excites me is all the new flash centric ESRI stuff, and us CF’ers have been leading the charge with that stuff for a few years…now even more than ever with the tight Flex/Flash/Coldfusion integration.
Even as a VB.NET developer, I have to agree with Rich that C# is getting some preferential treatment – both from ESRI and Microsoft.
It’s pretty obvious in Visual Studio 2005. When you first start it up, it asks you to choose which language you use the most, and then configures itself for you. If you pick VB.NET, it hides a bunch of settings, and somewhat dumbs down the interface. Quite irritating.
That said, we are finding our clients asking for code in VB.NET, so transitioning to C# is going slower than expected.
But, the bottom line is that in both VB.NET and C# you write the same code, with the same classes with the only real difference (for 99% of cases) is some { }’s and ( )’s
As for VB6. Run. Run fast. Once you get into .NET you’ll be amazed that you put up with VB6 for so long. Get Visual Studio Express – It’s FREE… http://msdn.microsoft.com/vstudio/express/vb/ and http://msdn.microsoft.com/vstudio/express/visualcsharp/
personally we have migrated to .NET (well if you call MapObjects in .NET migrated) so classic ASP and VB6 are a long memory.
That said, since there are still people holding out on Avenue I think there has to be more migration support than just forcing people to go cold turkey.
>> I think there has to be more migration support than just forcing
>> people to go cold turkey
What exactly is missing?
I see nothing on EDN about migrating from VB6 to .NET
>> I see nothing on EDN about migrating from VB6 to .NET
I guess I just don’t see why that is ESRI’s job. We are using programming tools that are much bigger in scope than ESRI. ESRI just provides an API for use within that environment. There is a ton of info on Microsoft’s website on how to migrate code from VB6 to .NET, then ESRI has plenty of info about how to exercise their API from within .NET
Its ESRI’s job if they want me to buy a license of ArcEngine. I can continue to use MO and MOLT for our work.
Honestly I don’t care that much, but if you ask for examples I say getting MapObjects developers off of that API and on to Engine should be at the top of their list as they are getting killed on the licensing of MO.
I reread my message above, and it’s a little vague about what “we’ve completed the transition to .NET” really means.
What it means: All new code gets written in C#
What it doesn’t mean: code migration. The huge VB/C++ codebase is fully debugged and working quite fine, thank you very much. There is no business or engineering reason to translate it into a different language.
I do not recommend translating existing working code into a different language (unless of course you have a business case to do so)
I whole heartedly agree with Mike. I don’t want to sound harsh, but people need to pick their poison (.NET or Java), buy some books and start learning. No matter what ESRI puts on a web site, the learning occurs in your head, at your keyboard.
I agree that ESRI should provide some starting points for this transition, and they have walkthroughs for both C# and VB.NET (Hopefully the link worked!)
Additionally, I’d say they actually do a good job on some of the more complex parts – COM Interop with .NET etc, and there are a number of articles on EDN about this (http://edn.esri.com/index.cfm?fa=search.results&c_2_a=on&sa=2&q=COM+interop)
As for the specifics of migrating VB6 code to .NET, there is the (limited) VB.NET project upgrade wizard built into Visual Studio.
(File –> New –> Convert). I can’t say how it will work with ArcObjects, but between this and the walk throughs and intellisense, I think it’s a pretty good package to get started.
I’m not trying to be argumentative, just trying to understand more about what people feel is missing.
Language migration is different from API migration. You see, the example Erin provided: MO vs ArcEngine is a migration choice between ESRI’s APIs that is independant of which programming language is used to exercise that API. You could migrate to ArcEngine and use VB6, VB.NET or C# or something else. Obviously ESRI should be marketing and educating users on how to do that (MO -> Engine) b/c they want to sell you their new API.
I’m just not sure how much they should have to do on the language migration issue when Microsoft and others have created a mini industry on education that already targets the language (VB6 -> .NET) issue.
@andrew,
“The future is dynamic, non-compiled languages like Python, Ruby, et al.”
I completely agree. I’ve been immersing myself in Ruby (and Rails) for the past several months, and I was already a little familiar with Python. Dynamic languages are, IMO, the future of many types of programming, especially web apps. It’s hard for me to go back to .NET after using Ruby/Rails for a while. I’d love to see ESRI support Ruby, but they probably figure Python is good enough.
While you, ESRI and other mapping vendors were busy migrating to .NET, Microsoft was enhancing their mapping software with features stolen from competitors.
With .NET 2.0, Microsoft once again forced everyone using .NET to rewrite their code. Yes, that’s right, rewrite: the ASP.NET 2.0 components replace the old ASP.NET 1.1 components. The 1.1 components are “deprecated” (tossed into the trashbin of software history).
Lather, rinse, repeat. When will developers realize that Microsoft is in business – your business. Continuing to use their software tools guarantees that, if you succeed hugely, Microsoft will take your market away.
Hi
I am new to gis can i get some sample codes in vb.net for customizing arcmap using arcobjects.I am a beginner.I will be really thankful to you.
regards
ashik
Excellent discussion- I have basic skills in programming GIS applications with VB6 and I would like to learn VB.NET. Does anyone know of a good VB.NET programming book for GIS application development?? Thank you and best regards,
Josh
Josh,
I don’t know of any books that look at VB.NET + GIS specifically. I’d suggest getting a couple of books on VB.NET – personally I like thw Wrox Press books – build a few non-gis apps to get the feel for the language, and then dive into some ArcMap customization, using the ESRI help docs.
Cheers,
Dave
Considering ArcGIS Server and ArcObjects:
What are the top 2 languages I should learn?
Is Python an option?
IMHO I think that ArcObject VBA will be the most used way to customize ArcGIS, until we won’t se a Visual Studio .NET For Application embebbed in ArcGIS.
I’m a beginer level programmer in VB.NET,I want to develop ARC INFO with help of VB.NET.
Can Any body having fare idea regarding this are ready to help me?
I am keenly waiting to get reply…………..
hi friends, i want to get concept to attaching library of arcobjects by .net. i want to develop stand alone application with .net. help to get the starting point