Configure the development environment
Configuring the AL development environment for Business Central: VS Code AL Language extension settings, performance tuning, runtime targeting in app.json, resource exposure policy, Docker containers and GitHub Codespaces. It answers setup, configuration and IP protection questions, with a subtopic on the JSON files.
Path: Development > Development environment > Configure the development environment · tier official · system administration · narrative reviewed (checked by Opus)
Overview
This section covers how to set up and tune a Business Central AL development environment. It includes the AL Language extension settings in Visual Studio Code (compilation, code analysis, debugging, editor behavior) and a page on improving performance with large projects.
Two pages cover where code runs. One describes a container-based environment using Docker and the BCContainerHelper PowerShell module. The other describes cloud-hosted development in GitHub Codespaces through a devcontainer.json file.
Other pages cover project-level settings: the runtime property in app.json for targeting a platform version, and the resourceExposurePolicy setting for protecting source code. The JSON files subtopic (app.json, launch.json, Directory.app.props.json, migration.json) details the configuration files. Start with the AL Language extension configuration page, then pick a container or Codespaces setup.
Key points
- The AL Language extension settings control compilation, code analysis, debugging and editor behavior, including incremental build, code analyzers, symbol search, profiler and snapshot debugging.
- To speed up VS Code with large projects: disable code analysis, enable incremental builds, and adjust editor settings such as background compilation, code actions and format on save.
- The runtime property in app.json sets the platform version an extension targets, which determines available features and publishing compatibility.
- resourceExposurePolicy has allowDebugging, allowDownloadingSource, includeSourceInSymbolFile and applyToDevExtension; the NonDebuggable attribute also relates to IP protection.
- A dynamic policy override using Azure Key Vault can give time-limited access to an extension’s source code.
- Container-based development uses Docker, Windows containers and BCContainerHelper to create and manage sandbox containers and install apps.
- GitHub Codespaces development is configured with devcontainer.json (tools, VS Code extensions, settings, CodeCop and UICop analyzers, environment variables, port forwarding) for fast onboarding and consistent teams.
- The JSON files subtopic covers app.json, launch.json, Directory.app.props.json and migration.json (4 pages).
Subtopics
- JSON files (4 pages)
More Learn pages
- AL Language extension configuration: Description of the AL Language extension settings in Visual Studio Code for Business Central.
- Develop for multiple platform versions: The AL language extension is compatible with multiple platform versions for developing solutions in marketplace.
- Optimize Visual Studio code editing and building performance: Explains how you configure Visual Studio Code to get better performance when editing and building AL projects.
- Resource exposure policy setting: Explains how to set the resource exposure policy for allowing download or debugging into extension to see the source code.
- Running a container-based development environment: Overview of how to run a container-based development.
- Use GitHub Codespaces for AL development: GitHub Codespaces gives you a ready-to-use, cloud-hosted development environment for AL that runs in your browser.
Source: Microsoft Learn (CC BY 4.0). Descriptions are Learn’s own.
What Learn documents here 8 of 10 Learn pages
- learnAL Language extension configuration2026-08-25
- learnDevelop for multiple platform versions2024-03-15
- learnDirectory.app.props.json file2025-09-26
- learnJSON Files for AL Extension Projects2026-08-25
- learnLaunch JSON file2026-05-29
- learnMigration JSON file2025-05-02
- learnOptimize Visual Studio code editing and building performance2022-06-22
- learnResource exposure policy setting2024-01-03