videoAL Developmentofficial - Microsoftreviewed - checked by Opus

What's New: Business Central Developer Tools (2023 release wave 2)

Business Central developer tools in 2023 release wave 2: AL namespaces with using directives and code actions, the AL Doc reference documentation tool, the AL language extension on Linux (in preview), secure text, page inspector explore options, debugger and profiler changes, and IntelliSense updates.

  1. 0:00 Introduction and agenda overview
  2. 1:27 AL language extension pre-release versions and Linux support
  3. 3:21 Live demo: AL development on Windows Subsystem for Linux
  4. 4:31 DevOps syntax highlighting and transition to namespaces
  5. 4:55 Namespaces in AL: concept, implementation, and code actions
  6. 10:27 Namespace syntax, restrictions, and adoption strategy
  7. 14:37 Namespace best practices and AL Explorer discovery
  8. 16:42 AL Doc reference documentation tool and XML comments
  9. 21:53 AL Doc build command, DocFX integration, and live demonstration
  10. 27:55 Documentation generation and troubleshooting improvements overview
  11. 31:17 Page Inspector, field investigation, and AL Explorer
  12. 35:15 Debugging, profiling, and symbol management
  13. 40:56 Future ideas and error details with call stacks
  14. 44:38 AL language features: namespaces, variants, and secure text
  15. 48:28 Secure text data type protection and request security
  16. 50:50 Field customization and extended data types
  17. 53:49 Queries, Excel layouts, and AL inlay hints
  18. 57:40 IntelliSense improvements and find all references
  19. 1:00:29 AL Go configuration, GitHub Copilot Chat, and AI assistance
  20. 1:04:56 AppSource transactability and developer resources
video Microsoft Dynamics 365 Business Central (YouTube) · 2023-12-28Watch on YouTube

Overview

The session covers developer tooling in 2023 release wave 2. It starts with AL extension pre-release versions, Linux and WSL support (in preview, demoed) and syntax highlighting for AL in Azure DevOps (in preview). Namespaces get the most time: declaration, using directives, fully qualified names, code actions, restrictions, adoption advice and naming conventions.

It then covers AL Doc, which turns XML documentation comments and app structure into YAML that DocFX renders as HTML, with a GitHub Pages demo. Later sections cover the page inspector explore options for Visual Studio Code, debugger and profiler changes, the secure text data type, field and query additions, inlay hints, IntelliSense and find all references, GitHub Copilot Chat for AL, and AppSource transactability.

Key points

  • Namespaces are declared as the first statement in a source file and can be nested. Use using directives or fully qualified names to reference namespaced objects, and code actions can add either.
  • Wait to namespace your own code until all your dependencies are namespaced, otherwise later namespacing of those dependencies breaks your references. Renaming a namespace is a breaking change.
  • Namespace naming advice: start with company name, product, area, feature. Keep the root company-specific and stable, and avoid names like Microsoft, utility or common. Prefixes (fixes) on object names are still needed for now.
  • AL Doc has an init command (once per documentation repository) and a build command that produces YAML from .app files. DocFX turns the YAML into HTML, which can be hosted on GitHub Pages.
  • The explore page and explore field options in Visual Studio Code need the troubleshooting tools permission. The first symbol download can take time, and a shared symbols path lets you reuse symbols.
  • Secure text hides values from normal and snapshot debugging, but it must be constructed in non-debuggable methods. It does not protect data shared outside Business Central.
  • The AL profiler sampling interval can be 50, 100 (default) or 150 ms. The debug console supports IntelliSense but does not evaluate methods.

Features

