Skip to main content

The new development experience for Microsoft Dynamics 365 Business Central: Making things worse?

by Hannes Holst
Dynamics 365 Business Central Consultant, Freelance

I finally got in touch with the AL-language and VS Code in the spring of this year. My work is project-based and therefor, when a project ends, my next project should always include the latest Business Central version. In the time of Dynamics NAV the technological change was marginal compared to the latest changes with Business Central. Throughout the years, the .NET-framework was introduced, instead of "find(-)" it was possible (and recommended) to use "findfirst", and the code editor got some updates too (colored syntax highlighting, inspect definitions, collapse code blocks). All in all, they were nice additions but nothing groundbreaking ... ok, the introduction of .NET was a little bit groundbreaking.

Now with the AL-language and VS Code, Microsoft turns C/AL veterans into survivors of a car crash - they used to know how to walk and some things are still similar as before, but they have to learn key skills from scratch again.

Suddenly from the sleepwalking-like ability to support different version with a lifespan of more than 20 years, veterans have to know about version control, Docker, and which AL version you should use.


Finally, after all these Neanderthal-like years, the development of Business Central has been elevated to the level of modern programming languages with improvements like built-in capabilities to support the work of multiple developers in a single project, version control that allows a code history, and easy creation of Business Central instances.

I would also like to use this space to write about how much I love the new coding experience. Fully integrated IntelliSense, optimized to hack code into the editor - yes! But even with experience in Python before, I still forget that the parentheses are inserted automatically and I type them still every time by hand...

I think everyone with some experience in NAV development welcomes the recent changes like a long lost friend.

Going two steps back to go one step forward

It is a lesson of life - where the sun shines, there is a shadow. The possibilities that make working with AL and VS Code so great are a big hurdle for new talent.

I remember my first days with NAV. My manager at the time saw some potential in me, handed me a 120-page introduction into C/AL, and I was more or less ready to roll. The original concept did make it easy to produce quick results, which could be inspected on the screen. It was also very easy to get a glimpse of options within C/Side. It was possible to press CTRL + F4 nearly anywhere and the Properties Dialog showed all available options. Especially for beginners, this overview was very useful. In combination with the names of the options, it was possible to guess with a couple of tries which option needed to change to produce the desired result.

Also, the design of new tables or the creation of new fields was very easy. The graphical user interface made it possible to get a feeling of the possibilities with some clicks around the menu.

An empty canvas

Now, with AL and VS Code the experience is like going from Windows back to DOS.

There is a GUI, of course. But the GUI is standardized to cover the needs of programming languages in general. That is why everything related to AL in VS Code has to be controlled using the keyboard.

A person who starts a new project is greeted with an empty screen. All kind of options, properties, attributes, fields, and triggers have to be entered by hand. Unfortunately, VS Code does not provide an overview of which options are available. This means for new talent, that you either need a good relationship with your co-workers to ask a lot of questions or you must go through a lot of documentation until you know what is possible and what is not.

Unfortunately, the official documentation for the AL-language has still some gaps. For example, the easiest way to create a FlowField is by looking up how the property string is generated in C/Side and copy it into VS Code. Also, the new native integration of JSON is a headache because the official documentation does not contain a lot of examples.

This experience could cause frustration, especially for someone without prior knowledge about NAV or programming in general.

There is more to learn now

FREE Membership Required to View Full Content:

Joining gives you free, unlimited access to news, analysis, white papers, case studies, product brochures, and more. You can also receive periodic email newsletters with the latest relevant articles and content updates.
Learn more about us here

About Hannes Holst

Hannes Holst is a Dynamics NAV/365 Business Central freelancer with more than 13 years of hands-on experience. His involvement covers the full spectrum, including consulting and development of tailor-made modules and gold-certified industry solutions in various industries. He helps companies to prepare the business for future growth by adapting most of the standard functionality of Microsoft Dynamics 365 Business Central into the company's processes.

"I always try to translate the (technical) world of Dynamics NAV and Business Central into a language that everyone can understand. Having all participants on the same level of understanding is a great foundation to create situations in which everyone wins."

Hannes also tries to convey Artificial Intelligence and Machine Learning into the world of Dynamics 365 Business Central. Check out his blog for details and keep an eye out for 365 Saturday-events where he holds introduction sessions for Machine Learning.

Hannes has done work for Dynamics NAV and Business Central-projects in Germany, France, Denmark and the USA. Currently he is located in London, UK. In his free time, he studies Japanese and once or twice a year, he likes to run a marathon.

You can find more information about Hannes and his blog on his website

More about Hannes Holst