Developer Preview February 2019
The February 2019 Developer Preview brings several improvements and new features, below I mention some of the most important including:
- The new app base available entirely as extension
- The introduction of RAD technology for development (as it was in C / Side)
Improved management of Views (development and Web Client)
New update mode scheme – ForceSync available in Al
#1 – Base application in full AL Language
The base application is fully on AL language; having the base application fully converted to AL means, that it is one big extension with almost 6000 files. To make it easier to work with such a big extension we’ve developed a series of features.
“Base App” – now is a Big Extension (Monolith)
No more objects are available in Business Central Development Environment
- Standard tables (Only System Tables are available… 200000000 etc.….), pages, reports, queries, codeunits, XMLports etc.
- ALL now is in the Base Apps Extension!
#2 – Rapid Application Development (RAD)
RAD is a C/SIDE term used for changing an application object, compiling it, and seeing the results instantaneously in the client.
We have 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.
We will use the terms “incremental publish” and “RAD publish” or just “RAD” interchangeably.
We have introduced two new commands for doing incremental publishing/debugging. These are:
– Ctrl+Alt+F5 for incremental publish
– Alt+F5 for incremental publish and invoking debugging
A RAD published file will not contain the following files that are normally packaged during regular publishing:
- Translation files, permission files, custom word and report rdlc layout files, table data, and web service definition.
RAD does not replace full publishing
#3 – New schema update mode – ForceSync
In this release, we’ve added a new data schema synchronization mode. It’s very similar to the existing ‘Synchronize’ schema update mode but with more freedom to make schema changes while retaining data:
- In the launch.json file, set the parameter ‘schemaUpdateMode’ to ‘ForceSync’
- Set the app version to <something fixed>
- Iterate until happy knowing the sync process will let you do everything while preserving data in all of your unchanged tables and fields
#4 – Debug without publishing
A new command has been added – Ctrl+Shift+F5 – which will start the debugger attached to the Visual Studio Code launched client session.
#5 – Debugger info for http, json etc
Variable value inspection has been added for:
- HttpClient, HttpRequestMessage, HttpResponseMessage, HttpHeaders
- JsonValue, JsonToken, JsonObject, JsonArray
- XmlElement, XmlDocument, XmlNode, XmlText, XmlComment, XmlCData, XmlAttribute
#6 – Code actions
Code Actions is a VS Code feature providing the user with possible corrective actions right next to an error or warning. If actions are available, a light bulb appears next to the error or warning.
There are two code actions available in the current version:
- Multiple IF to CASE converting code action, Spell check code action.
#7 – Defining views in AL
Unlike V1 views which were defined as part of the RoleCenter, V2 views in AL are now defined on the list page itself. Views are defined in a dedicated views section that contains an ordered list of views.
#8 – Visualizing Views in the Web client
V2 views are rendered below any V1 views in the filter pane of the Web client. They are always visible on the view page no matter how the page was accessed.
Developer Preview available in:
This Developer Preview is available only through the Ready to Go program. Read more at http://aka.ms/readytogo. To get all fixes and features described in this blog post, please make sure that you are running an image with build number 28630 or newer.
There is a new Docker image, which contains this version here: bcinsider.azurecr.io/bcsandbox-master:14.0.28630.0-al.