Finally. Not quite, but still – finally! We finally get the first public glimpse of future of AL code writing, courtesy of Microsoft Dynamics NAV development team.

As you might know, Microsoft is working around the clock to enable new kind of programming for NAV: using Visual Studio Code instead of Microsoft Dynamics NAV Development Environment. They announced it with due fanfare at Directions US, Directions EMEA, and NAV TechDays, and now the NAV community is biting their fingernails off waiting for Microsoft to actually release the thing.

They said some kind of preview will be made somewhat available sometime in December this year, but for now we have got the first glimpse of the new AL syntax.

To see for yourself, go here:

Just for comparison purposes, take a look at what a simple “Hello, World!” codeunit would look like in the new syntax, as opposed to the (too) verbose text file format:


It’s a huge difference. Okay, the editor extension itself is not published yet, so for now we can only behold the syntax, but that’s a great first step.

What I absolutely like:

  • Casing: keywords are lowercase, identifiers are title case. This finally resembles serious programming languages.
  • IDs: or lack thereof. It may seem like a small step for man, but it’s a giant leap for NAV development world.

What I don’t like:

  • Object IDs are still here. Yes, I know it’s a long shot to even hope to lose these pesky little gremlins anytime soon, because it would require a major brain surgery of the entire NAV platform, but I had to put something into the dislike section.

According to Microsoft, the immediate goal of enabling VS Code development is to enable us to write NAV extensions (and D365 apps!) without using the development environment. This means that (for now) we won’t be able to use this tool for general NAV development, but I’ll hope a little more and say that I am looking forward to the moment not only extensions are developed in VS Code.

And, by the way, did you notice that there are no more IDs?

Read this post at its original location at, or visit the original blog at 5e33c5f6cb90c441bd1f23d5b9eeca34

The post appeared first on