videoAL Developmentofficial - Microsoftreviewed - checked by Opus

What's New: Contoso Demo Tool (2025 release wave 1)

Contoso Demo Tool redesign in 2025 release wave 1: demo data moves from monolithic Rapid Start packages to modular, code-based codeunits with layers, translation files and dynamic historical data. Code is in a GitHub app extensions repository, and the video says it is already available as part of 25.3.

  1. 0:00 Problems with the old demo data approach
  2. 1:40 Redesign principles and modular architecture
  3. 2:41 Code-based approach and benefits
  4. 4:01 Historical data and advanced capabilities
  5. 5:02 Future steps and availability
video Microsoft Dynamics 365 Business Central (YouTube) · 2025-04-01Watch on YouTube

Overview

The video explains why the old Contoso demo data approach was replaced. Packages were all-or-nothing, so a demo of a small feature needed everything, and a demo in another country or language needed a copy of the package.

The new tool splits demo data into independent modules that follow Business Central namespaces and can have dependencies. Data is defined in codeunits, which fits source control and versioning. Modules are layered into setup data, master data and historical transactions. Translations use translation files as applications do. Historical data can be coded to adjust to the current date. The code is in GitHub for now, with a plan to move it into BC apps and open source it fully.

Key points

  • Old approach: demo data came in monolithic packages, so you brought everything or nothing, and a different country or language needed a copy of the package.
  • New modules follow Business Central namespaces, can be installed independently, and can declare dependencies on other modules.
  • Demo data is defined as code in codeunits (for example, one that creates a unit of measure), which is easier to read, maintain, extend and keep in source control.
  • Modules are split into layers: setup data, master data and historical transactions, each developed and expanded independently.
  • Translations are handled with translation files, as in applications, instead of maintaining multiple package versions.
  • Historical data can be coded to follow current dates, for example keeping posted documents in the same fiscal quarter whenever the demo is run.
  • The code is in a GitHub app extensions repository; the video says it is already available as part of 25.3 because flexible update management needed it, and that moving it into BC apps as open source is planned.

Features

Feature Status At
Modular demo data architecture status not stated, demoed 2:01
Code-based demo data definition status not stated, demoed 2:41
Translation support in demo data status not stated 3:01
GitHub repository for demo tool status not stated, demoed 3:21
Layered demo data structure status not stated, demoed 4:01
Dynamic historical data calculation status not stated, demoed 4:22

AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

  • codeunit “creating a unit of measure” at 3:01

Not found in BC28-30: codeunit “creating a unit of measure”.

Quotes

  • 0:25 “we either bring everything in or you bring nothing so if you had to do a demo about small feature um you had to”
  • 0:45 “if you had to do this demo in a different country in a different language you needed to create a copy of that package”
  • 2:01 “we broke it down into these different modules following the the name spaces in basap and you can install this independently”
  • 2:41 “because it’s we wanted to solve this issue with source source control and versioning to make it easier to extend and maintain”
  • 3:21 “it also natively means that this goes into Source control this is actually in in GitHub in a app extensions”
  • 4:42 “if you have to do this demo two years from now to a c customer the data will just be ready for you within”
  • 5:22 “this is already available as part of 20 5.3 because we needed it to unblock another great feature flexible update management”

Disclaimers in the video

  • 3:41 coming-later: eventually we want to move all of this code into BC apps and make it fully open source

Presenters (as heard): Austine.