This article was triggered by a discussion on Yammer yesterday that I felt went a bit sideways.
Business Central is a first class cloud citizen and it beats born in the cloud solutions easily but fact remains that it’s based on Navision, an ERP solution with a 30-some year legacy.
Part of that legacy is a requirement for unique names in the objects, also in the cloud.
Microsoft is working hard to remove this requirement hence it’s a temporary fix but the result is that every app on AppSource needs a three letter prefix or suffix.
You can register your TLA with Microsoft and when this is done nobody else can use it.
With Per-Tenant extensions you don’t need prefixing and I would actually recommend against it since there may be a fair change you’ll use one that is used by one of the apps.
At ForNAV I am primary responsible for the App we have on AppSource and we Prefix everything with ForNAV, hence we reserved “FOR” as a prefix.
I am probably a little autistic and I like stuff that looks clean, so my C/Side looks like this:
Had I suffixed everything it would have been so ugly to look at.
What about Intellisense?
If you watch my YouTube video’s or if you attended one of my classes you’ll have heard me say I recommend suffixing so this sticks into peoples heads.
However this is on a totally different topic. This recommendation is for people who are so stubborn that they want to cling on to Hungarian notation. This will affect Intellisense.
With an AppSource solution I would recommend (and use this myself) to leave our your Registered TLA of your variables all together.
Here is an example:
As a sidenote, Intellisense in Visual Studio Code works smarter than just the first characters, it would actually do a smart search and also suggest results that contain the characters even with small typos. It’s one of the things that make VSCode better than C/Side. (One of the few things though 😊).
Actually i think we should use prefix for per tenant apps, just not your appsource prefix.
What i do is use my registered prefix with microsoft, and append a L (for local).
The chances that, that would cause issues is minimal, rather than hitting a ms refactor name.
Just my 2 cent.
LikeLiked by 2 people
Using the one TLA prefix/suffix is a solution when you have one app, when you have multiple and when you work at a partner trying to reuse custom apps they haven’t decided to put in AppSource its important. Adding an additional three letters gives you 46,656 extensions before you run out of possibilities.
LikeLiked by 1 person