Feature Status At Evidence
AL language extension pre-release versions status not stated 1:27
AL language extension for Linux preview, demoed 1:56 “One thing we introduced with the preview functionality is the ability to install the AL language extension on Linux.” (1:56)
DevOps syntax highlighting preview 4:31 “Another thing we added as a preview is syntax highlighting for DevOps.” (4:31)
Namespaces in AL language status not stated, demoed 4:55
Using directives for namespace imports status not stated, demoed 8:27
Fully qualified object names status not stated, demoed 9:27
Namespace code actions status not stated, demoed 8:27
AL Explorer group by namespace status not stated, demoed 15:44
AL Doc reference documentation tool status not stated, demoed 16:56
XML documentation comments in AL status not stated, demoed 19:40
AL Doc init command status not stated, demoed 22:06
AL Doc build command status not stated, demoed 22:41
DocFX integration for HTML generation status not stated, demoed 23:10
GitHub Pages integration for documentation hosting status not stated, demoed 24:32
Explore page in Visual Studio Code status not stated, demoed 31:42
AL Explorer status not stated, demoed 33:45
Explore field in Visual Studio Code status not stated, demoed 37:38
Attach debugger from help and support status not stated, demoed 38:17
Troubleshooting tools permission status not stated 39:13
Shared symbols path status not stated 40:34
Future: CodeSpaces Integration status not stated 41:13
Future: GitHub Source Integration status not stated 41:26
Future: Bulk Symbol Download status not stated 41:50
Error Details with Call Stack status not stated, demoed 42:14
Debug Console IntelliSense status not stated, demoed 42:25
AL Profiler Sampling Interval Options status not stated, demoed 44:24
Implicit Variant to Dictionary and List Conversion status not stated 45:45
Secure Text Data Type status not stated, demoed 46:02
Secure Request URI and Headers status not stated, demoed 48:28
New Field Groups on Base Objects status not stated 51:01
Allow in customization property status not stated 51:41
Analysis mode control on list pages status not stated 52:23
Barcode extended data type status not stated 52:36
Rich text extended data type status not stated 52:36
Queries in run objects for actions status not stated 54:04
Query about title and about text status not stated 54:16
Excel layout multiple data sheets status not stated 54:27
AL inlay hints for parameters and return types status not stated, demoed 55:15
Label hover value display status not stated, demoed 57:47
Improved IntelliSense for overloaded methods status not stated, demoed 58:17
IntelliSense for key parameters status not stated, demoed 59:07
Find all references for triggers and methods status not stated, demoed 59:48
AL Go default project folder setting status not stated 1:00:41
AL compilation output folder status not stated 1:01:10
GitHub Copilot Chat for AL status not stated, demoed 1:01:57
AppSource per user pricing with direct sales preview 1:05:25 “That is as I’m talking now in public preview, but on October 9th, that will actually go into GA.” (1:05:37)
AppSource CSP support preview 1:05:47 “in the in the middle of a private preview with select partners on this, but that is” (1:05:47)
AppSource entitlements mapping status not stated 1:06:05
Entitlements documentation for license mapping status not stated 1:06:29
Enhanced developer resources and documentation status not stated 1:06:55
Performance tool kit status not stated 1:07:06
BC Icons overview status not stated 1:07:17

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.

Not found in BC28-30: codeunit “Bing Maps GeoCode”, table “GL entry”, codeunit “code unit”.

