Development environment
Development environment for Business Central covers setting up and using AL tooling in Visual Studio Code: configuration, projects and workspaces, code analysis, compile/publish/debug, testing, sandboxes, app manifests and extra tools. It answers setup, build, debug and test questions for extension developers.
Path: Development > Development environment · tier official · system administration · narrative reviewed (checked by Opus)
Overview
This section is for developers who build Business Central extensions in AL. It starts with configuring the environment (VS Code AL Language extension, performance settings, Docker containers, GitHub Codespaces) and then moves into how projects and multi-root workspaces are organized.
The subtopics follow the development cycle: code analysis, then compile, publish and debug (including app signing and the AL Profiler), then testing with AL tests, HttpClient mocking and page scripting. Sandboxes explains online versus container-based environments, and Working with apps covers the app.json manifest, runtime version, dependencies and install-time data.
Start with Configure the development environment to get a working setup, then Configure projects and workspaces if you manage several apps. Other tools (Page Inspection, Txt2Al, table data viewer) are useful helpers when debugging pages or converting older C/AL code.
Key points
- Configure the development environment: AL Language extension settings, performance tuning, runtime targeting in app.json, resource exposure policy, Docker containers and GitHub Codespaces.
- Projects and workspaces: group several AL project folders in a multi-root workspace, set per-folder settings and manage project references and dependencies.
- Code analysis: a nine-page subtopic that comes between project setup and compile, publish and debug in the development cycle.
- Compile, publish and debug: breakpoints, snapshot and attach debugging, the AL Profiler, compilation scope, RAD publishing, app signing and Entra authentication for on-premises.
- Testing: test codeunits, methods, test pages, handlers and test runners, running tests in VS Code, mocking HttpClient calls, performance testing and UI acceptance testing with page scripting.
- Sandboxes: online and container sandboxes differ; container environments run with Docker and BCContainerHelper; extensions can be tested under different user plans and entitlements.
- Working with apps: app identity in app.json, runtime version choice, bundled resources, data added at install, and library and dependency apps.
- Other tools: Page Inspection for page structure and data sources, Txt2Al for converting C/AL objects to AL (NAV 14 code), and the table data viewer for tenant tables.
Subtopics
- Configure the development environment (10 pages)
- Configure projects and workspaces (2 pages)
- Code analysis (9 pages)
- Compile, publish, and debug (12 pages)
- Testing (11 pages)
- Work in sandboxes (3 pages)
- Working with apps (5 pages)
- Other tools (3 pages)
Videos, posts and code changes
Linked by a Haiku matcher with a grounding quote from the item’s summary (link/topics.ts); machine-generated.
- #10212 Add SetReferenceType method to SignedXml and SignedXmlImpl (#10139) (code change): “SetReferenceType method is added to the SignedXml codeunit to allow callers”
Business Central pages and reports
The pages, reports and queries this hub’s Learn pages name (ms.search.form, API reference), joined to the code by exact object id (data/index/docs-objects.json); a page shows the table it runs on.
Learn also names 9 objects with no object page: page/149000, page/149001, page/149003, page/149004, page/149005, page/149006, page/149007, page/149008, page/149009.
Source: Microsoft Learn (CC BY 4.0). Descriptions are Learn’s own.
What Learn documents here 8 of 54 Learn pages
- learnAdding and Accessing Resources in Business Central extensions2026-08-25
- learnAdding data for Extensions2021-04-01
- learnAL diagnostics2026-10-01
- learnAL Language extension configuration2026-08-25
- learnAnalyze AL Performance with the AL Profiler2026-10-07
- learnApp identity2024-05-03
- learnApplication Testing Example to Test Purchase Invoice Discounts2026-08-24
- learnAppSourceCop analyzer2026-10-01
Show 32 more
- learnAttach and debug next2026-03-04
- learnChoose runtime version in AL2026-08-20
- learnCode analysis performance configuration2023-01-09
- learnCodeCop analyzer2026-10-01
- learnCompilation scope overview2025-05-18
- learnCreate Handler Methods for Automated Tests2026-08-24
- learnCreate Test Runner Codeunits in AL2026-08-24
- learnDebug upgrade and install code2022-08-01
- learnDebugging in AL2025-08-21
- learnDevelop for multiple platform versions2024-03-15
- learnDirectory.app.props.json file2025-09-26
- learnFAQ about Library & Dependency Apps in Business Central2021-04-01
- learnFAQ about Testing your Business Central App2022-08-15
- learnInspecting pages2026-09-18
- learnJSON Files for AL Extension Projects2026-08-25
- learnLaunch JSON file2026-05-29
- learnMigration JSON file2025-05-02
- learnMock outbound HttpClient web service calls during testing2025-03-17
- learnOptimize Visual Studio code editing and building performance2022-06-22
- learnPerformance Toolkit extension2024-02-21
- learnPerTenantExtensionCop analyzer2026-10-01
- learnResource exposure policy setting2024-01-03
- learnRuleset for the code analysis tool2022-06-24
- learnRun AL Tests in Visual Studio Code2026-03-05
- learnRunning a container-based development environment2023-10-04
- learnSandbox environments for Dynamics 365 Business Central development2024-03-01
- learnSetting conditional breakpoints2025-09-25
- learnSign an app package file2025-04-11
- learnSnapshot debugging2026-08-03
- learnTest Codeunits and Test Methods in AL2026-08-24
- learnTest pages2022-08-12
- learnTesting the application overview2025-09-30