This is a table-first reference for MB-820 (Dynamics 365 Business Central Developer Associate) — minimal prose, maximum lookup speed. It assumes you've already studied the AL language and are reviewing before exam day, not learning the concepts for the first time. For the reasoning behind each domain's weighting, see the full MB-820 study guide.
Exam Snapshot
Passing Score
700 / 1000
Renewal
Every 12 months (free)
Level
Associate (Intermediate)
Price, duration, and question count aren't published on MB-820's own page — confirm at registration. Domain weights below are exact, per Microsoft's official study guide.
| Domain | Weight |
|---|---|
| 1. Describe Business Central | 10-15% |
| 2. Install, develop, and deploy | 10-15% |
| 3. Develop by using AL objects | 35-40% |
| 4. Develop by using AL | 15-20% |
| 5. Work with development tools | 10-15% |
| 6. Integrate with other applications | 10-15% |
1. Describe Business Central
| Term | What it means |
|---|---|
| Base app | Microsoft's W1 standard business logic app that ships with Business Central. |
| System app | Platform-level app providing security, telemetry, and infrastructure objects underneath the base app. |
| Extension | A packaged AL app that adds to or modifies base app behavior without changing its source. |
| AppSource | Microsoft's marketplace for publishing certified Business Central extensions publicly. |
| Online vs on-premises | Online is Microsoft-hosted SaaS with automatic updates; on-premises is customer-hosted with manual upgrade control. |
2. Install, Develop, and Deploy
| Item | Purpose |
|---|---|
| app.json | Declares an AL project's dependencies, ID, version, and target Business Central platform. |
| launch.json | Configures Visual Studio Code's connection to a Business Central environment for debug/publish. |
| .alpackages | Local cache of compiled dependency symbols an extension references. |
| Multi-root workspace | VS Code workspace managing several AL extensions (e.g., base + per-country) together. |
| Debugging | Attach the AL debugger in VS Code to step through running extension code in a sandbox. |
| Multilanguage (.xlf) files | Translation files generated per extension for captions and labels. |
Reviewed this far? Test it.
Drill These Objects With Scenario Questions
Scenario-based, not trivia recall. No credit card required.
Start Free Practice →3. Develop by Using AL Objects (35-40% — the largest domain)
| Object type | Use it for |
|---|---|
| Table / table extension | Define or extend data structure; the base object nearly every extension touches. |
| Page / page extension | Define or extend UI, including Role Center pages, list pages, and card pages. |
| Report | Define or substitute a document/processing report, including layout and request page. |
| XMLport | Import/export structured data with configurable nodes and properties. |
| Codeunit | Container for business logic, event subscribers, interfaces, and install/upgrade code. |
| Query | Join, filter, and aggregate data across tables — often faster than iterating record variables. |
| Enum / enum extension | Define a fixed set of named values; extensible so other apps can add options. |
| Permission set | Grant object-level access; permission set extensions add to an existing set. |
| Entitlement | Maps licensed access to permission sets, distinct from inherent (built-in) permissions. |
4. Develop by Using AL
| Concept | Notes |
|---|---|
| Access modifiers | local / internal / protected / public — control what other objects and extensions can call. |
| Profiles | Define a role-tailored UI experience (which pages a user role sees by default). |
| Views | Save filtered/sorted variations of a page for users to switch between. |
| Assisted setup | Guided wizard framework a developer can register a new setup step into. |
| Teaching tips / in-app tours | Onboarding UI hints defined in AL to walk new users through a feature. |
| Onboarding checklist | Structured task list shown to new users/roles at first sign-in. |
| Document standards | Consistent header/line patterns expected of document-style tables and pages (orders, invoices). |
| Master data standards | Design conventions for reusable entities like customers, vendors, and items. |
5. Work with Development Tools
| Tool / concept | Purpose |
|---|---|
| Test Toolkit | Standard framework for installing and running automated Business Central tests. |
| Test codeunit | Codeunit containing test procedures and handler functions exercising extension logic. |
| Telemetry | Diagnostic events emitted to Application Insights for monitoring extension health. |
| Custom telemetry signal | Developer-defined event logged from AL code to track a specific business or performance condition. |
6. Integrate with Other Applications
| Concept | Notes |
|---|---|
| HTTP classes | AL's HttpClient/HttpRequestMessage/HttpResponseMessage types for calling REST services. |
| JSON handling | AL's JsonObject/JsonToken/JsonArray types for reading and writing JSON payloads. |
| API pages | Page objects exposed as OData/REST endpoints for external systems. |
| Bound vs. unbound OData actions | Bound actions operate on a specific record; unbound actions are entity-independent. |
| Read Scale-Out | Routes read-only API/report traffic to a replica to reduce load on the primary database. |
7. If the Question Says X, Think Y
| Scenario phrase | Points to |
|---|---|
| "React when another extension inserts a record" | Event subscriber on a publisher event, not modifying the base object directly. |
| "Run setup code once when the extension is installed" | Install codeunit. |
| "Migrate data when a new extension version is published" | Upgrade codeunit. |
| "Only allow read-only access to a field from another extension" | Access modifier / interface exposing a getter, not a public field. |
| "Import/export a fixed structured file format" | XMLport, not a report or query. |
| "Join and aggregate data from multiple tables for a report" | Query object feeding the report's data item. |
| "Track a custom business event for monitoring, without a UI" | Custom telemetry signal, not a page or report. |
| "Let an external system pull data without hitting the primary DB" | Read Scale-Out. |
8. Acronym & Term Quick List
AL — Application Language (Business Central's extension language)
ALM — Application Lifecycle Management
SCM — Source Control Management
CI/CD — Continuous Integration / Continuous Delivery
OData — Open Data Protocol (API query format)
REST — Representational State Transfer
JSON — JavaScript Object Notation
XMLport — AL object for structured import/export
W1 — Microsoft's base worldwide app version
GA — General Availability (vs. Preview features)
Reviewed the tables? Now prove it under pressure.
Take the free MB-820 readiness quiz, or jump into scenario-based practice questions calibrated against the real domain weights.
Common Questions
Is a cheat sheet enough to pass MB-820?
No. This is a final-review memory aid for someone who has already worked through the AL language and written extensions. MB-820 questions are scenario-based — you need to recognize which object or pattern a described requirement calls for, not just recall a definition.
What is the difference between an install codeunit and an upgrade codeunit?
An install codeunit runs once when an extension is first installed in an environment. An upgrade codeunit runs when a new version of an already-installed extension is published, typically to migrate or reshape existing data to match schema changes.
What is the difference between a bound and unbound OData action?
A bound action operates on a specific entity instance (for example, posting a specific sales order). An unbound action is independent of any single record — it's called directly against the service without targeting an entity instance first.
What is the passing score for MB-820?
700 out of 1000, per Microsoft's official MB-820 study guide — the same scaled threshold used across most Microsoft role-based exams.
About MSCertQuiz
MSCertQuiz sells a scenario-based MB-820 practice bank; this cheat sheet was compiled by the same team, grounded against Microsoft's official MB-820 study guide rather than generic AL tutorials.