Sunday, 14 June 2009

x++ and C# compared

One indicatation that Dynamics AX developers need to learn C# in order to take full advantage of future versions of AX is when MS starts documenting differences in coding practices.

Personally, X++ was the first programming language which I've felt pretty comfortable with even though I've done som Java programming ( and the mandatory html coding which most programmers start out with ).

I see the need for AX developers to hone ( or just begin on ) their C# skills with the introduction of EP ( version 2009 ) and the reporting service integration with e.g. the role center. I've done som Hello Word-ish programming in C# using Visual Studio 2008 and I must say that I like it. One area where X++ and MorphX out ranks C# and VS is form development. After having created some rather basic forms in C# using VS it was a pleasure returning to MorphX's drag and drop design.

From what I can gather future version of AX will include a brand new approach to the layers and id ranges on elements but these advantages a side - MorphX still could adopt some of the features from VS, in my opinion. One thing I really like about VS is it's IntelliSense (Thanks Morten)"smart typing" ( I don't know what else to call it - but it's the feature when you start typing something VS automatically completes the string ) - it can be done; AxAssist does it for you - but why not integrate the functionality into MorphX as a standard? Well - perhaps in AX 6?

2 comments:

Morten said...

The word you need must be "intellisense", http://en.wikipedia.org/wiki/Intellisense

Kind Regards,
Morten Lehrmann

Dick de Jong said...

There are quite some differences between software development in C# and X++ ... In visual programming X++ is strong. On the more technical side, C# is superior without any doubt ...

AX is strong in :
- visual programming
- db integration
- xml integration

AX is weak in:
- editor (intellisense, after one compilation error it stops, code completion, auto code formatting, etc.)
- garbage collector (circular refs)
- build framework / continuous integration ...
- Generics / templates
- Compiler
- Build facilities / continuous integration
- Name space support