Quotes

  • 1:27 “When you install the AL language extension you now have the option to install or switch to a pre-release version.”
  • 1:56 “One thing we introduced with the preview functionality is the ability to install the AL language extension on Linux.”
  • 4:55 “I’m going to talk to you about one of the major new features in the AL language, namespaces.”
  • 7:47 “You declare a namespace as the first line in a in a source file or the first non-comment line.”
  • 13:05 “you can only have one object of a kind with the same name in the module. Which means that kind name and”
  • 14:08 “You should wait with name spacing your own code until all your dependencies are name spaced.”
  • 14:48 “Choose a unique name for your name spaces. And the good practice is to choose something that start with your company name, product, area,”
  • 17:10 “Reference documentation provides details about programming elements associated with technologies and languages, including class libraries, object model”
  • 19:40 “For a couple of a couple of years ago, we added XML documentation comment to the AL language”
  • 21:13 “This tool has two purposes. It’s one tool called AL Doc, but it allows us to create reference documentation for all our first-party apps”
  • 22:06 “this new tool AL Doc. It resides in the V6 next to the ALC and it has two primary commands”
  • 29:23 “it’s great to see that we finally have namespace support in AL. And AL Doc will really help with getting up-to-date documentation on apps.”
  • 30:15 “you need to open VS Code, uh you need to create the project, figure out the details about the environment, the connection uh string,”
  • 31:42 “But we have a new option now called explore page in Visual Studio Code”
  • 31:53 “It will create a dummy project. It will create an app.json in that dummy project with references to the extensions that are required for”
  • 33:45 “We also added a new feature in the previous release which was the AL Explorer”
  • 39:13 “the options in the page inspector will only appear if you have the troubleshooting tools permission”
  • 39:57 “Initially, you need to be patient. You know, downloading symbols can take time, so just wait until everything finishes up”
  • 40:44 “you can even now also have a shared uh symbols path where you can reuse uh symbols, so you don’t have to spend time”
  • 44:38 “The default for now has been 100 ms. We’re now giving you the option to go a little lower than that, 50 ms, or”
  • 45:35 “You can declare namespaces to encapsulate your objects, add using statements to get easy access to objects in that namespace”
  • 46:14 “This is a new variable and parameter data type type you can use to protect the data it holds from being debugged”
  • 51:27 “Now, we made it possible for you to add fields to a field group that doesn’t exist, thereby enabling the scenario where we want”
  • 52:51 “We also have the rich text extended data type that enables you to add rich content capabilities to your fields.”
  • 53:05 “It gives you the capability that you would expect from a rich text editor, like formatting, adding images, links”
  • 53:19 “it needs to be alone in its own group, so you cannot use it in a repeater or in in an existing group with”
  • 55:32 “in this release, we’re adding the ability to get inlay hints for AL parameter names and for return types.”
  • 59:48 “we have improved that to now also work on trigger and system methods and trigger events. That’s a portal on page and table fields,”
  • 1:02:11 “let’s have a look at the more recent GitHub Copilot Chat, which is an interactive chat experience inside of uh Visual Studio Code.”
  • 1:05:25 “We have the first wave of functionality with a per user pricing model that support direct sales channel in Microsoft AppSource.”
  • 1:05:37 “That is as I’m talking now in public preview, but on October 9th, that will actually go into GA.”
  • 1:05:47 “in the in the middle of a private preview with select partners”
  • 1:06:55 “collaboration with partners that has led to updating much more detail with examples”
  • 1:07:06 “have a big investment in the performance tool kit that you can go and read off”
  • 1:07:35 “there’s one on performance tool kit that’s super important for making you know, testing and making sure that your app performs well”

Disclaimers in the video

  • 1:56 preview: One thing we introduced with the preview functionality is the ability to install the AL language extension on Linux.
  • 3:42 preview: I need to change the the sandbox here to my preview sandbox, we’re still in preview.
  • 4:31 preview: Another thing we added as a preview is syntax highlighting for DevOps.
  • 13:31 subject-to-change: We still have a fixes. Um we would like to lift some of the restrictions and for instance, one of those we are looking at is new name spaced object can have names without a fixes.
  • 13:42 coming-later: new name spaced object can have names without a fixes. Which will take a little bit longer is member of on objects
  • 14:04 coming-later: But it may take a while
  • 21:23 preview: We’re starting slowly, but we plan to do it for all our apps
  • 33:45 subject-to-change: AL Explorer was added in the previous release
  • 41:13 other: there’s no commits right now, but, you know, it would be great if instead of opening up locally on VS Code and sort of that content switching that you can actually open it up in the cloud in CodeSpaces
  • 42:02 preview: it’s available in the preview. When you watch this, it’s available in uh you know, the launch
  • 53:49 coming-later: In the coming releases, we’ll continue to work on the rich text editor and its capabilities
  • 1:03:04 preview: remember to uh review the generated content, especially for AL, because the training material is based on open-source uh code, and for AL, that’s fairly limited.
  • 1:05:37 preview: That is as I’m talking now in public preview, but on October 9th, that will actually go into GA.
  • 1:05:47 preview: CSP support is actually built but we’re in the in the middle of a private preview with select partners on this

Presenters (as heard): Peter Borring, Stephen Balslev, Espen Kristoffersen, Freddy Christensen, Asbjørn, Peter, Stefan, Esben, Kurt.