Skip to content
Free Business Central assessment
Written, scoped proposal after the assessment
Dynamics GP support ends December 31, 2029
Independent, not affiliated with Microsoft
A division of Sataware Technologies
Weekday support on Mountain Standard Time
Free Business Central assessment
Written, scoped proposal after the assessment
Dynamics GP support ends December 31, 2029
Independent, not affiliated with Microsoft
A division of Sataware Technologies
Weekday support on Mountain Standard Time
Free assessment →

Business Central AL development: extension code, upgrades and tests

Business Central AL development is the coding work itself: writing extensions in AL, the language Microsoft built for the product. Our developers write AL in Visual Studio Code. They add tables, pages, reports and logic as separate apps on top of the base application. They also rewrite old C/AL changes as AL and prepare apps for Microsoft's marketplace. Your changes are versioned and tested, and they carry forward when Microsoft releases an update.

Last updated

🧑‍💻The AL language

What Business Central AL development involves

AL is an object-based language. A developer declares tables, pages, reports, codeunits, queries and enums. To change an object, the developer adds a table extension or page extension. Microsoft's code stays as it is. Business logic hooks into the base application through events and subscribers. So nothing in the base application is overwritten. That keeps updates safe.

Each extension is a project with an app.json manifest. It names the dependencies, the version and the ID range. The AL Language extension for Visual Studio Code downloads symbols from a sandbox, compiles the project and publishes the app. That keeps the edit and test loop short.

Discuss your extension idea →
Program code in coloured text on a dark screen
AL object types
  • ✓Tables and table extensions
  • ✓Pages and page extensions
  • ✓Codeunits with event subscribers
  • ✓Reports and report extensions
  • ✓Queries, enums and interfaces
🎯When it fits

When AL code is the right answer

Writing AL makes sense when configuration, personalization, Power Automate and existing add-ons have all been considered. A real gap must remain. Typical cases are an industry calculation or a validation rule tied to your own data. Another is a document flow that the standard product handles in too many clicks. Code is the last step.

It is also the right tool for retiring older customizations. Companies moving from NAV often carry changes made directly in base objects. Those have to be redesigned as extensions. That is a good moment to drop the ones nobody uses. We then rewrite the rest cleanly.

Check if you need code →
Good reasons to code
  • ✓Industry-specific calculations
  • ✓Custom validation rules
  • ✓Extra fields with logic
  • ✓Legacy NAV changes rebuilt
  • ✓Tailored API pages
🔁Developer workflow

Our Business Central AL development workflow

Every extension lives in a Git repository from the first commit. Developers work on branches and open pull requests. Another developer reads each change before it merges. Code analyzers such as CodeCop and UICop run in the editor and in the build. So style and upgrade problems show up early.

We automate builds with pipelines, commonly AL-Go for GitHub or Azure DevOps. The pipeline compiles the app and runs test codeunits in a container. It then produces a build artifact. Nobody installs anything in production by hand from a laptop. Because of that, every release traces back to a commit.

Ask about our pipeline →
Workflow steps
  • ✓Branch per change
  • ✓Pull request with peer check
  • ✓Analyzers on every build
  • ✓Test codeunits in containers
  • ✓Artifact deployed to sandbox first
📦What ships

What you receive with each extension

You own the source code. At handover, you receive the repository and the compiled app file. You also get a short technical note on the objects and events used. A user note explains what changed on screen. Permission sets for the new objects come too, so administrators can assign access straight away. It is yours to keep.

Extensions that change data structures come with upgrade codeunits. These move existing data safely when a new version installs. The tests we write stay in the repository. You can run them again whenever Microsoft publishes a new release. That makes each update a routine check instead of a fresh risk.

Request a handover example →
Included in delivery
  • ✓Full source repository
  • ✓Compiled app package
  • ✓Permission set objects
  • ✓Upgrade codeunits where needed
  • ✓Technical and user notes
🪤Coding pitfalls

Pitfalls that make extensions hard to maintain

The usual problems are not clever bugs. They are extensions with no tests and object names with no prefix, which later clash with another app. Others place logic in page triggers, where an integration skips it. Heavy loops are another cause. They slow a posting routine for every user. Each one is avoidable.

Another pitfall in Business Central AL development is to ignore obsoletion warnings. Microsoft marks fields and procedures as obsolete a few releases before it removes them. The compiler reports it. A team that reads those warnings has an easy update. A team that does not finds out when the app stops installing. Reading the warnings takes little time.

Have your code assessed →
Warning signs
  • ✓No automated tests
  • ✓Missing object prefixes
  • ✓Logic in page triggers
  • ✓Unhandled obsoletion warnings
  • ✓Source code nobody holds
Questions

Business Central AL development questions

What is AL in Business Central?

AL is the programming language used to build extensions for Business Central. It replaced the older C/AL language from Dynamics NAV. Developers write it in Visual Studio Code. They package their work as apps that install on top of the base application. Because the base stays untouched, Microsoft can update it while your extensions keep working in most cases.

Will Business Central AL development break at the next update?

Extensions are built to survive updates, because they do not change Microsoft's code. Problems arise only when an extension relies on something that Microsoft later removes. To find those cases early, we compile against the next version in a sandbox before the update. Then we fix what the compiler reports. Your users see a normal update, not a surprise.

What is the difference between a per-tenant extension and a published app?

A per-tenant extension is built for one company and uploaded to its environment. A published app goes through Microsoft's technical validation. It is then offered to many customers through the marketplace. Most custom work for a single business is a per-tenant extension. If you plan to sell an app, we write it to pass that validation from the first commit.

Can you take over AL code written by another developer?

Yes, provided the source code is available. We read through the repository and compile it against the current release. Then we note the risks and agree with you what to fix first. If the source is missing, the features usually have to be rebuilt. We tell you that early, before you plan around code that cannot be changed.

Do you develop directly in our production environment?

No. Development and testing happen in sandbox environments or local containers. An extension reaches production only after it has passed its tests. Your key users must also try it in a sandbox that holds a copy of your data. After that, we publish it at a time that suits your team.

Book a discovery call

Let's talk through your move to Business Central.

A focused call with a senior consultant. We learn how your business runs today, give you an honest view on whether Business Central fits, and outline scope and next steps before you commit to anything.

What happens after you send the form

1
We read your request
A consultant reads your details before the call. There is no long questionnaire to fill in.
2
Discovery call
We go through your processes, your current systems and the problems you want solved.
3
Written plan and proposal
You receive a written proposal covering scope, phases and licensing.
✓A consultant replies by email
✓NDA available on request
✓No cost, no obligation
✓Senior BC consultants

Request your discovery call

Takes under a minute. A consultant replies by email.

Free

Your details stay with our consulting team. We never share or sell them.

▦ IndependentDynamics 365Business Central consultants
C Clutch5.0 from 1 reviewSataware on Clutch
G GoodFirmsParent company profileSataware on GoodFirms
S SatawareOur parent company14+ years, 1000+ projects listed
▦ IndependentDynamics 365Business Central consultants
C Clutch5.0 from 1 reviewSataware on Clutch
G GoodFirmsParent company profileSataware on GoodFirms
S SatawareOur parent company14+ years, 1000+ projects listed
Book a free call