What’s the Business Central Universal Code Initiative?
For a while now, Microsoft has been emphasizing the move to the Cloud. We’ve had their ‘Cloud-first strategy’ and then more recently, the ‘Business Central Publisher Program’ targeting ISVs to convince and even force them to adopt the ‘Cloud-first strategy’. Microsoft forces ISVs to put their solutions on AppSource, even if those ISVs are only serving on-premises customers right now. They’ve even gone so far as to announce possible fees in the future if you won’t adopt the Cloud-first strategy. And now, with the Business Central Universal Code initiative, they are targeting everyone to adopt this strategy.
Basically, with this new initiative, selling extensions not targeted for online use to new Business Central on-premises customers could require you to license two additional modules:
- Module “Implemented code is not in extensions”
When the Microsoft Business Central base application is modified, customers will need to license this module.
- Module “Implemented code is not cloud-optimized”
When code is developed in extensions, but they are not cloud-optimized, customers will need to license this module
The cost of these modules (read: fees) will start at $0 per full user (both Essentials and Premium) per year and will increase over time. Here is the timeline Microsoft is currently aiming for.
And what about those increasing fees?
|Recurring fee(s) Timeline
||Implemented code is not in extensions
||Implemented code is not cloud-optimized
Note: Customers who licensed Dynamics NAV or Dynamics 365 Business Central on-premises before April 1, 2022 will not be required to license the non-Universal Code modules in their current configuration. They can add, remove users and first- and third-party functionality without the need to license previous mentioned new modules.
More information about Business Central Universal Code
What’s Microsoft’s Goal?
To put it very simply, Microsoft would like to create a Business Central SaaS world where every (potential) customer can get any (ISV) solution they need to be able to run their organization on Business Central SaaS. Therefore, Microsoft wants you to create solutions that will work in Business Central SaaS. It’s the future for Microsoft Partners and customers in the Dynamics 365 (Business Central) community, and Microsoft wants to see everyone collaborating on this. Microsoft tries to motivate us by charging fees to those who do not cooperate.
The benefits of the Universal Code initiative, according to Microsoft:
- Universal Code can be implemented everywhere, in Business Central online, in on-premises or Partner-hosted environments.
- By listing your Universal Code on Microsoft AppSource, you extend your sales force, reach more customers, and connect directly with decision-makers.
- By bundling your connected Microsoft cloud services with Universal Code, you generate customer stickiness.
- Universal Code frees up capacity to improve our mutual offerings and we will be able to serve more customers.
Let’s Get Technical about Universal Code
From Q4 2022 onwards, technical enforcement will be introduced in Business Central so that only ‘Universal Code’ is allowed as additional code in customer environments. You need to move to full extensions only, meaning no more code customizations in Base App. That means in your app.json you should use: “target” : “Cloud”, so your code will work both in SaaS and in on-premises environments.
To make your solutions compatible with Business Central SaaS you need to meet the requirements of SaaS, such as:
- No usage of .Net Interop (please think about Azure Functions)
- No file system (please think about Azure Blob Storage, Cosmos etc.)
- No direct access to SQL
- Web client only
- No Base App Source Code modifications
- Lack of events
This means you not only have to think about moving your code to AL, but also about how to overcome the limitations or requirements of Business Central SaaS. You really need to think outside the box and see the opportunity offered by the whole Microsoft Platform instead of just focusing on the Business Central app itself.
You really need to have a look at Azure (Functions, Storage, SQL, Apps, etc.) which offers multiple solutions in the stack to help you meet the requirements of Business Central SaaS. And yes, that requires other skills you probably don’t have in your organization yet.
Conclusion, Impact and Calls to Action
So, are you shocked, or do you need to make use of this initiative? Let’s hope not, because that would mean you have missed all the Microsoft news in the last 3 or 4 years.
Microsoft has shared their vision for the direction of Business Central SaaS. It should be the easiest-to-use business application suite, delightful, efficient, “video-game” fast, powerful, simple to discover and quick to onboard. All of this should be available for every (potential) Business Central customer, and they want you to collaborate on that by making your solutions available for SaaS (too).
Hopefully you are already there, or at least almost there, but if not, please rethink your organization’s approach or even the right to exist in the next few years. If you really would like to embrace the cloud you need to think outside the ERP box. It’s not a single solution, but just one part of the platform you offer to your customers.
- Rethink your solution: Get rid of legacy customizations that are included in Business Central nowadays. Think about Buy or Build. If something already exists on AppSource, why are you going to invest in creating a similar app?
- Embrace Azure: Have a look at your solutions through the eyes of an Azure Solutions Architect. Train your team in Azure (Blob, SQL, Logic Apps, Functions and Cosmos to start with).
- Pick your battles: Use Horizontal ISV Solutions. Don’t develop something which already exists. Team up with other Partners. Outsource development and maintenance of your apps.
- Search for Value: Only invest in solutions where you are really adding value to Business Central and your vertical. Have a look at the QBS Marketplace. Tell your PSM that you would like to have a chat with one of our Architects.
I would like to close with a quote of Marije Brummel (Azure Solutions Architect);
“No one needs to be left behind!”