Random note: Here is a great t-shirt that reminds me to try and make my blog posts relevant and valuable.
If there are any readers out there who are "GP Developers", I'd like to hear what languages you use to customize or integrate with Dynamics GP. Specifically, do you use VB.NET, or C#?
I used Visual Basic since the mid-1990s, so VBA and VBScript support in GP didn't require any transition for me, except to learn the quirks and proprietary objects, methods, and events. But I procrastinated with .NET, and finally made the transition in 2007 (I know, I know). Naturally, I just moved to VB.NET, which allowed me to focus on .NET, and not worry so much about language syntax. I think that was probably wise, as I'm constantly reminded of how amazingly expansive the .NET framework is--sometimes it can be tough just navigating through it without having to worry about language syntax.
However, in college I spent a year learning and developing with C++ and have studied C#, so the language and syntax shouldn't be terribly challenging, in concept. (I'm sure I'll accidentally type Dim quite a bit at first.)
As I've been getting help from my friend Lorren to better understand practical Object Oriented (OO) application architecture, and how to best design OO apps in .NET, I'm seeing that besides a few minor syntax and language benefits that I've known about, there are some fundamental benefits to C# that probably make well designed OO code more straightforward.
Most recently, I discovered Class Constructors in VB.NET. They've always been there, but until Lorren explained them to me, I had never used them. My interpretation is that VB.NET essentially hides the constructor from you, which can be convenient. But the downside is that when you want a constructor, you have to do silly things like declare "Public Sub New()" in your class, which is not terribly intuitive. We also discussed how VB Modules appear to provide the same functionality as a Static Class in C#.
So my very nascent understanding is that VB had to create workarounds in the name of convenience or simplicity, and those workarounds result in some potentially less-than-optimal implementations, or implementations that obscure the mechanics of .NET to the developer.
Aside from the specifics of the language itself, one of my concerns around developing in C# has been what I perceive as a relative shortage of C# developers vs. VB developers. If there are benefits of developing in C#, but I have a harder time finding a contractor to help me modify or write code, the benefits may not be worth it. So far, all of the GP developers I've spoken with use VB.
I'm sure there are plenty of C# developers on the planet, but are there many Dynamics GP developers who are proficient in C#?
I don't know.
If you code for Dynamics GP, what language do you use? Or if you know GP developers or GP partners or GP ISVs that do GP development, what language do they use?