NAV Development Preview – October Update

Welcome to another update for the Developer Preview, the October update. As usual, we've fixed a lot of issues reported by you, for more information view the list of fixed issues, In addition to that we're announcing the following changes.

To get an updated image jump directly to the Azure Gallery signup at

Web client add-ins
It is now possible to develop JavaScript control add-ins in AL. The new AL type controladdin serves both as a replacement for the old XML manifest as well as an interface for bidirectional JavaScript-to-AL communication. The following sample implements a control add-in in 42 lines of code:

Dictionary and List

This update also adds two new, highly requested AL types: List and Dictionary. For the first time in AL, you will be able to work with strongly typed lists and dictionaries.
At the moment, these types can only be used with simple types i.e. you can have a List of [Integer], but not a 'List of [Blob]'. The list of supported types is fairly long, but the main point is that if you can use it as the return type of a procedure, you can use it in a list.

ForEach is back

We've added support for iterating over expressions of enumerable types in AL using the foreach statement. At the moment, you can use the foreach statement to iterate over expressions of type List, XmlNodeList, XmlAttributeCollection and JsonArray.

New translation syntax

We've added support for the new Label syntax which will prepare you for using the new translation process which decouples translation from development. You will be able to specify a default translation in code with some attributes and then in the next update, we'll provide you with generating a standard format translation file which is widely supported for translating. When the translation file comes back translated,  you package it with the extension and you have a multilanguage extension!
We encourage you to start transitioning to this new syntax so that when we update the compiler to have the generation you're ready. You cannot use Caption and CaptionML at the same time (the same goes for the rest of the cases). The syntax is as follows:

Installation and Upgrade

When you want to convert from Extensions V1 to Extensions V2, you must first convert the source code using the Txt2Al tool. Then you must complete any development to adhere to the AL syntax. When your code is ready, then you need to write upgrade code to restore and modify the data from Extension V1 tables and then build your Extension V2. The next step is to uninstall the Extension V1. Finally, you must publish the Extension V2 and run the upgrade. For more information, see the documentation here: Converting Extensions V1 to Extensions V2, Upgrading Extensions V2, and How to: Publish and Install an Extension V2.


The Designer is now only available on on-prem or developer sandboxes with the Dynamics 365 Extension Mgt (Role ID: D365 EXTENSION MGT) permission enabled. If the permission is not enabled, you will not be able to use the Designer.

News on the Azure VM

  • After Azure deployment says succeeded, open the landing page in a browser and wait for the installation to complete (press view installation status to monitor).
  • When connecting to the Remote Desktop, you will find a shortcut to the navcontainerhelper, which contains a number of cmdlets which makes working with Nav Containers easier (documentation pending).
  • If you need to sign extensions you need to run Get-NavSipCryptoProvider and install VS2017 Community edition (c:\demo\install-VS2017Community) before you can use signtool inside the Azure VM.
  • You can create C/SIDE Development Containers using NavContainerHelper and use Convert-ModifiedObjectsToAl to convert modified objects in a container to AL.

