Visual Studio Code and AL


These release notes describe functionality that may not have been released yet. To see when this functionality is planned to release, please review What's new and planned for Dynamics 365 Business Central. Delivery timelines and projected functionality may change or may not ship (see Microsoft policy).

The April '19 release focuses on preparing to move the base application and country modifications from C/AL to AL, on optimizations for working with large projects (such as the base app on AL), as well as on additional productivity features addressing feedback from internal and external developers.

Application as an app

As shown at the Directions 2018 conferences in North America and EMEA, we are working on moving the base application and tests from C/AL to AL. We will be running these in parallel internally and are planning to ship these in preview mode on Docker images before or as part of the April '19 release. The April '19 release is based on C/AL and C/SIDE, and plans are on track to switch to AL and Visual Studio Code as the supported platform for new releases within 12-24 months from our October '18 release.

W1 application converted to AL

Supporting larger projects

In parallel to converting the base application to AL, we are focusing on optimizing the developer experience when working with large projects such as the base application. Some of the investments involve improving:

  • Performance on the internal metadata repository used by compiler and IntelliSense.
  • Load, compile, and build times for large projects.
  • Working with project references.

Outline View

We are adding support for the standard Outline View in Visual Studio Code. This allows developers to get an overview of the symbol tree of the currently active editor and navigate to locations in code editor. There are different sort-by modes—you can find or filter on symbols as you type, and errors and warnings are also shown in Outline View, letting you see a problem's location at a glance.

Outline View

Designer no longer takes dependencies on all extensions

The In-Client Designer used to take dependencies on all the extensions installed. This is no longer the case—it only takes dependency on the extensions that are necessary, removing the need to edit these in Visual Studio Code after consultants or customers have used the Designer for small changes.

Debugging client sessions

Due to a gap from earlier versions, and responding to community requests, we are adding support for attaching to already running client sessions (for example, browser and web services) when debugging.

Code Actions support

Visual Studio Code has a framework, Code Actions, for quickly fixing errors or performing refactoring. We are adding support for this framework in AL projects, and will also be releasing some quick fixes for common problems.

Code Actions

Multiple objects ID ranges in app.json

With this release, you can now add multiple ID ranges in the app.json file to have the compiler issue warnings if IDs are outside of those ranges.

Extension IP

We are adding support for a protected visibility modifier and have also modified the runtime extension format to a binary format.