You all know the designer, right? The tool for developers (aka the “in-client visual designer”) that “provides an easy and convenient way of making immediate adjustments to your design by simply dragging and dropping the components on the page”.
Well .. then you probably know there are things to take into account…
It actually all comes down to what I call “the worst button in NAV ever created in history of mankind”. The “Design” button:
Whoever uses that button, is actually doomed in any kind of scenario. What happens is: you open design mode without any context of “active extension” – which basically means – it will create a new extension. And if you – after designing – save that extension, another invocation of the button will create yet another extension. Extensions after extension .. and your environment gets messier and messier.
Ok – I admit – it would just be a sandbox database (in SaaS, this button is only enabled when you opened a sandbox (but what about OnPrem??)) but still, I don’t see any use case to use this designer other than you would design pages for YOUR extension, meaning you would open the Designer from VSCode by “AL: Publish and open in the designer” (or “F6” if you will):
When you would do that, you ARE actually giving a context to the Designer (being your currently published extension), which means it will save all the changes you would do, into that extension for you to be able to download to your extension again (with F7 (Download Source code)).
Remove the button of evil
So, the Designer is good – the button is “evil” (yeah, probably exaggerated a bit, but you get my point ;-)). Now, on SaaS, you don’t have to worry that much. OnPrem, my recommendation would be that you actively make sure, this button does NOT exist in a live environment.
When I was searching for how to do this, the only thing that I could find was this on Docs:
Now, I knew of the fact we could also hide the “Personalize” button (which is on the same place in the client) by simply edit the navsettings.json. There is actually a very helpful page on Docs that explains what you can configure for your web client: https://docs.microsoft.com/pt-pt/dynamics365/business-central/dev-itpro/administration/configure-web-server . And while I expected the same kind of setting as this personalization, this document doesn’t say anything about how to hide the designer, or any kind of setting in that same file, that handles visibility of that button.
Luckily, I have smart colleagues, who found out that there actually IS as setting, in that navsettings.json, that actually handles this:
One thing though:
By editing the file directly, it would work, but only after some services that would have been restarted (I restarted the entire docker container). But if you would use PowerShell like this:
Set-NAVWebServerInstanceConfiguration -WebServerInstance NAV -KeyName Designer -KeyValue false
It works instantaneously 🙂
Do know though, when you decide to remove this, you can’t open the designer from VSCode either.. .
From our (the programmers) perspective I understand what you are saying.
But I am doing more and more Power BI work with BC users and for them the design button is THE ONLY option to get data out that is not already on the page as is out of the box. They are usually hosted by MS or partner and then they do not have the access and/or money to create new (read organized) queries or pages.
What would you recommend to do in that case?
Simple answer download visual Studio Code create a page Extension and add fields to the layout.
The design function does exactly the same but you do not have Control over the created Code.
Just look at those systems after a few months – look at the extension management page – they possibly create a huge hell (let alone a dependency hell), and if not that, an insane amount of extensions that are being published .. . You might end up with a multitude of page extensions on top of the customer list – I can’t see how this benefits anyone.
The designer is a tool that assists developers, not a tool to be misused by users imho .. so my recommendation would be: learn how to develop, use it from VSCode and you’re good to go.
Why don’t you say what you really mean, instead of hiding by diplomatic phrases? 😎
Btw – I agree 😉
And I was thinking “the worst button in NAV ever created in history of mankind” was already too “undiplomatic” 😉
Don’t get me wrong: your point is valid and I don’t disagree with it as a technical person. And really all this means is that MS should offer an easier (and less “technically reckless” solution).
But I really feel that there is a disconnect between the way you guys talk (MVPs and VS enthusiasts) and MS. MS (at least the way I see it) is pushing downmarket with BC and trying to target people that cannot afford a full “classic” implementation; people that don’t really have the know-how or staff to carry a custom implementation; people that are coming off Excel or QuickBooks; or simply people that are too busy to deal with a fully tailored solution and are OK to settle for the 70% that comes with an out of the box solution.
And your answer is “have the client download VS, learn coding and do it?”. I really don’t know if any of my customers from the last 18 years could do that, let alone the customers I see being sold BC in US.
Cristi, This ‘downgrading’ marketing is exactly the problem. NAV/BC has been a product for the SMB market, used by companies with a couple to hundreds of users.
For years, Microsoft has been marketing NAV/BC as a product for Small companies, while it’s functionality (and complexity) is better of for Middle-sized companies. So, please don’t put the problem at the product and eco-system that has been very succesfull for decades and made the product as it is today. But that’s discussion that shouldn’t been done in this blog post ;).
Well, if the customer want to use the designer, I hope he knows what he’s doing. Many do not – (I think we agree on that) – and that’s partly why I write blogs like this. Many of these small customers though ARE being guided by their partners (like us) and I hope partners, freelancers, … will do all they can to keep them on the right track.
Of course, there are the ones you talk about .. and all I predict is that they create a mess if they don’t be careful. To avoid that mess, the only recommendation was for them to do it decently: with VSCode. My recommendation was merely: if you want to do it, learn how to do it decently, else don’t do it. In my opinion, we are all too much in a “I do because I can, and I don’t care I should” mode, to be honest.
I don’t have a solution in the middle .. if one wants to shit, and don’t know how to wipe his butt, all he’ll end up with, is a dirty butt 😉
Maarten i agree 100% with your statement. And I loved and believed in the ecosystem and loved the product.
I think my comment stemmed from my confusion about people extolling the benefits of VS and all the newfangled technical stuff. The only reason for these new things IS to take this to AppSource and the only reason for AppSource IS to take things downmarket.
I did not and do not like that shift which is why you will never see me wax poetically about it. But if we are still in this world it means selling to MS’s marketing and then I think you need to understand the new market as is.
I think the only reason why they do it, is because they want there product to life longer. It’s a modernization. Someday the old NAV Developers with 20+ Years of experience will retire. Then there will be young developers which know how do develop in a modern, maintainable, reusable, upgradeable way.
These developers won’t use c/al.
Waldo, again maybe EU market is different than US in this aspect but on my end BC online clients will fight over every single hour of billable work. Mostly because their budgets are way smaller than what we used to have with “normal” NAV customers.
So unless the partner (you or I or anyone else) wants to “guide” free of charge, this will be an issue.
What IS free of charge, as you point out, is blogs like yours and in this case, if they do not have the tech knowledge for VS, they should accept the mess for a valid business reason. And take your comments as a suggestion to do it only when they must.
One valid business reason is Power BI which is the one new tech MS came up with that I think is awesome. But of course is the one thing that the NAV/BC team has failed miserably at promoting: from lack of marketing, to poorly designed out of the box BC PBI package to the inexplicable decision of promoting Jet Express instead.
I think there is no point we don’t agree with each other, Cristi :-).
:-). See you at Summit in Orlando?
Directions US.. yep, sure hope so!
Wonderful! Thanks for the tip.
Hello. Great post, thank you.
Is there any way to modify the starting number of the objects that designer creates?
Do you know how the in client designer is designed to create automatically an extension ?
I mean where can i find the source of the function under the save button when i stop the in client designer ?