As usual we encourage you to let us know how you like working with these additions and keep submitting suggestions and bugs. You can see all the filed bugs on our GitHub issues list ( To get an updated image jump directly to the Azure Gallery signup at

For a list of our previous blog posts, see the links at the end of this post.


Our earlier blog posts:

NAV Development Tools Preview - September Update

NAV Development Tools Preview - August Update

NAV Development Tools Preview - July Update

NAV Development Tools Preview - June Update

NAV Development Tools Preview - April Update

NAV Development Tools Preview - March Update

NAV Development Tools Preview - February Update

NAV Development Tools Preview - January Update

Announcing the Preview of Modern Development Tools for Dynamics NAV

Comments (25)

  1. Marco Engel says:

    Hey guys, this way of deploying development tools is very neat. However we would love to have these tools on our on premise server, so more developers can have a look. Is there a way to get the docker image loaded on our on premise servers and to get the client (Windows and Web)? Thanks in advance

    1. NAVteam says:

      Thanks for your feedback! For now, we recommend that you use the link at We hope to come out of preview in the not-so-distant future so that you can use the tools locally as well, but until then, we refer you to the Azure images.

  2. JS says:

    Is it possible to get NAVDVD for October update in case we want to install the whole thing on local

    1. Pallea says:

      Yes If you are a Microsoft partner and sign the NDA. Logon to Yammer and get the details.

      1. Jaspreet says:

        Hi Pallea ,
        We are Microsoft partner but which Yammer group are you talking about?

        We are okay with a NDA if you can just highlight the steps.
        Previously we used to get builds from CTP connect program

  3. Perry R says:

    We have been using the NAVDVD locally to develop and we had a developer license file that allowed us to publish no problem. We got the docker to work locally and when we create the hello world sample app we can publish. It defines the idRange in the 50k range. But we need to change this to the 70M range for developing a real extension but because we don’t have a new developer license file when we publish we get the error code (422 your program license does not allow you to publish …). Is there a developer license (flf) that we can use for developing? Because this is now version 11 our version 10 license file is incompatible to use.

    1. Pallea says:

      @Perry R – Normally we have to wait until the product officially gets released. Furthermore the range that you want to use, is not normally within the default Licensefile range.

      1. Perry R says:

        @Pallea the range we are using was given to us by Microsoft when we reserved our extension app.

        1. Pallea says:

          Then you have to test that you actually have the rights in the licensefile.

  4. QQ says:


    it’s first time I’m trying to set it up, and it’s been stuck for almost an hour at this:

    7:35:07 AM TemplateLink:
    7:35:07 AM Starting initialization

    Is this expected?

    1. QQ says:

      I’m sorry, pasted wrong end of the log:

      7:39:59 AM Launching SetupVm
      7:38:08 AM Restarting computer and start Installation tasks

      1. QQ says:

        I’ve run SetupVMs.ps1 manually, and it progressed somewhat, but it still threw an error:

        Installing .vsix
        Code.cmd : Could not store machine ID
        At C:\demo\SetupDesktop.ps1:58 char:5
        + & $codeCmd @(‘–install-extension’, $VsixFileName) | Out-Null
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : NotSpecified: (Could not store machine ID:String) [], RemoteException
        + FullyQualifiedErrorId : NativeCommandError

        1. FreddyDK says:

          You shouldn’t run any of the scripts manually, but it is important that you don’t restart the VM manually before it is done (indicated by the landing page)

  5. Philip says:

    Trying to compile : The request for path /NAV/dev/apps failed with code 422. Reason: Your program license does not allow you to publish ‘GreetingsManagement’.

  6. TIP: Do not use “-character in the password.

    I followed “NAV Development Preview – October Update” but my chosen password contained a ” character so the setup of the NAV failed completely … 🙁

    1. FreddyDK says:

      This will be fixed one of the following days with an update for the October preview, where passwords are handled securely and transferred to docker encrypted.

  7. CD'silva says:

    I’m working on the NAV Development Preview – October Update.
    I’ve manually installed these files.

    After which I click on navserver CSIDE, I get the error ” The Program cant start because MSVCR120.dll is missing from your computer.Try reinstalling the program to fix this problem”

    I even cant open navserver Windows client

    Am I missing something?

    1. FreddyDK says:

      You shouldn’t install anything manually.
      Remove your VM, run again and when Azure indicates that it is completed, open the landing page and wait until the landing page says installation complete. Takes around 30-40 minutes and everything should be setup for you.

      1. CD'silva says:

        Thank you for your reply!

  8. Jeffrey Bressler says:

    Hi, I have just started with the VS Code with a local install. I am able to connect to the Demo 11-0 and/or the O365 databases from what I can tell fine. When I click Download symbols it creates the .alpackages folder and the 2 files, Microsoft_System and Microsoft_US. The problem I am having is if I create an extension to a current page/table, I get an error similar to “The target Table Item for the extension object is not found”. I assume I’m missing something simple but I cannot figure it out. Has anyone encountered and fix this issue or did I not set something up correct? Thanks.

    1. Pallea says:

      @Jeffrey Bressler – You will get a faster response if you report/ask this question on Yammer.


    2. Philip says:

      Having the same error

      1. Philip says:

        Solved by reinstalling the vm

  9. malue1991 says:

    Hey guys,
    I am testing the new AL type controladdin in Visual Studio Code to learn, how to visualize data in Business Central by using Chart.js.
    The problem is, that there is nothing to see in BC…the usercontrol stays empty…What else do I have to do? I also added the property “ApplicationArea = all” to the usercontroll. But there is no difference…

    Thank you for your help!

Skip to main content