Testing AL RAD (Rapid Application Development)
#1 – ABOUT RAD
“RAD” is an old C/SIDE term used for “changing an application object, compiling it, and seeing the results instantaneously in the client”. Microsoft tried to replicate a similar experience for extension development in AL Language in VS Code. More specifically it is “about publishing only the objects that changed since the last full publish took place”; this is especially useful when working on large projects with several thousands of objects.
“Working with Visual Studio Code and Dynamics 365 Business Central you can benefit from Rapid Application Development (RAD) on large code projects. RAD allows faster development on projects with a large number of files by doing a delta compilation and publishing only on those application objects that have changed during development in Visual Studio Code. RAD publishing is an interim state and does not replace a full publish.”
Microsoft use the terms “incremental publish” and “RAD publish” or just “RAD” interchangeably.
#2 – HOW RAD WORKS
“The files that have been changed by the application developer within Visual Studio Code are persisted in a special RAD (.rad) file during builds. This file is saved in the “.vscode” folder of the code project. RAD changes are the changes of application objects within a RAD session”. “Only application objects, page customization objects, and profile objects are handled for RAD”
Microsoft introduced two new commands for doing incremental publishing/debugging.
The new commands are: “CTRL+ALT+F5″ “ALT+F5”
- You need an app to be fully published before at least once before you can use incremental publish for the same app.
- You cannot change the version, publisher, and name of the app if you do an incremental publish
- If things fail for incremental publishing you would need to do a full publishing (Ctrl+F5) before using the RAD features again.
- A tracking file that captures which files have changed for the purposes of incremental build and publish is created and updated on any developer action that involves a build process. For anything that involves a build (not Save and this is by design). These are the build (Ctrl+Shift+B), or any of the deployment or debugging tasks.
A RAD published file will not contain the following files that are normally packaged during regular publishing:
- Translation files, permission files, custom word layout and report rdlc layout files, table data, web service definition.
- These files will need to be regenerated with full publishing (“Ctrl+F5”). A RAD file will be deleted as a result of a successful publishing.
- If you change many files and close Visual Studio Code without a build (“Ctrl+Shift+B”), publish (“Ctrl+F5, Ctrl+Shift+F5”) or debug (“F5, Shift+F5”) all the RAD changes will be lost.
*** RAD “does not replace full publishing” !
- Create a new table: ex: table“50195 Item Local Attributes”
- Create a new page: ex: page “50195 Item Local Attributes
- Full publish and after try to modify the Page
#3 – RAD IN ACTION
“ALT+F5” > COMPILE
- If you add a new field or caption in the page : RAD detect the change and write “modify” tag in the “RAD.js” file; this file changes after each compilation\publication (a sort of extension’s development tracking journal).
- No modifications are detected in this case to table “item local attributes” but system publish also the table (table structure is not an excluded object from RAD).
“RAD” on Microsoft Docs
Official documentation here: https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-rad-publishing