FAQ for Developing in AL

This topic contains a number of frequently asked questions and answers to these questions.

How do I get started?

For an overview of developing apps for Dynamics 365 Business Central, see aka.ms/GetStartedWithApps

Next, follow the Getting Started with AL to set up the tools.

Which version of the AL Language extension should I use?

  1. For Dynamics 365 Business Central cloud sandboxes you must use the AL Language extension available in the Visual Studio Code Marketplace.
  2. For the latest Developer Preview releases you must use the AL Language extension that is available on the Docker images.

How do I enable the debugger?

To read about enabling the Visual Studio Code Debugger, see here Debugging

Can I create something similar to Menusuites?

In the AL Language extension, the concept of Menusuites is not supported. The two primary purposes of Menusuites are:

  • Making pages searchable
  • Making pages accessible through a navigation structure

The first purpose can be achieved in Extensions by using the new properties added to Pages and Reports. For more information, see Adding Pages and Reports to Search.

The second purpose can be achieved by extending the Navigation Pane page and/or by adding Actions to other existing pages that can serve as a navigation starting point. For more information, see Adding Menus to the Navigation Pane.

How do I upgrade Extensions V1 to Extensions V2?

For information on upgrading, see the following topics: Upgrading Extensions v2 and Converting from Extensions v1 to Extensions v2.

File APIs are not available in Extensions V2. What do I do?

Code that relies on temporary files must be rewritten to rely on InStream and OutStream types. Code that relies on permanent files must be rewritten to use another form of permanent storage.

DotNet types are not available in Extensions V2. What now?

For cloud solutions .NET interop is not available due to safety issues in running arbitrary .NET code on cloud servers.

With the AL Language extension, you can find AL types that replace the most typical usages of .NET like HTTP, JSON, XML, StringBuilder, Dictionaries and Lists. Many .NET usages can be replaced directly by the AL types resulting in much cleaner code. For more information, see HTTP, JSON, TextBuilder, and XML API Overview.

For things that are not possible to achieve in AL code, the recommendation is to use Azure Functions to host the DLL or C# code previously embedded and call that service from AL.

See Also

Getting Started with AL
Keyboard Shortcuts
AL Development Environment