Long journey

It’s almost a year after the launch of AL. And I guess you know, that the only supported operating system was Windows … before that moment.

During DirectionsNA team announced that now AL is supported on MacOs!

That was a small tweet from Stan, but that’s a huge step forward. 

We, MacOS users, waited for that moment more than a year!

Anyway, there are some differences in developing apps comparing to Windows experience.

First, and the most important. On-Premise Sandboxes – are not supported. So, the only available option is Cloud Sandbox. And here we have the second difference – in the way how we connect to it. 

Hands on - New extension created on MacOs

Let’s create a simple extension for Business Central on MacOs.

Step 1. Open VS Code with AL extension installed

Next scenario I will cover from my brand new MacOS Mojave desktop!

The magic here – you have the same marketplace for Win and MacOs! So, any VSCode extensions available on Win will should work on MacOs =) 

Step 2. Open/clone/create AL project

To create a new AL project on MacOS, we use Shift+Cmd+P

 

Step 3. Connect to cloud Sandbox and download symbols

We see the difference between Windows and MacOS experience on this step. Docker Sandboxes could be created only on Windows. So, I will use cloud sandbox.

Press Shift+Cmd+P and choose AL: download symbols

AL will give you some id. You should:

  • open browser
  • go to https://microsoft.com/devicelogin
  • paste this id there
  • sign in your Business Central Cloud Sandbox
 

That’s it. Symbols are downloaded, and VSCode is connected to cloud sandbox from this moment. Every time you will run AL: Publish command, your app will be published on THAT sandbox.

If you would like to connect to another cloud sandbox, simply run AL: Clear credential cache and repeat current step.

Step 4. Create an App

My app will show the list of different aeroplanes models. Very simple example. What I really want to check, if other AL extensions (that I use a lot) also work on Mac.

ALRunner

I have external web service, where I have a list of all aeroplane models. The idea – to have this list inside of Business Center and upload data from this external web service. Usually, I use ALRunner for that task. Let’s see if it works on Mac.

 

Unfortunately, it does not work. Not a problem, I’ll do it manually. 

[Updated]. It works! Thanks,  for fixing. Check that you have REST extension installed and enabled.

AL

I did not find any differences in the way we code, except some shortcuts:

  • Editing support through IntelliSense (Fn + Ctrl + Space)
  • Command palette (Cmd+Shift+P)

I created a new table the same way, as I did before in Windows.

 

If I will find something unusual in the future, I’ll update my post. 

AL Outline

With this extension, you can create pages/reports for your tables and investigate the structure of .app and .al files.

 

Works!

Next, I will manually add codeunit to call external web service.

CRS AL Extension

Now let’s follow AL naming guidelines. With CRS AL Extension I’m going to rename files and place them in the right hierarchy.

 

Works!

Now I’m ready to publish my app to the cloud sandbox.

Step 5. Publish

When you run AL: Publish without debugging on MacOs, the process will send your app, publish and install directly to the cloud sandbox.

 

 

The result – your app in the cloud, directly from MacOs!

Without VM, without Docker. Just MacOS, VSCode and AL!

Brilliant!