35,99 €
This book dives straight into guiding you through the process of building real-world solutions with the AL language and Visual Studio Code. It emphasizes best practices and extensibility patterns to ensure your extensions are well-structured, maintainable, and meet the needs of modern businesses. You'll learn advanced AL techniques, report creation methods, debugging strategies, and how to leverage telemetries for monitoring. Additionally, it covers performance optimization practices and API integration to help you create efficient and interconnected solutions.
With a focus on extension development, this new edition allows you to jump right into coding without spending time on setup processes. This book introduces new chapters covering essential tasks that Business Central developers frequently encounter, such as file handling and printing management. Finally, the book expands its scope by including chapters on various integration aspects, including VS Code extensions, GitHub DevOps, Azure services, and Power Platform integrations. We’ll wrap up by covering Copilot capabilities in Business Central and how you can create your own generative AI copilots. By mastering these concepts and techniques, you'll be well-equipped to create powerful and customized solutions that extend the capabilities of Dynamics 365 Business Central.
Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:
Seitenzahl: 694
Veröffentlichungsjahr: 2024
Mastering Microsoft Dynamics 365 Business Central
Second Edition
The complete guide for designing and integrating advanced Business Central solutions
Stefano Demiliani
Duilio Tacconi
BIRMINGHAM—MUMBAI
Mastering Microsoft Dynamics 365 Business Central
Second Edition
Copyright © 2024 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
Senior Publishing Product Manager: Larissa Pinto
Acquisition Editors – Peer Reviews: Gaurav Gavas and Jane Dsouza
Project Editor: Parvathy Nair
Content Development Editor: Matthew Davies
Copy Editor: Safis Editing
Technical Editor: Kushal Sharma
Proofreader: Safis Editing
Indexer: Hemangini Bari
Presentation Designer: Ganesh Bhadwalkar
Developer Relations Marketing Executive: Sohini Ghosh
First published: December 2019
Second edition: March 2024
Production reference: 1130324
Published by Packt Publishing Ltd.
Grosvenor House
11 St Paul’s Square
Birmingham
B3 1RB, UK.
ISBN 978-1-83763-064-6
www.packt.com
I dedicate this book to my family and especially to my little daughter, Sara. Love you, thanks for the energy you give me every day…
– Stefano Demiliani
This book is dedicated to the love of my life: Laura.
– Duilio Tacconi
Stefano Demiliani is a Microsoft MVP for Business Applications and Azure, MCT Regional Lead and a long-time expert on Microsoft technologies. He works as a CTO for EID NAV-lab Group and his main activities are architecting solutions with Azure and Dynamics 365 ERPs. He’s the author of many IT books for Packt and a frequent speaker on international conferences about Azure, Dynamics 365, and Power Platform. You can reach him on Twitter or on LinkedIn or via his personal website.
Duilio Tacconi is a performance specialist for EOS Solutions Group who has worked with ERP technologies since 1998. As a Microsoft MCT and author of educational resources about Microsoft, Duilio has been passionate about Microsoft Dynamics NAV and 365 Business Central since 2004. In the past, Duilio worked as a former Microsoft senior escalation engineer for 15 years, from 2008 to 2023.
Duilio has handled thousands of support requests resolving issues with Microsoft products over the years. Currently, he implements processes to analyze performance data through telemetries and insights tools, as well as being involved in the continuous updating of clients from on-premises to online.
Daniel Rimmelzwaan has, over the past 25 years, worked in almost every role implementing Business Central. He currently owns his own business (risplus.com) performing business analysis, architecture and design, and development. This is the tenth book Daniel has reviewed for Packt.
Ever since he started working with Business Central, Daniel has contributed to its online communities. For those contributions, Daniel has received eighteen Microsoft MVP awards between 2005 and 2022. You can follow Daniel’s blog at https://thedenster.com.
Danilo Capuano is a technical delivery manager and office manager at Agic Technology. He is a Microsoft Certified Trainer (MCT) and MVP. Danilo specializes in solution architecture for Power Platform, Dynamics 365, and Azure, as well as being familiar with DevOps engineering. He is active in the Microsoft community in Italy, being a group leader for Power Apps User Group Italia and Power Pages User Group Italia. He is active on social media and can be found through his blog (danilocapuano.blog), Twitter (@capuanodanilo), and LinkedIn (/capuanodanilo). He has previously worked as a technical reviewer on several other titles, including Fundamentals of CRM with Dynamics 365 and Power Platform, Mastering Microsoft Dynamics NAV 2016, Microsoft Dynamics NAV 7 Programming Cookbook, Microsoft Dynamics NAV 2013 Application Design, Microsoft Power Platform Enterprise Architecture, Learn Microsoft PowerApps, and Programming Microsoft Dynamics NAV 2015.
To join the Discord community for this book – where you can share feedback, ask questions to the author, and learn about new releases – follow the QR code below:
https://packt.link/businesscenter
Preface
Who this book is for
What this book covers
To get the most out of this book
Get in touch
Microsoft Dynamics 365 Business Central’s Online Momentum
Dynamics 365 Business Central’s evolution
The Universal Code initiative
The role of open source and social networks
The future perspective
Summary
Mastering a Modern Development Environment
The Visual Studio Code user interface
Code editor
Status bar
Activity bar
Manage
Command Palette
Sidebar
EXPLORER (Ctrl + Shift + E)
SEARCH (Ctrl + Shift + F)
SOURCE CONTROL (Ctrl + Shift + G)
DEBUG (Ctrl + Shift + D)
EXTENSIONS (Ctrl + Shift + X)
Panels area
PROBLEMS
OUTPUT
DEBUG CONSOLE
TERMINAL
Visual Studio Code – the editing features
Comment lines
Delimiter matching
Text selection
Code block folding
Multiple cursors (or multi-cursors)
Mini-map
Breadcrumbs
IntelliSense
Word completion
Go to definition
Find all references
Peek definition
Renaming symbols
Understanding the AL Language extension
AL Language
launch.json
app.json
Understanding symbols
Inside symbols
AL Language extension settings
Understanding code analyzers
GitHub Copilot for AL developers
Summary
Extension Development Fundamentals
Technical requirements
Basic concepts regarding extensions
Understanding the basics of AL
Creating a new workspace
Defining objects using snippets
Table object definition
Page object definition
Table extension object definition
Page extension object definition
Codeunit object definition
Event object definitions
XMLport object definition
Query object definition
Enum object definition
Profile object definition
Understanding AL project structure best practices
Naming guidelines and AL object ranges
Working on AL coding guidelines
Summary
Developing a Customized Solution for Dynamics 365 Business Central
Translating a business case into a real-world extension
Developing the Dynamics 365 Business Central customization
Customer category implementations
Table definition
Page definition
The tableextension definition
The pageextension definition
Codeunit definition
Handling event subscribers
Gift campaign implementations
Table definition
Page definition
Codeunit definition
Vendor quality implementations
Table definition
Page definition
The pageextension definition
Codeunit definition
Promoting actions
Creating page views
Installing and upgrading codeunits
Defining permission sets in AL
Summary
Writing Code for Extensibility
Why do we need extensible code?
Business scenario
Events and the “Handled” pattern
Writing a dependent extension
Interfaces in AL
Extension’s code protection
Summary
Advanced AL Development
Understanding immutable keys
Access modifiers in AL
Handling errors with TryFunctions
Using collectible errors
Handling actions on errors
Creating and extending role centers
Customizing the headline
Handling XML and JSON files with the AL language
Understanding Isolated Storage
Working with control add-ins
Creating a PDF-Viewer control add-in
Notifications inside Dynamics 365 Business Central
Understanding page background tasks
Using Azure Key Vault in AL extensions
Namespaces in AL language
Summary
Handling Files with Dynamics 365 Business Central
Handling files with AL
Handling attachments
Reading and writing text data from blob fields
Using the Media and MediaSet data types in AL code
Using XMLport in AL code
Handling XML and JSON files with AL
Using persistent blobs
Isolated Storage
Using Azure Blob Storage from AL
Creating a storage account in Azure
Using Azure Blob Storage from AL code
Handling Dynamics 365 Business Central attachments in Azure Blob Storage
Using Azure file shares from AL
Summary
Report Development
Anatomy of the report object
The report extension object
Tools to use for RDL, Word, and Excel layouts
The RDL, Word, and Excel layout features
Part 1 – Designing the dataset
Part 2 – Creating a simple RDL layout
Part 2.1 – Creating the RDL report header
Part 2.2 – Adding a table control to the RDL report body
Part 3 – Understanding grouping
Part 4 – Building a simple request page
Part 5 – Adding database images
Part 6 – Adding a Word layout
Part 7 – Adding an Excel layout
Report extension object: a basic example
Cloning and refactoring reports
Feature limitations when developing RDL or Word layout document reports
Understanding report performance considerations
Summary
Printing
Understand cloud-ready printing
Email printers
Microsoft Universal Print printers
Universal Print connector
Universal Print portal
Universal Print Integration extension
Deep dive into the modern printing structure
Alternatives to Microsoft Universal Print
Summary
Debugging
Running in debug mode
Debugging logs: verbose mode
Visual Studio Code debugger sections
Debugger sidebar
VARIABLES
Watch
Callstack
Breakpoints
Debugger toolbar
Debugging in attach mode
Non-debuggable items
Snapshot debugging
Performance profiling
Summary
Telemetry
Signal fundamentals
Dimensions
Aggregated signals
Microsoft’s recommendations
Example
Enabling partner telemetry in Dynamics 365 Business Central online
KQL log analysis
Statements
Operators
Functions
Application Insights
Alerts
Dashboards
Workbooks
Tools to analyze telemetry data
Power BI telemetry apps
Custom signals
Summary
Coding for Performance
Defining an efficient data access layer
Table extension changes from Dynamics 365 Business Central version 23
Setting the transaction isolation level in AL code
Writing efficient pages and reports
Writing performant installation and upgrade AL codeunits
Events and performance
Running asynchronous patterns
Using StartSession in AL code
Using Task Scheduler in AL code
Testing and validating performances
Summary
Dynamics 365 Business Central APIs
Using the OData protocol for APIs
Configuring OAuth authentication for Dynamics 365 Business Central APIs
Registering an application in Microsoft Entra ID
Setting the application permissions
Creating a client secret
Microsoft Entra application registration in Dynamics 365 Business Central
Acquiring an authentication token from Microsoft Entra ID
Using Dynamics 365 Business Central standard APIs
Creating a custom API in Dynamics 365 Business Central
Implementing a new API for a custom entity
Implementing a new API for an existing entity
Using the read-only database replica
Dynamics 365 APIs’ operational limits
Using OData bound actions
Using OData unbound actions
Using OData batch calls with Dynamics 365 Business Central APIs
Using Dynamics 365 Business Central webhooks
Summary
Extending Dynamics 365 Business Central with Azure Services
Overview of Azure Functions
Creating functions with Azure Functions
Using Azure Functions from AL
Overview of Azure Logic Apps
Creating workflows with Azure Logic Apps
Summary
DevOps for Dynamics 365 Business Central
AL-Go for GitHub: an introduction
Creating a new per-tenant extension with AL-Go for GitHub
Branching strategies
Master-only branch
Feature/developer branches
Release branching
Other strategies
Git flow
GitHub flow
Git merge strategies
Fast-forward merge
Squash commit
Rebase
Git in Visual Studio Code
Visual Studio Code GUI for Git
Workflow
Handling the CI/CD pipeline
Setting up your self-hosted GitHub runner
Handling dependencies between applications
Adding a test application to an existing project
Registering a customer sandbox environment for continuous deployment
Creating a release for your application
Registering a customer Production environment for manual deployment
Adding a performance test app to your repository
Using AL-Go for GitHub for AppSource development
Summary
Dynamics 365 Business Central and Power Platform Integration
Technical requirements
Power Automate and Dynamics 365 Business Central
Example 1: Adding a default image to a Customer record
Example 2: Exporting a selected invoice as PDF to OneDrive
Creating a Power Apps app with Dynamics 365 Business Central integration
Scenario: Expense app with offline capability
Part 1: Creation of the canvas app project
Part 2: Establishing a data connection to Dynamics 365 Business Central
Part 3: Working with Dynamics 365 Business Central data from the canvas app
Part 4: Adding controls and business logic to the canvas app
Part 5: Adding offline capabilities to the application
Part 6: Calling a Power Automate flow to execute actions in the app
Exposing Dynamics 365 Business Central data to Dataverse by using virtual tables
Exposing Dynamics 365 Business Central events to Dataverse
Summary
Useful and Proficient Tools for AL Developers
Who is Waldo?
What tools to use
The AL Extension Pack
The waldo’s CRS AL Language Extension
Run objects
Renaming / Reorganizing files
Search on Google/Microsoft Docs
Snippets
Feedback to Waldo
Waldo GitHub repo
Free Visual Studio Code extensions for AL developers
AZ AL Dev Tools/AL Code Outline (by Andrzej Zwierzchowski)
AL Code Actions (by David Feldhoff)
AL Object ID Ninja (by Vjeko.com)
BusinessCentral.LinterCop (by Stefan Maron)
AL Toolbox (by Bart Permentier)
AL Navigator (by Waldemar Brakowski)
Free Visual Studio Code extensions for AL Language side features
Summary
Creating Generative AI Solutions for Dynamics 365 Business Central
Introduction to generative AI main concepts
Introducing Azure OpenAI Service
Dynamics 365 Business Central and Azure OpenAI Service
Deploy an AI model with Azure OpenAI Service
Creating a generative AI solution for Dynamics 365 Business Central
Summary
Other Books You May Enjoy
Index
Cover
Index
This book is an essential guide for developers that need to create advanced solutions with Dynamics 365 Business Central, the cloud-based Enterprise Resource Planning (ERP) solution provided by Microsoft.
We start by explaining the Dynamics 365 Business Central platform and its most recent developments, as well as anticipating its future development and how you can prepare for it. Our aim in this edition is to start coding an extension as soon as possible, so we will promptly move on to cover developer-oriented topics when coding your own Business Central extensions, covering the best coding practices for performant code.
In this edition, you’ll find new and improved coverage of some of the most common developer tasks in Business Central. In particular, you’ll find chapters on reporting, printing, and handling files from the cloud platform. After covering these tasks, you’ll learn how to perform debugging and telemetry for fully monitoring a Dynamics 365 Business Central tenant. You’ll also learn how to apply DevOps principles to your development practice by using AL-Go for GitHub.
In this book we put a strong focus on integration, covering topics like APIs, Azure Functions, Azure Logic Apps, Dataverse, and Power Platform. Integrating with these technologies allows you to create custom applications connected to Dynamics 365 Business Central. In this edition we wanted to expand our coverage of Power Apps in particular, so we have added a detailed project with step-by-step instructions. You’ll learn how to create a fully functional app, complete with offline capabilities.
An exciting new topic in Microsoft is the integration of custom generative AI solutions in Dynamics 365 Business Central by using Azure OpenAI and the Copilot developer toolkit from AL. We’ll wrap up covering how you can configure the Copilot capabilities in Business Central, as well as how to create your own copilots.
Overall, we hope this book will help experienced developers learn the latest tools in the trade and best coding practices to become an expert at developing solutions for Dynamics 365 Business Central.
This book is designed to help experienced professionals enhance their knowledge and understanding of Dynamics 365 Business Central. Whether you want to develop more performant extensions, learn how to handle printing solutions, or improve your use of telemetries, this book is for you.
Chapter 1, Microsoft Dynamics 365 Business Central’s Online Momentum, explains Dynamics 365 Business Central and its importance in the Microsoft’s ERP ecosystem.
Chapter 2, Mastering a Modern Development Environment, explains everything you need to know to create a development environment for Dynamics 365 Business Central.
Chapter 3, Extension Development Fundamentals, explains the basics on how to create a customized solution for Dynamics 365 Business Central.
Chapter 4, Developing a Customized Solution for Dynamics 365 Business Central, guides you on creating a complete customized solution for Dynamics 365 Business Central using guidelines for publishing it on the Microsoft marketplace.
Chapter 5, Writing Code for extensibility, explains tips and best practices for creating solutions that can be extended.
Chapter 6, Advanced AL Development, explains how you can use advanced coding practices to enhance your customized solutions for Dynamics 365 Business Central.
Chapter 7, Handling Files with Dynamics 365 Business Central, explains how you can use files in a cloud environment and how you can use Azure Storage in your solutions.
Chapter 8, Report Development, explains how you can create reports in Dynamics 365 Business Central and how you can extend existing reports.
Chapter 9, Printing, explains how you can handle printer access and printer jobs from Dynamics 365 Business Central in a fully cloud-compatible way.
Chapter 10, Debugging, explains how you can use debugger and snapshot debugging features in Dynamics 365 Business Central to troubleshoot problems.
Chapter 11, Telemetry, explains how you can fully monitor a Dynamics 365 Business Central tenant by using Azure Applications Insights and the ingested telemetry data.
Chapter 12, Coding for Performance, gives you tips and tricks on how you can create efficient AL code with performance optimization in mind.
Chapter 13, Dynamics 365 Business Central APIs, explains how you can use existing APIs and how you can create custom APIs with Dynamics 365 Business Central, with also advanced usage techniques.
Chapter 14, Extending Dynamics 365 Business Central with Azure services, shows you how you can use Azure Functions and Azure Logic apps to extend your solutions on using cloud resources or on executing custom .NET code.
Chapter 15, Applying DevOps in AL Extension Development, explains the importance of applying DevOps practices in a Dynamics 365 Business Central project and shows you how to use AL-Go for GitHub for handling your development process.
Chapter 16, Dynamics 365 Business Central and Power Platform Integration, shows you how you can use Power Automate, Power Apps and Dataverse to create advanced solutions that integrates Dynamics 365 Business Central with the Power Platform.
Chapter 17, Useful and Proficient Tools for AL Developers, gives you an overview of tools that you can use to improve your development process and to increase efficiency.
Chapter 18, Creating Generative AI Solutions for Dynamics 365 Business Central, explains how you can integrate generative AI features into your Dynamics 365 Business Central solutions by using Azure OpenAI and the Copilot Toolkit.
To follow along with the topics and projects in this book, you will need to set up Dynamics 365 Business Central and Visual Studio Code:
Dynamics 365 Business Central: This software is available as a SaaS service, so a registration on https://businesscentral.dynamics.com is required.Visual Studio Code: You can download Visual Studio Code for free from https://code.visualstudio.com/ and install it from the VS Code marketplace. Then, additionally install the AL Language extension.Note that we will explain all these steps in more detail later in the book.
The code bundle for the book is hosted on GitHub at https://github.com/PacktPublishing/Mastering-Microsoft-Dynamics-365-Business-Central-Second-Edition. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: https://packt.link/gbp/9781837630646.
There are a number of text conventions used throughout this book.
CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. For example: “A permissionset object can be assignable to a user or not.”
A block of code is set as follows:
"features":["TranslationFile"]When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
begin dt.SetTables(Database::FromTable, Database::ToTable); dt.AddFieldValue(from.FieldNo("SmallCodeField",to.FieldNo("SmallCodeField")); dt.AddFieldValue(from.FieldNo("IntField", to.FieldNo("IntField")); dt.AddJoinCondition(from.FieldNo("id"), to.FieldNo("id"));dt.CopyFields(); end;Any command-line input or output is written as follows:
setBreakpoints 02/20/2023 12:12:14 [/9] Parsing Report 50111 "Item Ledger Entry Analysis". 02/20/2023 12:12:14 [/9] Process:Bold: Indicates a new term, an important word, or words that you see on the screen. For instance, words in menus or dialog boxes appear in the text like this. For example: “Select System info from the Administration panel.”
Warnings or important notes appear like this.
Tips and tricks appear like this.
Feedback from our readers is always welcome.
General feedback: Email [email protected] and mention the book’s title in the subject of your message. If you have questions about any aspect of this book, please email us at [email protected].
Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you reported this to us. Please visit http://www.packtpub.com/submit-errata, click Submit Errata, and fill in the form.
Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.
If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit http://authors.packtpub.com.
Once you’ve read Mastering Microsoft Dynamics 365 Business Central, Second Edition, we’d love to hear your thoughts! Please click here to go straight to the Amazon review page for this book and share your feedback.
Your review is important to us and the tech community and will help us make sure we’re delivering excellent quality content.
Thanks for purchasing this book!
Do you like to read on the go but are unable to carry your print books everywhere?
Is your eBook purchase not compatible with the device of your choice?
Don’t worry, now with every Packt book you get a DRM-free PDF version of that book at no cost.
Read anywhere, any place, on any device. Search, copy, and paste code from your favorite technical books directly into your application.
The perks don’t stop there, you can get exclusive access to discounts, newsletters, and great free content in your inbox daily
Follow these simple steps to get the benefits:
Scan the QR code or visit the link belowhttps://packt.link/free-ebook/9781837630646
Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directlyMicrosoft Dynamics 365 Business Central is one of the best-in-class pieces of cloud-based ERP application software that is targeted at the small and medium business market. The online application is based on the Software-as-a-Service (SaaS) model, and it is typically sold through Cloud Solution Provider (CSP) partners.
In 2023 and 2024, Dynamics 365 Business Central online has been the fastest-growing cloud ERP in the SMB segment worldwide and also nominated as overall Best Manufactoring ERP by Forbes: https://www.forbes.com/advisor/business/software/best-manufacturing-erp/
Figure 1.1: Business Central popularity with Forbes
Potential customers can subscribe for fast setup with a trial version through the following link and by providing an email address that is bound to a Microsoft 365 subscription and a phone number: https://go.microsoft.com/fwlink/?LinkId=2143349&clcid=0x409
Figure 1.2: Business Central fast setup
When the trial period ends, the product needs to be purchased.
Official licensing is assigned typically through Microsoft Partners that are accredited and certified by the CSP program. Simply browse https://dynamics.microsoft.com/en-us/business-central/overview/ and click on Find a partnerunder the Partners tab in the breadcrumb on top of the web page, in the Dynamics 365 section.
All of this looks as simple as 1, 2, 3, and for end-users, it definitely is.
Behind that, there is an entire world and ecosystem of interconnected people from Microsoft and partners that work on this product year after year with impressive results, making its momentum for the future so bright.
In this chapter, we will cover the following topics:
Dynamics 365 Business Central’s evolution: How the platform and application evolved over the years.The Universal code initiative: To write not only good code but code that can be deployed in all topologies.The role of social networks and open source: How to stay up to date with the latest news from Microsoft and from the field.The future perspective: What to potentially expect in the upcoming years and which skills are and will be needed to evolve and master Dynamics 365 Business Central.By the end of this chapter, you’ll have a clear and in-depth overview of the Microsoft Dynamics 365 Business Central platform and its ecosystem.
The application’s core code and business processes come from the evolution of over thirty years of feature development of Microsoft Dynamics NAV (formerly known as Navision): one of the most solid pieces of on-premises ERP software in the SMB domain.
As an example of this evolution, let’s look at how Dynamics 365 Business Central has become more internationally available over time.
If you get the chance to read the first edition of this book, at that time of writing, in 2018, Dynamics 365 Business Central was officially localized by Microsoft in just 18 countries. Starting from the October 2018 update, CSP partners can create their own localized versions for countries where Dynamics 365 Business Central has not been released officially or is not on the radar as a Microsoft localization.
These localizations start with the worldwide standard application base (so-called W1) and are distributed as extensions through the Microsoft Dynamics 365 Marketplace, also known as AppSource. Like any extension (or app) that is deployed through AppSource, all the application and technical support is provided by the partner who sells the app through the marketplace.
You can read more about this at https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/readiness/readiness-develop-localization#service-availability-in-additional-countries.
Since October 2018, a lot of time has passed by and a lot more localizations have been provided by Microsoft and its partners. At the time we are writing, Dynamics 365 Business Central online provides:
24 localized versions by Microsoft133 localized versions by partners54 language appsAnd the number is growing, release after release. Compare these numbers with just the 18 countries available in 2018 and you will have an idea of how fast Dynamics 365 Business Central is evolving.
You can read more about this at https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/readiness/readiness-develop-localization#service-availability-in-additional-countries and https://appsource.microsoft.com/en-us/marketplace/apps?page=1&product=dynamics-365%3Bdynamics-365-business-central&search=language.
Considering the backend and frontend, the core design of Dynamics 365 Business Central as a mature web application relies on Microsoft Azure, Microsoft Dynamics, and Microsoft 365 platforms and their service offerings. The evolution of this ensemble is strongly and tightly connected.
Let’s rewind a bit of the record and redesign here the full history of Dynamics 365 Business Central and its glorious growth.
The name Dynamics 365 Business Central appeared (and so it remains) for the first time with the April 2018 release version 13.x, after being called different names and having different logos. See below how the logo and name have evolved over the years:
Dynamics 365 for Financials
Dynamics 365 for Financials and Operations: Business Edition
Dynamics 365 Business Central
Dynamics 365 Business Central
Version 10
Version 12
Version 13 and 14
Version 15.x and onward
04.2017 – 11.2017
11.2017 – 10.2018
10.2018 – 10.2019
10.2019 onward
Table 1.1: Business Central version history
The first Dynamics 365 Business Central version was the October 2018 release 13.x, which together with version 14.x, still shared a hybrid development (with both AL and C/AL) and deployment (old legacy Windows client and modern web client) for on-premises while SaaS extension deployments could only be performed through AL-only extensions targeted for the web client.
In October 2019, with version 15.x, Microsoft made a hard cut with the past by announcing the removal of both the CSIDE Development environment and legacy Windows client, to make development and client deployment more uniform between SaaS and on-premises versions. This version is very important in Dynamics 365 Business Central’s history since it is the first version bound to a modern lifecycle policy for both on-premises and online versions. A modern lifecycle policy involves the following:
Major releases of the product two times per year, typically in April (called Wave 1) and in October (called Wave 2)One minor update every monthCommon modern lifecycle policy unified for both online and on-premises deployments.This last bullet point is crucial since it determines a permanence in SaaS for a major version, typically up to five minor monthly updates (e.g., from 22.0 to 22.5), and for on-premises, a very short lifecycle of typically 1.5 years with just eighteen updates (e.g., from 22.0 to 22.18) before going completely out of support.
During the first five minor updates, Microsoft is also releasing the previously announced and previewed new platform and/or application features or their enhancements. After the fifth minor update, where the cumulative updates are released only for the on-premises audience, these will just contain minor bug fixes and regulatory features.
See more at https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/terms/lifecycle-policy-on-premises.
Figure 1.3: Business Central lifecycle policy
From a development perspective, this short lifecycle, with a couple of major releases per year, might be a challenge and needs to be tackled and mastered by working more efficiently than in the past when working just with the on-premises line of business. On the other hand, we should not underestimate that the continuous update represents an endless improvement for end-users, both from an application and platform perspective, and is considered a pay-off in investments.
In other words, the online world represents an opportunity to concentrate on pure development mode for partners, without the need to draft the underlying system maintenance part and its upgrade, not only in terms of hardware and software but also from a base application perspective.
To help partners concentrate on what they do best, the platform has grown a lot during these years with tremendous investments from Microsoft. This is reflected in all the different product areas, such as development, client usability, performance, telemetries, debugging tools, and so on.
Yes, this is truly the Dynamics 365 Business Central momentum.
Below is a timeline of some of what could be considered by us the best technical improvements for every specific release from October 2019 onward, considering the online version. If you would like to have a similar timeline for the application improvements, it is worth checking this blog post: Business Central What’s New in Application BC18 to BC23 at https://blog.versionmanager.dk/business-central-whats-new-in-application-bc18-to-bc23/
2019 Wave 2 – version 15.x (October 2019)
Development
Attach and debug next
Client
Keyboard shortcut support
Server
Page background tasks (PBT)
Application Insights telemetry for partners
2020 Wave 1 – version 16.x (April 2020)
Development
Interfaces
Server
Feature Management to enable or test features ahead of time
Read scale-out for resource governance
2020 Wave 2 – version 17.x (October 2020)
Development
Snapshot Debugger in production
Business Central Performance Toolkit
Attach to a user session when debugging
Delete extension data
Server
Data audit system fields are added to every table
Integration
Microsoft Dataverse virtual tables
Business Central in Microsoft Teams
2021 Wave 1 – version 18.x (April 2021)
Development
Report Extension
Entitlement, PermissionSet, and PermissionSetExtension
Add keys to base tables and table extensions
Client
Cloud printing using Microsoft Universal Print
Server
Service-to-service (S2S) authentication
2021 Wave 2 – version 19.x (October 2021)
Development
Profiling AL performance with snapshot debugger
Force sync of customer-specific extensions in online environments
Server
Partial records (JIT loading)
Integration
Power Automate and Power Apps connector support, finding records
2022 Wave 1 – version 20.x (April 2022)
Development
In-client performance profiler
AL-Go for GitHub (DevOps for partners)
Server
Report Excel layout
2022 Wave 2 – version 21.x (October 2022)
Development
Launch in a specific company from Visual Studio Code
DataTransfer object to enable faster data upgrades
Client
Easily switch companies across environments
Modern Action Bar
Integration
Access Business Central with Microsoft 365 license
2023 Wave 1 – version 22.x (April 2022)
Development
ReadIsolation
Attach debugger to active or next session
Client
Toggle in-client analysis mode
Actionable error messages
Integration
Copilot and Artificial Intelligence (AI) integration
2023 Wave 2 – version 23.x (October 2023)
Development
Namespaces
Server
New Table Extension data model
Change locking behavior to ReadCommitted (tri-state locking)
Client
More AI infusion and PromptDialog
Table 1.2: Business Central technical development timeline
So now, from October 2019 (and taking less than five years), Dynamics 365 Business Central demonstrates the uptake of deep integration with a lot of Microsoft Azure services and, overall, the Microsoft Power Platform and Microsoft Teams.
It has grown in its debugging experience, introducing the snapshot debugger and in-client profiling for simultaneous troubleshooting, and release after release is adding new signals to enrich telemetry data emission.
Dynamics 365 Business Central client and server runtime teams are working to improve performance at every update and provide guidelines and tools to write and execute code that is streamlined for fast data retrieval and insertion.
Last but not least: the AI hype. Since 2023 Wave 1, Microsoft started to infuse Dynamics 365 Business Central with AI and include Copilot in several business processes all over the platform and application.
This is, then, an endless endeavor that Microsoft and its partners and customers are taking to grow their business together. There are at least four main points to consider when creating an offering for a new prospect or a migration from an existing customer:
Implement performance tests in advance and execute them periodically: You might think of using the Performance Toolkit extension (https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-performance-toolkit) or you can opt for your own or third-party performance tools and assessments. You might also think of using both Performance Toolkit to define a customer benchmark and Waldo BCPerfTool. This last one can be forked for free in GitHub at https://github.com/waldo1001/waldo.BCPerfTool (with a great explanation video, 20230109 – The less familiar performance tooling, https://www.youtube.com/watch?v=_V0hepCRrkA)In the cloud, having super performant code is crucial since every customer is a “citizen” that lives in their own apartment in a big condominium. Resources are shared across the apartments, and everyone should use and care about them, to avoid starvation. Within multi-tenancy, a “noisy neighborhood” is not tolerated, in order to avoid general performance problems between tenants sharing the same cluster resources.
For this reason, it is very important to write performant code from the beginning and test load in advance and periodically.
Be sure to carefully read the operational limits related to cloud deployments: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/operational-limits-online.Here are two examples of online vs on-premises scenarios to demonstrate operational limits:
Example one: If you have a high number of API calls, remember that for the online version, the current maximum per minute is set to 6000 per user / minute. If you have a high volume, you need to implement retry routines to avoid HTTP 429 errors (too many requests).Figure 1.4: Operational limits in the online version of Business Central
Example two: If you have a lot of companies within the database, these could impact administration activities such as point in time restore, creating and downloading BACPAC files, and even CI/CD deployments. For these and other reasons, Microsoft limited the number of companies to be created in SaaS to 300.You can read more about the operational challenges with the online version when having a database with many companies here: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/environment-company-limit.
All in all, be sure to acknowledge a customer’s business processes, volumes, and technical and business growth rate to avoid any unpleasant surprises when going live.
24/7 business considerations: If your customer has a tight and scheduled downtime window, like typical 24/7 businesses, you should be aware that SaaS deployment involves a minor update every month and a major update every 6 months. These could be tested in advance in a sandbox and planned at will.But keep in mind that Microsoft is still deploying applications and platform hotfixes through the pipeline when it is more convenient or generally needed. This might even happen every day in a week, even though Microsoft is trying to limit them as much as possible and cannot be controlled by partners or a tenant being kept outside pipelines.
Such online service operations and their cadence are described officially here:
https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/service-overview#service-operations.
See the sentence “Service operations happen all day, every day, to always provide [the] best experience.” Point taken.
Storage pricing considerations and archiving data: When purchasing Essential or Premium licenses, these go in a bundle with a fixed quantity of storage for all the environment databases. Typically, a Dynamics 365 Business Central environment starts with a capacity of 80 GB.If your customer is performing a lot of transactions in short periods of time, your database growth might skyrocket and exceed the initially purchased database capacity.
Customers could purchase additional storage space as an additional license with a monthly-paid extra cost. Below, you can see the latest update from July 2021 in relation to storage costs:
Figure 1.5: Storage costs
Be careful, then, in calculating the growth of the database over time, and be fully aware that this could most likely be an important economic factor in deciding whether to go online or still deploy your customer on-premises. In both cases, it would always be good practice to keep monitoring database capacity and deciding from the beginning where to store and retrieve complex data (such as, files, images, videos, and so on) and implement a “delete or archive” business process.
Finally, be sure to always be up to date on the latest pricing for Dynamics 365 Business Central licensing since there might be refinements or periodical price adjustments that might give you a different profitability comparing SaaS with on-premises. The link below will let you download the latest updated licensing guide: https://go.microsoft.com/fwlink/?LinkId=866544.
Now that we have just emphasized and highlighted the Dynamics 365 Business Central online momentum, product growth, and some retrospectives considering SaaS vs on-premises deployments, let’s see the expression of the modern development by unveiling the Universal Code initiative and how this will be a game changer.
The word “initiative” suggests that this is a good practice encouraged in the development community. In this specific case, Microsoft has made this encouragement even more attractive by adding a fee to on-premises extensions that are not adhering to this restrictive cloud scope. Writing universal code extensions means writing code targeted for ubiquitous deployment types: cloud and on-premises. A synonym of universal code is cloud-optimized.
The main benefits that drive this initiative are:
Standardizes a common partner development target with a cloud-first approach.New or existing customers could purchase the same AppSource extension, without the need for any extra legacy dependency.Faster upgrades, updates, and cloud migrations.Efficiently uptakes the latest and greatest Microsoft technologies.Replaces outdated and old-fashioned partner programs like the Registered Solution Program (RSP) and the Certified for Microsoft Dynamics Program (CfMD).From a technical perspective, this simply implies editing the extension manifest file (app.json) using the well-known property "target": "Cloud". But this is not as easy as changing one single property.
Every developer, no matter if a newbie or otherwise, knows that changing the target parameters has a significant impact when compiling extensions. The most common problems are:
It is not possible to reference dotnet objects.It is not possible to reference functions with scope on-premises.Code written to access local resources (for example, files or directories) must be refactored.Local printers cannot be used for server-side printing.Those are the principal obstacles that developers will find in their everyday life when attempting to make their code universal. Statistics from January 2022 found the following percentage breakdown on what might be the showstoppers in writing universal code and taking the leap to the cloud:
20%: Lack of knowledge of serverless architecture18%: Application code performance17%: Unpredictable costs due to a different development approach16%: Interface with production machines and automated warehouses13%: File management10%: Printing6%: Lack of events in first-party extensions (mainly base application)More information can be found at https://demiliani.com/2022/01/12/business-central-universal-code-initiative-are-you-really-so-surprised/. As you might deduce, the impact could not only be a technical one but also have implications for entire business processes if you are migrating an existing customer from on-premises.
What if you continue to write code with a scope different than the cloud for on-premises deployments? As mentioned earlier, this is not technically prohibited, but Microsoft is applies growing extra fees for non-universal code customization and extensions, which started in January 2023. The extra fees are applied if the code implemented by a partner has the following characteristics:
It is not in extensions (the standard application has been customized using C/AL)It is not cloud-optimized (universal)(partner application code is isolated in extensions but compiled using an on-premises target)The following table displays the current prospective timeline (NOTE – fees might be subject to changes):
Recurring fee(s) timeline
Implemented code is not in extensions
Implemented code is not cloud-optimized
2023
$75
$0
2024
$125
$75
2025
$250
$175
2026 onward
TBD
TBD
Table 1.3: Prospective fees timeline
If the economic reason is not enough to change your mind or that of your co-workers, you might think of this initiative in other terms.
The Dynamics 365 Business Central team will introduce more and more features targeted for the online version or natively integrated with it, and Microsoft will continue to invest billions in its cloud platform and services.
Just do the math, then, and decide your mid- to long-term strategy to take the leap to the cloud.
You can read more about the Universal Code initiative in these blog posts:
The Dynamics 365 Business Central Universal Code initiative is live: https://cloudblogs.microsoft.com/dynamics365/it/2022/10/28/the-dynamics-365-business-central-universal-code-initiative-is-live/The “Universal Code Initiative”: https://www.waldo.be/2021/12/23/microsoft-dynamics-365-business-central-universal-code-initiative/Business Central Universal Code initiative: are you really so surprised?: https://demiliani.com/2022/01/12/business-central-universal-code-initiative-are-you-really-so-surprised/And if you are working for a partner, you can also double-check the official documentation in Partner Portal at http://aka.ms/BCUniversalCode.
Now that we know that there is hard work to do to refactor old legacy code into modern universal code, let us have a look now at how the Dynamics 365 Business Central evolution momentum is also driven by the community and its open-source contribution.
To understand the role of open source in Microsoft, we need to consider two things about the environment we are working in.
When implementing any Microsoft product or, effectively, any classic software for whatever purpose, you have official instructions to follow. This is generally true for heavily standardized software deployment types with high repeatability. That said, with any ERP implementation, you should still take care of the following:
Hardware and software requirementsBusiness needs and peculiarities of processes for a specific customerIt is possible that you will need open-source material to meet these requirements.
Luckily, hardware and software requirements are simpler within SaaS compared to an on-premises version. Despite this, the complexity of implementation remains (due to the infinite combination of business needs, processes, and technical solutions).
Another point to keep in mind is that an ERP system is part of a fast evolutionary process due to the high dynamism of the society we live in. Today’s requirements might not be needed tomorrow. Just consider the FAX no. field – is this a needed field anymore? There will surely be fields that are required today that will not be in the future.
Another example of evolution driven by society is the evolution of security protocol and authentication. In a few years, most probably, no one will authenticate for online services using basic authentication such as a user ID and password in isolation. This is driven by our society requiring more and more security measures to protect data. (Note that Dynamics 365 Business Central has deprecated Business Authentication for a while now, in favor of a secure, robust, and worldwide accepted OAuth 2.0 protocol.)
These are just a couple of examples of how dynamic an ERP evolution could be and how complex and diverse its implementation and management are.
It is the society that we are living in that dictates both pace and trends. Whoever is adapting faster to society’s evolution rate and its new requirements will be in a dominant position compared to others.
For this reason, Microsoft increases its resiliency to this evolution by adopting a practical open-source approach. Combined with the normal Microsoft support, partners (and customers) can now contribute to the evolution of ERP in multiple ways. There are preferred communication channels, depending on the area of interest, that can be used for free to communicate with the Dynamics 365 Business Central product group or share questions, concerns, and ideas. The following list outlines the most important channels:
https://aka.ms/bclinks : If you want to discover all the aka.ms links related to Dynamics 365 Business Central and what they are for.https://aka.ms/bcideas: Suggestions for new features and enhancing existing features and capabilities. Directly creates an internal record for Dynamics 365 Business Central’s engineering DevOps. This elevates prioritization and rankings for a specific feature implementation request. You could also comment on and/or vote for existing suggestions.https://github.com/microsoft/ALAppExtensions/issues: Extensibility-related requests. File requests for new integration events, extensibility bugs, conversion from option to enum, function exposure, and scope changes here. If accepted, changes are typically implemented in one or two of the next minor releases or in the next major one.NOTE: This site will transition over time into https://github.com/microsoft/BCApps, which will be the future collector for all open-source changes to the application. Currently it’s hosting the master branch (the next release version: 24) for System Application and side features such as Test Framework and Performance Toolkit.
There might be a vast plethora of blogs or websites where you could find the information that you need to resolve a specific problem or unblock a development task of your current project but the list reported above is a valuable starting point to find out what you need or what you will be in need of from Dynamics 365 Business Central.
And if you do not have the time to browse all these blogs or you’re too lazy for it, no problem. One of the most recognized members of the community, Dmitry Katson, created an Artificial Intelligence (AI) powered search engine that has indexed (almost) all the information related to Dynamics 365 Business Central. Whatever inquiries you might have, just visit https://www.centralq.ai/ and type them in.
Figure 1.6: Using CentralQ for Business Central queries
But this is not enough. A real open-source philosophy implies letting everyone directly contribute to the product development rather than indirectly filing specific requests for review or implementation.
These days, it is possible to directly create a Pull Request (PR) to all Microsoft standard extensions (so-called first-party extensions) except Base Application, using this GitHub repo: https://github.com/microsoft/ALAppExtensions.
NOTE: This site will transition over time into https://github.com/microsoft/BCApps, which will be the future collector for all open-source changes to the application. Currently it’s hosting the master branch (the next release version: 24) for System Application and side features such as Test Framework and Performance Toolkit.
This GitHub repo is divided into modules, which store system applications, and apps, which collect localized applications and all Microsoft feature and utility extensions, such as Universal Print, Email Logging, and Data Search. In the Pull Requests section, you can clearly see the current contribution and Microsoft reviewing and approval activities.
If you have found a bug in the current version or want a specific feature to be enriched or enhanced, you could follow the official documentation to change an existing module or even create a new one: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/devenv-change-a-module.
You could also check out this video from Erik Hougaard (MVP), How to submit a pull request to Microsoft for Business Central: https://www.youtube.com/watch?v=3Q9ikdBYJvQ.
What about Base Application? For several years, it has been kept out of open source for several reasons. With Dynamics 365 Business Central 2022 Wave 2 (version 21.x), it has been finally announced that Base Application will also be open to contributions by selected representatives from the community in this repo: https://github.com/microsoft/BusinessCentralApps.
If you want to know more about how to get involved with Business Central open source, this video from Microsoft representatives, BC TechDays 2022 – Collaborating on Business Central’s open source platform, will provide all the needed insights: https://www.youtube.com/watch?v=X1OyTEpTmfw.
And that’s a checkmate from Microsoft in going all-in with open-source applications. It is trivial to say that the more you contribute, the more chances you will have to also get rewarded by Microsoft as an MVP or simply be recognized as a community influencer.
Packing up all the information, it would be helpful for you to know, as a developer, what will come in the future of Dynamics 365 Business Central and what skills will be needed to tame the beast.
Microsoft Azure and Microsoft 365 are now solid and mature and have considerable Returns On Investment (ROIs) for customers.
They are among the best sources of revenue for Microsoft and are where the most investment and capital are redirected. For the last decade, all Microsoft products have been requested to align with Microsoft’s strategy of increasing the consumption of these two flagship services.
Dynamics 365 Business Central was designed to perfectly fit into Microsoft’s strategy: it brings new potential SMB ERP customers into this offering to accelerate the top-class Microsoft cloud service consumption and its growth.
Dynamics NAV and Dynamics GP existing customers are warmly encouraged by Microsoft to subscribe to Dynamics 365 Business Central SaaS Essential or Premium tier, instead of receiving a typical offering for on-premises deployment or an upgrade renewal.
A huge product transformation to drive online adoption has been announced at the latest Microsoft and non-Microsoft events and, as we have just learned, the Universal Code initiative is a real and tangible demonstration of this long-term strategy.
The following is the current roadmap for the product that was recently presented in one of the latest Directions EMEA (https://directions4partners.com/) events delivered all over the globe.
Figure 1.7: Business Central product roadmap
Based on the current trend and roadmap, we suggest that Dynamics 365 Business Central developers acquire skills related to the following topics:
Visual Studio Code and AL LanguagePowerShellGitGitHub and Azure DevOpsJavaScript and web-based developmentAI and Machine Learning techniquesAzure services for developers (such as Azure Functions and Cognitive Service.)Developers, integrators, and architects should also become familiar with the following:
DockerAzure compute services (such as Azure VMs and Azure Storage)Microsoft 365 services and Dynamics 365DataversePower PlatformIt is highly recommended for partners to subscribe to the Dynamics 365 Business Central Ready to Go program and benefit from its endless and constantly updated learning catalog. You can read more about it at https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/developer/readiness/readiness-ready-to-go?tabs=learning.
Considering the existing customers that still are on-premises with Dynamics NAV and Dynamics GP, the best suggestions we can provide for customer and partner organizations to embrace the Universal Code initiative are as follows:
Move all the existing private IPs outside standard code with event-driven development as much as possible. If this requires new events in the standard application, request them through the appropriate Microsoft channel.Whatever can be isolated into event-driven development can also be packaged as an extension. Move as many private IPs as possible into a refactored universal extension.Refactor all code to make it work seamlessly in the web client and focus all skills on universal code development.Train all your salespeople, installers, developers, functional application experts, and everyone else who’s using or demoing the web client. Live and breathe using Dynamics 365 Business Central modern clients.Collaborate in GitHub and use social media.Stay up to date on X (formerly known as Twitter), LinkedIn, and Yammer (for partners). Take note of your own business process showstopper and share it with the Dynamics 365 Business Central community and development team by actively participating in official and unofficial forums and dedicated product events all around the world.Get used to, or even deeply specialize in, modern Microsoft and non-Microsoft technologies.Last tip: take an official Microsoft certification.
No matter if you are in the Dynamics 365 Business Central business as a developer, installer, sales manager, or whatever role, the milestone exam MB-800: Microsoft Dynamics 365 Business Central Functional Consultant (https://learn.microsoft.com/en-us/certifications/exams/mb-800) should be a must for everyone in your organization.
If you are a developer or a freelancer, you could also think of enlarging your certificate portfolio by taking several fundamentals exams like Azure fundamentals and Power Platform fundamentals (https://learn.microsoft.com/en-us/certifications/browse/?resource_type=certification&type=fundamentals).
These exams will help you and your company grow and be familiar with the latest Microsoft technologies and guarantee a smooth integration with Dynamics 365 Business Central and faster knowledge uptake.
Also, do not forget that a new exam, MB-820, has been finally announced as the associate certification for developers. The Beta exam started in January 2024. This new exam is an Intermediate level exam, at the same level of MB-800 for the Functional Consultant and it is a must for all Dynamics 365 Business Central developers.
We have now completed an overview of what is available in – and what will be in the future of – Dynamics 365 Business Central.
We have focused on Dynamics 365 Business Central by considering it as a product in evolution. This will be beneficial for you when it comes to understanding what the product can offer in terms of localizations, new features, and how it targets the SMB market segment for your projects.
We have covered the Universal Code initiative and how you can contribute to the Dynamics 365 Business Central ecosystem. The important thing is for you to be prepared for what might happen in the future and have the skills you will need in order to evolve together with this fascinating product.
In the next two chapters, we will take our first steps using Visual Studio Code as a development environment and coding with some basic instructions. Spoiler alert: if you are an experienced developer, these next two chapters could be more of a recap or refresher for you. For newer developers, you will learn about some vital fundamentals.
Enjoying this book? Help readers like you by leaving an Amazon review. Scan the QR code below for a 20% discount code.
*Limited Offer
In the previous chapter, we introduced Dynamics 365 Business Central and the amazing momentum that its online version is enjoying.
In this chapter, we will take a close look at the development environment. We will discuss the main shortcuts, tips, and tricks related to Visual Studio Code, the official development platform, and the AL Language extension, the development language extension. The union between Visual Studio Code and AL defines the so-called modern development environment.
AL Language is the official Visual Studio Code extension provided by Microsoft, free of charge, through the online marketplace. AL stands for Application Language, although it’s typically referred to as AL Language. Officially released for the first time back in 2017 to extend what was then called Dynamics 365 for Financials (formerly Project Madeira), it is now a solid, fully fledged development language that extends Dynamics 365 Business Central. It comes equipped with a lot of features that greatly enhance developers’ productivity and coding quality.
