Writing this blog to me feels like describing the differences between developing ASP.NET Core solutions in Visual Studio Code or in Visual Studio itself. This is similar in the sense when you are used to seeing more graphical tools like the C/AL designer to a more folder text based approach that achieves the same end goal of delivering a customer solution.
I would like to share some of my experiences to get you that C/AL guy looking to move to modern development AL a lot more easily, and hopefully save you a lot of time in the process.
The information below is based on Microsoft Dynamics NAV 2018 at the time of writing and assumes that you played at least somewhat with creating AL solutions.
The link above is so important if you are in a situation where you need to access other objects that have been added to the object designer and need to access their functionality from AL. This comes into play when you need to download symbols. Some use case examples of this are listed below of why you may want this:
Accessing .NET functionality that has been wrapped in a codeunit.
Accessing Server Files that are on the service tier.
Accessing custom objects that have been imported from a colleague or older solution.
Just as a side note if you need to create a C\AL codeunit that has public functions. You need to set the properties of the functions you want to be External for AL to be able to call them.
2. Use the Right Extensions for the Job
So, you've managed to get a NAV product CD or installed one of the Azure images with the Modern development loaded. But you may find that the version that is loaded into your Visual Studio Code doesn't play nice with you when you need to create reports and that. When you google these issues, and follow the steps you don't get the same results as creating reports :)
There are two great Visual Studio Code extensions for AL that are on the marketplace and not on any installation CD. These two listed in the image below really provide the right tools to develop AL extensions with ability to have an object browser within Visual Studio Code so that you don't have to bonce back and forth between development environments to discover functions in other objects.
I encourage any NAV developer to investigate further on using these Visual Studio code extensions. Once you really get stuck in you'll find that coding in AL is very similar to C\AL. The benefits of moving across is all there and opens many doors to your development experience with other technologies like git source control instead of locking objects in the object designer... really :)
If you like this blog and it has helped you, be sure to let me know and I'll create more content.