topic hubAdministration & Setupofficial - Microsoftreviewed - checked by Opus

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

More Learn pages

Source: Microsoft Learn (CC BY 4.0). Descriptions are Learn’s own.

What Learn documents here 8 of 10 Learn pages

Show 2 more