Mastering Microsoft Dynamics 365 Business Central - Stefano Demiliani - E-Book

Mastering Microsoft Dynamics 365 Business Central E-Book

Stefano Demiliani

0,0
35,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

EPUB
MOBI

Seitenzahl: 694

Veröffentlichungsjahr: 2024

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



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

Contributors

About the authors

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.

About the reviewers

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.

Learn more on Discord

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

Contents

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

Landmarks

Cover

Index

Preface

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.

Who this book is for

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.

What this book covers

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 get the most out of this book

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.

Download the example code files

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!

Download the color images

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.

Conventions used

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.

Get in touch

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.

Share your thoughts

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.

Download a free PDF copy of this book

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 below

https://packt.link/free-ebook/9781837630646

Submit your proof of purchaseThat’s it! We’ll send your free PDF and other benefits to your email directly

1

Microsoft Dynamics 365 Business Central’s Online Momentum

Microsoft 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.

Dynamics 365 Business Central’s evolution

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 apps

And 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 Universal Code initiative

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.

The role of open source and social networks

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 customer

It 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.

https://github.com/microsoft/al/issues: Bugs found in the AL extension for Visual Studio Code. In accordance to with its README file, it should be strictly used to report bugs in the insider or beta version (internally at Microsoft called Master or vNext). For errors or inconsistencies in versions in mainstream support, the typical Microsoft support channel through CSP partners must be used.https://learn.microsoft.com/en-us/collaborate/: Bugs found in application or platform preview versions. Collaborate is restricted and accessible only for Independent Software Vendor (ISV) or Value Added Resellers (VAR) partners.https://www.yammer.com/dynamicsnavdev: Direct discussions with the product group and other partners. Registration to participate is restricted and needs to be internally approved by Microsoft. It is divided into different groups such as announcements, Power Platform, AppSource, Development, etc.https://twitter.com/search?q=bcalhelp&src=typed_query: To stay up to date with development-based (and non-development-based) requests, questions, and polls. Using #Bcalhelp, you can ask immediate questions and get an answer quite quickly, or you can use X (formerly known as Twitter) as a networking channel. Also, #Msdyn365bc is another favorite tag to follow or post.https://community.dynamics.com/forums/thread/?partialUrl=business: The official Dynamics 365 Business Central Community. It could be considered as the Stack Overflow for Dynamics 365 Business Central where everyone can post questions, answers, or create useful blogs. The community is moderated directly by Microsoft, and you might find useful tips, tricks, and answers from certified Most Valuable Professionals (MVPs).

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.

The future perspective

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 Platform

It 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.

Summary

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.

Leave a review!

Enjoying this book? Help readers like you by leaving an Amazon review. Scan the QR code below for a 20% discount code.

*Limited Offer

2

Mastering a Modern Development Environment

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.