Tuesday, September 8, 2009

Dynamics GP Developers: What language do you use?

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?

11 comments:

  1. Thanks @japhethnolt. Have you ever considered C#? If not, any particular reason? (company standard is VB, don't see any benefit, clients use VB, why bother, etc.)

    ReplyDelete
  2. VB.NET, apparently. I also used VB.NET for couple of my GP related eConnect projects just because I knew VB pretty well and I just wanted to concentrate more on the .NET part instead of the predecessor. Very very recently I got an idea about the exactness of C#.NET. So it's like task oriented decision to either use VB/C# .NET.

    ReplyDelete
  3. Most of us ... developers at our company - use C#. Its a matter of personal choice actually, but we've found we are more productive using C#. There are more code templates and snippets in C# which are a big help too.

    ReplyDelete
  4. Thanks Jivtesh. Are you an ISV or commercial software company? Or are you a GP VAR?

    So far, I'm finding that ISVs that develop commercial software seem to favor C#, whereas GP consultants that do development, or independent developers, seem to favor VB.

    ReplyDelete
  5. Steve,

    I have to agree with you in terms of ISVs' that do commerical software and Consultants.

    ReplyDelete
  6. VB.NET for all our GP mods. Reason at start was it was most accessible for network team who are not developers but can read VBA macros and MS Access VBA and hence find vb.net not too hard to "read" to understand issues or what functions are doing for support issues.

    ReplyDelete
  7. Thanks Tim, that's a great point: For non-developers, the VB syntax may be simpler to read, and if someone has any type of VBA / VB Script / MS Office macro experience, VB.NET would potentially help with crossover between different roles.

    Whereas in a true development shop, like an ISV, there is a dedicated development team who may benefit from the features offered by C#, while not necessarily needing to be concerned about accessibility by non-developers.

    ReplyDelete
  8. Dexterity... okay, okay, I am also a C# programmer.

    I first started with C, C++, Borland C++, Visual C++, so I guess the natural progression was C#. I do believe commercial grade applications must be written in commercial grade environments, though the .NET Framework has bridged the gap a bit between VB.NET and other .NET managed development environments.

    ReplyDelete
  9. Personally I like VB, I think the experiences we all have in this language made it easier than C#!!

    ReplyDelete
  10. "We all"?, I have to disagree. If my research serves me correctly, VB programmers (VB & VB.NET) are actually in decline. Most developers are favoring other technologies like Java, C, and PHP.

    In fact, if you combine the number of developers currently programming in C, C++, and C#, you end up with a wapping 31% of the development community versus 9% of developers coding in VB.

    Take a look at the following updated survey at http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

    MG.-
    Mariano Gomez, MVP

    ReplyDelete