AL development for Dynamics 365 Business Central
AL is the language behind every Business Central extension. We write, review and modernize AL code: tables, pages, reports, codeunits, APIs, queries, XMLports, events and interfaces, with testing and deployment included.
The challenge
AL looks approachable, which is why so much AL code is written without structure: logic in page triggers, hard-coded values, no tests. That code works until the first upgrade, the first performance problem or the first new developer.
Technology we use
How we approach it
The same four steps apply whether the project is a rollout, an integration or a fix. Only the depth changes.
Model the data
Tables, table extensions and enums designed with keys, relations and permissions in mind.
Put logic in the right place
Business logic in codeunits behind interfaces, UI code in pages, events for extension points.
Test and analyze
Test codeunits, code analyzers and code review before anything reaches production.
Deploy repeatably
Source control, pipelines and versioned releases, with telemetry to observe behaviour.
What is included
- Tables, table extensions and enums
- Pages, page extensions and page customizations
- Reports, report extensions and layouts
- Codeunits, interfaces and events
- API pages, queries and XMLports
- Web services and outbound HTTP integration
- Automated tests and debugging
- Extension packaging, versioning and deployment
What you get from it
- Extensions that upgrade cleanly
- Readable, testable and documented code
- Faster debugging with proper telemetry
- Fewer performance surprises
What this looks like in code
A small AL example: a custom field added to the standard Customer table and shown on the Customer Card without touching Microsoft's base code.
tableextension 50100 "CE Customer Ext" extends Customer
{
fields
{
field(50100; "CE Preferred Carrier"; Code[20])
{
Caption = 'Preferred Carrier';
DataClassification = CustomerContent;
}
}
}
pageextension 50100 "CE Customer Card Ext" extends "Customer Card"
{
layout
{
addafter("Payment Terms Code")
{
field("CE Preferred Carrier"; Rec."CE Preferred Carrier")
{
ApplicationArea = All;
ToolTip = 'Carrier used by default on new sales orders.';
}
}
}
}Related pages
Related services
- Business Central developmentAL extensions, reports, APIs and automated tests.
- Business Central customizationCustom fields, workflows and logic built as upgrade-safe extensions.
- Business Central API integrationAPI pages, OData, HttpClient calls and OAuth 2.0 authentication.
- Business Central integrationArchitecture and delivery for connecting Business Central to other systems.
Read more
What Is AL in Business Central? Extensions Explained
AL is the language of Business Central extensions. Here is how objects, extensions and events fit together.
AL Event Subscribers Explained: Extending Business Central Safely
How events let you change Business Central behaviour without touching base code, with examples and pitfalls.
Calling REST APIs From AL: HttpClient and JSON in Business Central
A practical pattern for outbound REST calls from AL: requests, responses, JSON parsing, errors and secrets.
Frequently asked questions
What is AL development?
AL is the programming language used to build extensions for Dynamics 365 Business Central. Developers use Visual Studio Code with the AL Language extension to write objects such as tables, pages, reports, codeunits and APIs, which are packaged as extensions and deployed to Business Central.
Is AL different from C/AL?
Yes. C/AL was the language of Dynamics NAV and early Business Central versions, edited in the Development Environment. AL replaced it and works through extensions instead of modifying the base application.
Can you provide AL developers for our team?
Yes. We can take a full development scope or add AL developers to your project team, with code review and documentation as standard.
Do you offer AL training?
Yes. See our Business Central technical training for a practical AL curriculum.
