Martin "Goshoom" Dráb – Dynamics AX, .NET and Everything

Menu

X++ words reserved for future use

The Best Practice Check in Dynamics AX complains if you use some words as identifiers, because they may be used as keywords in future releases. For example, if you name a variable namespace, you’ll get the following Best Practice error:

The name namespace will be used as a reserved word in a future release.

Although Microsoft says “will be used”, I would read it as “might be used”. Nevertheless it’s still worth to look at it – it represents what Microsoft considers to implement (or considered, because the same list existed already in AX2009 and plans may have changed since then).

Here is the full list of these words:

As

Attribute

Enum

Foreach

Friend

In

Instance

Internal

Long

Is

Module

Namespace

Native

Out

Override

Readonly

Ref

Unique

Unsigned

WebService

XMLRoot

As and Is are already with us – they were added to X++ in AX2012.

I have no information about what changes are planned for the next version of X++, but some of these keywords refer to concepts currently unknown to AX: assemblies (or other packages), namespaces and so on. Although it would be possible to create some unique solution for Dynamics AX/X++, it makes much better sense to reuse what already exists: .NET. Dynamics AX is moving to this direction for many years, the question is where it will end up.

I believe (and hope) that X++ will be turned to another .NET language and I even believe it may be quite soon. We already have a way to compile X++ to CIL (although it’s currently far from a “normal” compiler) and with the help of Code Upgrade Service, it will be realistic to upgrade huge amounts of legacy code.