Developer Preview – June 2018 Update

Welcome to the Developer Preview for June. In this release we have a number of new features for you that are introduced below. We have also spent time burning down outstanding bugs reported through GitHub. See the list of closed bugs here: https://github.com/Microsoft/AL/milestone/17?closed=1.

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 post please make sure you are running an image with a build number 13.0.22895.0 or newer.

Debugger enhancements 

We have added support for the following  debugger options that have also been available in the Dynamics NAV debugger. The options are:

  • breakOnError. The default is true. 
  • breakOnRecordWrite. Breaks before a write action. The default is false.

These settings are part of the configuration settings in the launch.json file.

We have added the possibility to go to definition on base app code or any reference code that has been published with showMyCode enabled . The “Go to definition on base app symbols” on local server scenarios requires that the AL  symbols are rebuilt and downloaded from C/SIDE. 

You can also set breakpoints in methods of downloaded content. This refers to both base application-based C/AL content and extension V2 based reference content where the showMyCode flag has been set to true when the package was deployed. Note that the base application-based C/AL is partly modified to render in the Visual Studio Code AL editor, and that object metadata is shown at the end of the file. 

 

Permission Set Creation

We have added some utilities to make working with permissions easier for you. You can now export selected app and/or tenant permission sets which you have created in the client so that you can package them for your extension. This allows you to use the client instead of having to edit the XML by hand. Once you publish, you can see the permission sets in the client again, make more changes, and then export again. 

  1. On the Permission Sets page, select a few permissions that you want to export and then choose the Export Selected Permissions action.

2. Choose whether you want to export only app, tenant, or both types of permissions.

3. And then save the file to your extension folder.

You can now also generate a permission set file which contains permissions to all the files in your extension. This will make it easier to start setting up permissions for your app. Previously you had to do it by hand for each object and make sure you didn’t forget something. 

  1. Simply create your extension with some objects.

2. Invoke the Visual Studio Command with Ctrl+Shift+P and then select AL: Generate permission set containing current extension objects.  Please note that if you do this repeatedly, Visual Studio Code will probe for overwriting the file, there is no support for merging manual corrections into newly generated content.

 

3. Now, you have your XML file with default permissions to all your objects.

 

  

.NET Interoperability 

We have added the posibility of using .NET types from AL. .NET interoperability will only be available for solutions that target on-premise deployments. 

To create an extension that uses .NET interoperability you must first: 

  • Open the extension’s app.json file and set the “target” property to “Internal” 
  • Open the settings for your current workspace and specify any folders that should be searched for assemblies by setting the “al.assemblyProbingPaths” property. 

You can now start using .NET interoperability by declaring the .NET types that you will be using in a dotnet{} package and referencing them from code as in the example below. For more information, see Get Started with .NET Interoperability from AL.

Backwards compatibility 

We are working on making one single Visual Studio Code AL extension which is compatible with multiple versions of the server. 

This means that in the near future you will be able to install the AL Language extension from the Visual Studio Code marketplace and use it to develop solutions for: 

  • Microsoft cloud sandbox 
  • Business Central, April 2018 release 
  • Business Central, Fall 2018 release 
  • And more

Please note that at the moment there are no plans to make this AL Language extension version backwards compatible with Dynamics NAV 2018. For NAV 2018 development, the traditional method should be used – install the VSCode extension from the ALLanguage.vsix file shipped on the DVD. 

The first bits of this feature are out in the preview now. 

In the app.json file, a new attribute “runtime” is added. This attribute defines the platform version that the extension is targeting. Depending on the runtime version, certain features become available or on the contrary – not allowed. For example, .NET interopability can only be used when the runtime version is 2.0 or higher. 

 

That’s it for now. 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 (https://github.com/Microsoft/AL/issues).

 

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

Developer Preview – May 2018 Update

Developer Preview – March 2018 Update

NAV Development Tools Preview – February 2018 Update

NAV Development Tools Preview – Anniversary Update

NAV Development Tools Preview – December 2017 Update

NAV Development Tools Preview – November 2017 Update

NAV Development Tools Preview – October 2017 Update

NAV Development Tools Preview – September 2017 Update

NAV Development Tools Preview – August 2017 Update

NAV Development Tools Preview – July 2017 Update

NAV Development Tools Preview – June 2017  Update

NAV Development Tools Preview – April 2017 Update

NAV Development Tools Preview – March 2017 Update

NAV Development Tools Preview – February 2017 Update

NAV Development Tools Preview – January 2017 Update

Announcing the Preview of Modern Development Tools for Dynamics NAV