Skip to content

Frequently Asked Questions

Stanislaw Stempin edited this page Dec 13, 2017 · 47 revisions

How to get started?

Please start by having a look at our app development landing page located at https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-develop-apps-for-fin and follow the step by step guidelines to get set up. You can then have a look at the Getting Started section of the developer documentation: https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-get-started

Our blog post series provides a good overview for features that were added in each month: https://blogs.msdn.microsoft.com/nav/2017/10/12/nav-development-preview-october-update/

Which version of the AL Language extension should I use?

  1. For NAV 2018 you should use the AL Language extension that is installed together with the product (minimum version 0.12.XXX).
  2. For the Cloud sandboxes you should use the AL Language extension available on the VS Code Marketplace.
  3. For latest Developer Preview releases you should use the AL Language extension that is available on the docker images.

How to enable the new debugger?

https://docs.microsoft.com/en-gb/dynamics-nav/developer/devenv-debugging

Menusuite objects are not supported. What do I do?

Two primary purposes of menusuites are to:

  • Make pages searchable
  • Make pages accessible through a navigation structure

The first purpose can be achieved in extensions V2 by using the new properties added to Pages and Reports. See this blog post for more details: https://blogs.msdn.microsoft.com/nav/2017/12/06/nav-development-preview-december-update/

The second purpose can be achieved by extending the Navigation Pane page and/or by adding Actions to other existing pages that can serve as a navigation starting point. See Extending Navigation Pane #669 for an example.

How to upgrade Extension V1 to Extension V2

See the following documentation topics: https://docs.microsoft.com/en-us/dynamics-nav/developer/devenv-upgrading-extensions https://docs.microsoft.com/en-us/dynamics-nav/developer/devenv-upgrade-v1-to-v2-overview

The comment on the following issue also contains useful information Issue #721

File APIs are not available in Extensions V2. What to do?

Code that relied on temporary files needs to be rewritten to rely on InStream and OutStream types. Code that relied on permanent files needs to be rewritten to use another form of permanent storage.

We are considering a virtualized temporary file system to make working with temporary files available in the cloud in the future.

DotNet types are not available in Extensions V2. What now?

On-Premise:
DotNet interop will be available at some point in the future but not in the NAV release this year.
SaaS:
DotNet interop is not available due to safety issues in running arbitrary .NET code on cloud servers. There are at least 2 possibilities that we recommend:

  1. With each monthly update we are providing new AL types that replace the most typical usages of .NET like HTTP, JSON, XML, StringBuilder, Dictionaries and Lists. Many .NET usages can be replaced directly by these new AL types resulting in much cleaner code. Documentation: https://msdn.microsoft.com/en-us/dynamics-nav/developer/devenv-restapi-overview

  2. For things not possible to achieve in AL code we recommend using Azure Functions to host the DLL or C# code previously embedded in NAV and call that service from AL I recommend the following blog posts from our MVPs to understand it in more depth: http://vjeko.com/state-net-affairs/
    http://www.kauffmann.nl/2017/06/24/al-support-for-rest-web-services/
    http://vjeko.com/invoking-azure-functions-al/

  3. We offer an open source GitHub repository where you can submit .NET type wrappers that, if accepted, will be included in the base application: https://github.com/Microsoft/cal-open-library

The type or method 'XYZ' cannot be used for 'Extension' development.

We have blocked off a certain set of functions from being directly called from Extension code. The approach was based on a conservative static analysis resulting in some functions being blocked unnecessarily. If you require to use one or more of these functions please log an issue and provide a full list. We will analyze the request and unblock functions deemed safe.

Clone this wiki locally