We all know that the move from C/AL to AL has been a big move 😅, and even more if you are moving to the cloud 😵. We have had to rethink and re design a lot of our solutions, some of which we might not have made a lot of changes to for many years, except for a few hotfixes here and there.
No matter how you look at it, with the release of Business Central our ERP world has changed, it has become much for technical and developers have been forced to evolve, taking on a lot of new technologies, and workflows, this brave new world can be hard to navigate if you are a developer, and nearly impossible if you are a consultant 😵. And I think that many consultants might already give up before hand, feeling that the new Business Central development world is too complicated to navigate. In this blog I will try to provide you with a bird eyes overview, of the tools, limitations, possibilities and workflows that a Business Central developer uses and faces. Well let’s get started.
First let us look at the different options you have when you choose Business Central.
Business Central On Premise
Business Central version 13 – 14: These versions all work like any other NAV installation, they come with C/SIDE and the Windows client, the only difference between these versions of Business Central and the older versions of NAV is that they also support Extension development through Visual Studio Code.
Business Central version 15+: These versions only support the web client and AL development through Visual Studio Code. The big difference between, being on premise and being in the cloud with a Business Central version 15+ is that you can customize the base application, even though this should be avoided at all costs 🤬, and you can use .NET.
Business Central Cloud: When you choose to go to the cloud you say goodbye to creating any kind of customization to the base application, and you also say goodbye to .NET and local file storage 😥. Once you are in the cloud you will automatically be upgraded to the newest version of Business Central when it is released.
Tools used by Business central developers are:
Visual Studio Code: For writing AL code and creating Extensions, Business Central developers use Visual Studio Code or VS Code for short. Unlike C/SIDE VS Code is not a tool specifically developed for writing AL code. VS Code is a common develop environment (IDE) used for many different programming languages, this is both a strength and a weakness, the obvious strength is that it opens the world for the developer to a whole new world of possibilities of development, another strength is that because it has so many users it keeps getting new features and improvements. On the negative side, since it is an open platform you will never get the same customized experience that you are used to from C/SIDE.
GIT / DevOps: In C/SIDE we where use to all our code being stored in a NAV database, with the occasional .fob file to move objects from one database to another. In AL things are a little different, in AL development everything is stored in text files, which means that you need a central location to store all your source code, and for this most developers use GIT source control either through GIT Hub, Azure DevOps or BIT Bucket. The great thing about storing your code in GIT is that it saves all your history, so you have the possibility to “go back” in time to an earlier version of your code.
Docker: When developing for Business Central you might want to have your own local installation of Business Central running on your PC. There are two ways of accomplishing this, if you are supporting an Business Central OnPrem version then, you can of course always install a local version of Business Central on your PC, however this can be a complex solution since you will need to install, an SQL server, a service tier and an IIS, and if you are supporting a cloud solution you are out of luck, because the OnPrem version and the Cloud versions er not 100% aligned. Well this is where we turn to Docker, what Docker gives you is the ability to run any program in a container-based environment, which means that you can by running a simple PowerShell script create an installation of any version of Business Central, and Docker is also the only way that you can have a local version of a Cloud sandbox running on your PC. Docker is also the only way that you can test the next major and minor release before they get released, allowing you to test your code against future releases.
Pipelines: When we talk about pipelines, we talk about automatic building and releasing of your code. Pipelines are a tool that Microsoft has made available through their Azure DevOps. The rule of thumb is that you can setup a pipeline for any code that you have in source control. The idea behind pipelines is that your team has a shared place where all your code will be built and distributed from, resulting in a standard workflow.
Printing from Business Central in the cloud.
When it comes to printing in Business Central you have 3 solutions, which each comes with their own strengths and weaknesses.
Standard: Out of the box Business Central comes with a way of printing that works by Business Central sending the document by mail to your printer, which will then print the document. This is the easiest way to print from Business Central since it does not require any code, however it does require you to have a printer that can receive mails and print them.
Print Client: The second way you can print from Business Cental is by using a print client, this could for example be print node. This works by you having to install a local program on your print server, you then write some code in Business Cental that can send your document as a base64 encoded object to a third-party vendor portal through a webservice, this web portal will then send it to your print client which will send it to your printer. The good thing about this solution is that you do not need to buy a new printer, however the down side is that you will have to developer an extension that can communicate with the third-party vendor, and you will normally have to pay for the number of pages that you wish to print.
Google Cloud Print: The third way is using Google Cloud Print; this will allow you to print from anywhere to any printer that is connected to the internet. However, using Google Cloud Print requires you to use Google Chrome, and while Google Cloud Print is free to use now, no one knows what the future brings.
File management in the cloud.
Once you say hello to the cloud you also say goodbye to your old ways of storing and working with files. There are three ways to work with files in the cloud.
Azure Blob storage: The cheapest way to store files in the cloud is by using azure blob storage, you can view azure blob storage as an online hard disk, with no fancy tools and functions, you can communicate with your blob storage by using some built in REST api, which support that you can get and send files to you blob storage. You can also map your blob storage to your local PC so it should work like any other shared drive.
One Drive: One Drive is Microsoft version of a cloud drive, the One Drive comes with a lot of API’s and tools out of the box, it has a very user-friendly web user interface, and it allows you so sync you online files to your local PC out of the box in Windows 10, your One Drive is also bound to your Office 365 login, and it has a lot of support for Microsoft Power Automate, One Drive is also part of Microsoft Graph, which means that it makes it easy to work together with other products in the Microsoft ecosystem. The downside to One Drive is that you must pay for a Microsoft Office 365 subscription, to get the most out of the product.
SharePoint: SharePoint is One Drive plus more, you get everything that you get from One Drive plus the ability to have an online intranet, where you can share news and files with each other. The downside to SharePoint is that it is very complex and you would normally have people who has to be expects at setting up and using your SharePoint site, but once you have that the possibilities are endless.
In the old days when we had to create complex Intergrations or just needed to do something that C/AL could not do, we looked to .NET however in the cloud this is no longer possible, but luckily, we have been provided with some alternatives.
Power Automate: Once known as Microsoft Flow, Power Automate is a powerful tool, which comes with a lot of build in templates, to integrate your Business Central with countless other systems. In Power Automate you can either create tasks that runs on a timer or tasks that you can trigger either through a REST endpoint or a trigger. The downside to Power Automate is that it is not free so if you wish to use it, you must pay a fee.
Power Apps: App’s are one of the hottest things in our industry, and while Business Central does come with its own app, many times you want something else, the problem is that most Business Central Developers do not know how to create app’s written in C#, Java or Objective C, so you are left with having to outsource your app development to a third-party app development team, and while there is nothing wrong with that, it can sometimes become very expensive, and this is where Power App’s come in, with Power Apps it is very simple to create an app that can connect to pretty much any endpoints, and with only having to write very little code. The downside to Power Apps is like anything else that is designed to be simple, you also lose a lot of control of the end product.
Azure Functions: If you do not find what you are looking for in Power Automate, Microsoft has provide us with the ability to create our own webservices that can do pretty much anything since it runs on pretty much any programming language, and the great thing about Azure Functions is that it is serverless so you do not need to think about infrastructure. The idea behind Azure Functions is that you can call a function through an endpoint that either returns something back to Business Central or calls a third-party product. Azure Functions are not free however they are very cheap.
And that is it for this post, I hope it gave you a little understanding of what tools and workflows that Business Central developers use in their day to day work. So, until next time, stay safe. 😷