Maybe I’ve missed some announcements, and maybe others also blogged about this and I totally missed it. But so far I have not seen this message: with Dynamics 365 Business Central it is possible to customize tenants to individual needs.
What does that mean?
That means that you can create an extension for a single Dynamics 365 Business Central tenant which can be deployed directly, without going through AppSource.
Why would Microsoft enable this?
This is to enable the partner channel to deliver customizations for Dynamics 365 Business Central that fit customer needs. In fact, this is placing the end user in the center, because it is possible to create bespoke customizations on Business Central. It even allows the end-user to create tenant customizations themselves because you don’t need a development license at all!
Having said that, along with the positive aspects, we have to remember the flip side of the coin.
First of all, it is all about Extensions, AL code and VS Code. Which means that with Business Central we cannot do exactly the same as we can with Dynamics NAV on-prem.
Is that a problem?
I could easily come up with more than a handful scenario’s that could only be solved by modifying source code. We are kind of spoiled by NAV and C/SIDE, aren’t we? But that on itself does not prove the approach of Dynamics 365 Business Central wrong. It just proves that it is a platform with different possibilities. With pros and cons. You have to make choices like: do I accept less or less optimal functionality, compared to what I could do with code customizations, can I still run my business with that? Or should I accept the costs of code customizations (don’t forget the hidden costs!) and stick to on-prem deployment for the moment?
By the way, I don’t want to say that Dynamics 365 Business Central is less optimal compared to on-prem deployment. From my experience, I can tell you that setting up the full Dynamics 365 experience like integration with Office 365 or PowerBI in an on-prem scenario is not that simple and straightforward. Want I want to say is that you have to make a choice what is more important: get the full experience of an online solution and accept limited customization possibilities or get the full flexibility of an on-prem deployment but accept the complexity and the costs.
Secondly, although it would be technically possible for end-users to create tenant extensions themselves, I would really recommend to handle this with care. To create extensions for Dynamics 365 Business Central you need to have in-depth knowledge of the architecture of the application. You don’t try to tune the engine of your car without proper knowledge, don’t you? So don’t customize the software solution you run your business with without exactly knowing what you do! The possibility to adjust Dynamics 365 Business Central to individual needs of customers is meant to be used by Dynamics 365 Resellers in the first place.
More information on customizing tenants can be found here.
Some important notes about developing and deploying a tenant customization.
You should develop with VS Code against a Dynamics 365 Business Central sandbox or using a Docker container. With a Docker container you will also have the possibility to develop for the next version.
Make sure to set the correct number range in your app.json and to apply to correct code analyzers. When you develop a tenant customization, set the number range to 50000-99999 and use the PerTenantExtensionCop code analyzer. When you develop an app for AppSource, then set the number range to the range you got assigned. And then you should use the AppSourceCop code analyzer. Look here for more info.
Deploying the tenant customization is done through the Extension Management page (no PowerShell needed!). You can just upload the extension package file. During this process, you will have the possibility to deploy for the current version or for the next version. More information about this can be found here.
Here are some screenshots of the upload extension wizard:
Who says that Dynamics 365 Business Central is a closed application? It’s rather the opposite!