Transition from C/AL to AL – From a developer’s point of viewDeepak Kumar
Business Central Online, the latest offering in the Microsoft Dynamics 365 family has completely changed the way of ‘Customization development’ for any experienced NAV developer. Coding language has changed from C/AL to AL (i.e. AL-Extension V2.0) with the custom code sitting as a separate extension, not at all interfering with the standard code. The custom code now gets deployed as an ‘app’ on top of the standard code base.
Development interface has also undergone a change – earlier development was in C/SIDE, now it is through Visual Studio platform. For further details, refer my previous blog.
Business Central offers a container-based image environment called ‘Docker’ enabling access to both the AL development environment and the C/SIDE development environment. Docker gets installed on a Windows OS machine – creating the Sandbox environment for a developer to work with. Sandbox is a non-production instance of Business Central available for development and testing.
I am listing below some key differences between developing in C/AL and AL:
- AL Language (i.e. Extension V2.0) is directly linked with the Visual Studio code environment as an extension – making all Visual studio platform features available for extension development
- A Package containing all the custom extensions gets created including an app file. The app file is further used for installation or deployment of the custom extensions
- Development has become flexible with the availability of many new variables (JsonArray, JsonObject etc).
- The limitations of Table size have been partially removed in AL extension development because the field addition in extension will be part of table extension and not of the base table
- Various dot net classes as a library is directly available in AL as a datatype – resulting in no need to call it from external sources or with .NET variable references
- We can invite .NET type members, including methods, properties, and constructors from AL code
- Availability of Azure Functions -way of running simple pieces of code as a serviceand can invoke like any other RESTful web services
- We can maintain your customizations with the security features to allow or disallow to show the codebase
- If any of your new projects are dependent on any other project i.e. package you can use the dependencies features in the app.json and it will give you all relevant extension file access from the source package
C/SIDE – C/AL Code
The development/creativity/integration horizon for a CAL developer has also expanded with AL – enabling use of extensive development techniques/features in terms of huge language support, IntelliSense, Peek Information etc.