I'm not sure if there is a better place to ask this...
We are fairly new to developing extensions in Business Central. We have over 20 years experience developing in NAV/BC C/SIDE. We've made great progress and have several extensions built using the number range our company was provided by Microsoft for extension development (14xxxxxx range).
However, we are likely not ready to be able to get them all certified by MS and into the store yet. I know there are many qualifications for this, and we are working towards them. Our plan was to first develop the extensions and use them at a couple clients to work any potential kinks out. One of the clients is an on prem installation, and one is online subscription based. We have been using the subscription client database for dev.
We're looking for some guidance on a few things… if anyone can help point us to where to get answers, or provide them we would be very thankful!
(1) We have been able to deploy an extension in our company object range (14xxxxxx) in the on-prem database via app file without issue, and they seem to be able to use it just fine (they show installed as "Global"). We did not have to give them any license permissions… it seems to just work. Is this correct?
(2) We are also able to deploy the same extension to a cloud sandbox database published as "Dev" from vscode. However, we are unable to deploy it to cloud sandbox by installing the app file, as it says that the object ranges need to be between 50000-50099. Is there no way to deploy an app in our custom range before it is published in the store, for our clients only (as "PTE")? It doesn't seem like we are able to add those object numbers into client licenses. I don't relish the thought of having to maintain two versions, one in 50000 range, and one in our range.
(3) Traditionally with CSIDE dev, we would create our modifications in a copy of the client database on our servers before deploying them to the client's test database. It seems like this is achievable with on prem. However, if we understand correctly, subscription clients only get one sandbox? How can we create an environment to use for development before it is ready to deploy for client testing? Do we need to use Docker for this?
Thank you for any light you can shed on these questions!
0
Answers
For OnPrem it's different, you can still add granules to the customer's license.
so to your questions:
1 - yes correct, your customer must have your granule in their license. I hope they are not using your development license
2 - sandbox tenants are meant to be used for training, testing, and development. This is why you can deploy your app that is under construction to the sandbox. For production tenants, you can't do this, apps must go through AppSource. If you don't want to go to AppSource, you have no choice but to deploy in the 50K range
3 - your choice. You can dev/test on a customer tenant or on a container, or you can have your own sandbox tenant. Each production tenant comes with 3 sandboxes, and you can re-create them from production in a matter of minutes. You will need to have source control in place to make sure you can manage the objects
RIS Plus, LLC
(a) Create your extensions in the 50xxx range and be prepared to move them when you get app store approval. This would essentially mean maintaining two versions of the codebase in different ranges long term, or needing to develop routines to move all the data to the app store range and adjusting licensing when approval is granted. The latter approach also has the complication that table names cannot be shared, so the prefixes would need to be changed between the two versions, in addition to the numbering.
(b) Complete all development and testing, complete all additional requirements for approval, and obtain approval before being able to even start to use your extension in production.
Given that (b) certainly seems to be the desired option for long term sanity, can you recommend a path to help us on our way to trying to get app store approval as quickly as possible?
I know there are lists somewhere of all the requirements... at the time we were looking at them several years ago, many of the requirements seemed daunting... help pages and testing packages being a couple that seemed to be large efforts. Have any of these requirements been relaxed at all, to meet the desire to be able to deploy an extension in an expedient manner?
Thank you so much for taking the time to answer... we are finally at the point where we can get this transition of our code to BC moving, and now of course we need to do so relatively quickly.
Thanks
RIS Plus, LLC