Good afternoon, Nick.
Good evening, George. I'm glad to be back with you. In our last, uh, episode, we left the viewers hanging, or viewers, or listeners hanging a little bit. So we're here to, to make good on our promise of a wishlist.
Yeah, the wishlist of the things we wish that were in Power pages, um, that surprise, surprise, not AI related. Uh, they just features that I think, uh, we could use on real, real projects. Um, sometimes you just slap. The table and you say, Hey, uh, I wish the feature was there. I wish I could do X. Speaking of the table, I've got this beautiful table. You say, hold on. Table goes up, table goes down. Right? Not a big deal. Not a big deal in, its on its own. It's standing desk, right.
What is the big deal? Is that the model I bought has a Linux controller. And what is the big deal about Linux? Controller is the one used by ikea. So, uh, interchangeable with Ikea standing desk, big deal. Now, when something is sold by Ikea, it's sold by millions. That means there are millions people out there who's got this controller, which got Bluetooth, and out of that million, there's one or two nerds who crack it open. And guess what?
There is a public on GitHub, there is a project how you can control your desk. It's written on Python, how you can control your desk from your desk, desktop on your computer, from from your computer. So here's my little pet project. I haven't done it yet. I'll try to do it the next time we meet it. But here's the idea. People complain, oh, I never used this. You know, up and down features. I'm just too bogged down in my work.
Is there, like on wishlist, the feature five minutes before any meeting in my calendar desk goes up and when I hang up, that meeting desk goes down. So I will have to stand through all the meetings.
I see a, uh, power platform connector in your future. Um, yeah,
there's a bit of, uh, trickery involved because that's, um. I can run, um, a web, local web server on my desktop, but I really want to wire it as a, um, you know, iot device, right? So proxy somehow. And yes, if I manage to do that, then yes, there will be power platform connector and then I can control, like everyone goes up. Imagine controlling other people desks. Ooh, that's,
and how, how is your licensing deal with Ikea going? Do you, have you guys decided how split? That's, uh, that's not ikea.
That's these guys who sell controllers to ikea. That's some, yeah. Uh, probably Chinese company. Uh, I dunno. Uh, based on language translation like that probably in China. Um, on the instructions, it's like, yeah, whatever. Um, yeah. But, um, that would be cool controlling someone else's desk. Mm-hmm. Mm-hmm. My mind boggles endless possibilities. Hmm. Bluetooth device. We'll see. But yes. Um, this is my, uh, piece of automation. I wish it was there and it's there.
So let's go ahead and see for what things we think or we wish were in Power pages that are not there. Da da da. You go first.
Okay. And I'm gonna preface, uh, some of mine with some of these I think are, I, I don't understand why they're not there already. It doesn't seem like it's that complicated. Like it seems like all the pieces are there. It would just, you know, take someone in an afternoon to get them in the, in the product. Other ones, I understand they're probably, uh.
Uh, longer in the future, but, um, if anyone kind of follows me on LinkedIn or on X and they, they see any of the memes I do, they'll know that this is a gripe that I probably complain about, uh, a few times a month. And that is an API to clear the cache.
Mm-hmm.
I, I guess I can understand why it's Right. The
name of the podcast
Ex. Yeah, exactly. So I'd like to automate Yes, the refreshing of the cash. Um, I, I just think there are so many use cases, um, where this could be leveraged responsibly. Um, I, the only thing I can think, like, I don't think it would be that hard. The only thing I can think of is, um, obviously caching is important. Um, the platform, the product would just be awful without caching. So my guess is the concern is that people will just go overboard and want data that's.
Always up to the second and just be hitting this thing relentlessly. Um, but I guess if, if we, you know, if you have to sign a, a contract to do good, to get access to this API, I'd be willing to do that because there are just certain use cases where, um, you know, there, there are some workarounds there, there, there's some different ways you can go about it using the web API, um, but just an official way to say, Hey, I know this data has changed. Just, just go, go get the new stuff.
Like you can trust me, go get the new stuff. Um, rather than kind of trying to work out ways around it. What do you think, George? Do you, uh, do I have your signature on my petition?
Oh, yeah. Yeah, absolutely. Um, if I'm responsible, I was thinking that the reason I paused, I was thinking what, what you said about, uh, responsible use. Uh, and I one day, if it's possible to kind of. Govern it a little bit, like introduce, uh, uh, limited use for that API. So you can't call it every five seconds. Like at least if you didn't let it rebuild the cache, then don't call it again and, you know, do some, you know, tuning of, of that. But technically speaking, what, what.
What would be your concern if you were on, on the Implementa, not some, sorry, not implementation team, but the team who's responsible for running, um, for operations team, like keep that staff up and running. What would be your primary concern? Heating Dataverse. Too much.
Um, yeah, I would guess so. Um. The number of ap, the API calls you get to dataverse. Like, uh, I don't think there's too many people, you know, people aren't usually running into that too often, so, you know, the, the load on the web server can't be that much. Like, yeah. I think the caching, um, for, and again, this would be for kind of your own tables, not for the built-in kind of power pages tables, that, that contain the configuration. Um, but yeah. Yeah. If it's API,
it needs to be selective, right? So it need, you need to be able to say, Hey, look, I know for sure someone added a column. Please nuke the cache. Right? That, I guess you can argue that that happened, that should't be, it's a deployment stuff, so you, you shouldn't be, you can cache just because metadata changed you really, you shouldn't change your metadata. Too often Yes. People that these swear. Yeah, exactly.
Uh, but, but even if there was some built in, like if you say execute a power, automate flow or run a workflow on a record, like it should be smart enough to be like, Hey, well I'm probably changing something about this record, so I maybe want the cash in validated here. Now again, you can kind of do that with a web API call, but it just. I wonder, feels like there's some opportunity there. Yeah. I
wonder what, uh, what fidelity would you want on cash in validation? Definitely per table. Uh, then what, do you want more fidelity than that?
No. Like if you look at, because you can, you can get yourself into some interesting pickles with cash because, um, you know, when you do something like an update, when you, when you add a record, it invalidates. Um, the entire cache for that table. But if you just, um, you know, it basically caches at the dataverse query level, so you can still get kind of stale. You, you can get different results for the same table legitimately in the way that the caching is right now.
Um, so, you know, I would say. The ability to say, Hey, this one record's changed. You know, invalidate the cache. And I think that's kind of how the underlying cache invalidation works right now when you, when you make an update via the, a former list or the web API. So I just think there's gotta be a way to say, Hey, I've touched this record, let it do what it's doing now.
But just a way to, to, to, to make a call to the API saying, Hey, let's you know, just pretend that I've updated this record and validate the cache the same way you, you'd do it now. Mm. But just don't make me touch that row just to invalidate the cache for that particular row.
Yeah. The other thing, I wonder if it's, uh, if it caches like, uh, um, FE X ML results and specific FE XML results. Um, yeah. It,
it, it does. Yeah.
Yeah. What, what we do in, in our integration product, uh, with, uh, with WordPress is that we, we do a FET XML, we calculate. Some kind of, uh, hash and then we cash against this hashed value. So if you change fit XML, yes, it immediately kind of goes and tries to find something else. So that solves the problem, like parameter rising. You've got different parameters, you've got different, uh, hash value results, a different um. But it's not a very sophisticated cache. It's like, yeah, whatever.
If fetch x ml looks the same, feels the same, you get the same value. Uh, but we do give API control, um, just because we can. Yeah. So that's a big one. Um, I'll what's, what's number one on your list, George? Uh, oh, number one on my list. I'll go in the order. They, they're not. I, I would struggle to choose one over another. So let's go with the one that I already winched before.
It's um, with all the quick starts, um, that I templates available, the biggest ask I hear is from customers is like, yeah, I've got this site and we moved to Dataverse power apps. So Dynamics 3, 6, 5, fine. And we are willing to consider. Moving to Power Pages. Now what I want is to say to copilot or whoever is listening, here's my existing site, can you please generate the site that at least looks the same? So I don't want meeting place. I don't want school bookings.
I don't want banking, whatever it is, template. I just want the site that looks and feels the same. It's not that difficult. Take CSS, figure out what it is, package it up, make it look the same. I'll fill in the blanks on, not blanks or whatever, I'll figure it out what to do. Um, but just give me some, um, uh, bootstrap equivalent of whatever I'm seeing on the website, you know? So that would be, um, my number one wishlist.
Yeah, that makes a ton of sense. I doesn't seem like they would have to do too much. Special work to make that happen. Um, some of those It's a prompt
engineering.
Yeah.
Yeah. It's really, you need someone who knows their prompting. Someone who in their, you know, use days, perhaps did some website hacking and they understand CSS, uh, HTML and do some prompt engineering. So that doesn't, it sounds like a really good marketing win. Uh, from technology point of view, there's really, um, technology is all there. Uh, from my point of view. Um, just needs to harness it and, um, get the right person to do it. Mm-hmm.
Like the same way, why did we end up with Angular for marketing, for event apps? They probably said, Hey look, we need to do something. Who do we have? We've got these two dudes out of uni. What do they know? They know Angular. Okay. Heck, heck with it. Write something. Do. Two dudes went ahead and wrote Angular and it's not a bad Angular app. I like, I dissected it left and right. Yeah. Solid. Solid Angular app. Why angular? Because we could, because we have the skills.
So just find the right skills here.
Okay.
Yeah. What's
next on your list? Um. So, yeah, the first one, the API, to clear the cache. To me that seems not that complicated. This next one, uh, it's, it is a bigger ask, but, um, part of what we talked about in the last episode with the release wave was the modern lists. Um, I think it's time for modern forms. I think it's time. For, you know, much of the investment that I see Microsoft making in the product is for, whether it's copilot or whether it's, you know, the design studio is for the makers.
I like to see more investment for the end users of Power Pages. The forms are dated, their, I mean, they really haven't changed much since, uh, the old A DX studio days. Um, an upgrade to Bootstrap five isn't gonna change that. Um, so just making the forms out of the box much more modern.
Um, you know, whether that's things like, um, you know, submissions without post backs or more, um, say metadata that you can put on just to make it feel more modern, put a better kind of client, you know, field level validation. Just all these things that we kind of expect out of modern forms these days. Um, I think that's, that would be a worthwhile investment.
I think that would, uh, get a lot more people trying to use the low code capabilities of the platform versus we still see kind of, too many times people just resorting to, to pro code. 'cause it just doesn't, it doesn't give the, the user experience that people are looking for.
Incidentally, my next item is kind of related to that. Because I still don't understand why the only type of forms supported are main forms. Why quick view and quick create forms are not supported. And that baffles me because the XML, the layout, the metadata that describes the form are identical or virtual. Identical with some minor differences from memory. Quick view on Quick create. They do not support JavaScript. Perfect.
How many times do you try to explain to the customer that whatever you wrote for power apps for model driven apps is not gonna work in Power Pages? Time after time, right? This one? Mm-hmm. The lower bar is already set. There is no JavaScript. You cannot wire a JavaScript, so what you see is what you get right. Uh, they have limited number of tabs, which simplifies, they don't support.
I don't believe they support time, view control, so that, again, it's around simplifying things and that kind of works alongside with modern forms. You don't have to create super duper sophisticated forms like effectively replicating MDA, but in the web, that's not the idea. You need a very. Uh, for the lack of better word, sexy looking forms. Simple forms yet robust and that is pleasure to fill in. Even if you're using ai. Remember this AI field assistant, right?
Um, something that pleasure to work with. Just go and take a look at third parties. That do that day in, day out. Like they, they specialize in built-in forms. How good are those forms? Like on mobile device? They take the entire screen and they kind of rotate between the screens. How good is that? Right. It's a continuous form, but it gives you appearance of this navigation screens after screens. It's like, could be, um, one. Control per screen, per mobile device.
Like what is your name, what is your age? And things like that. And people don't mind that. It's just, you know, flicking through the mobile phone. It's not a tedious stuff to do. So, um, yes, piggyback on your modern form requests and I say, why don't you take quick view and quick create and do the modern way. Oh, bonus. Quick view or quick create. I'm not showing up on the form list, so no users will ever see them.
I, I couldn't agree more. I, I don't, all I can guess is that 15 years ago when a DX studio was building it, someone said, oh, let's just, we'll just stick with main forms for now, and it hasn't got another minute there. We'll do the hazard tomorrow. Yeah, yeah,
yeah. And tomorrow never. Never came. What's next on your list? Okay,
so well, to pile onto the forms, um, let's talk about multi step forms. Yeah. So, um, and this has been, you know, definitely in the top, you know, top handful of, of requested features since the day they were invented. Um, and that is, so with a multi-step form AKA advanced forms AKA. Web forms, whatever you wanna call them, with a multi-step form. The ability to navigate through the steps in the list by clicking on the kind of the progress bar along the top.
Um, the whole point of a multi-step form is that it's a wizard that you can step through. Um, but the only way that we can navigate between the steps are next and previous buttons. There's no opportunity to skip ahead and, or, or, or jump back a couple of steps now. Knowing the architecture under the hood, I, I completely understand how this is not as simple as, you know, people think, well, why isn't it just a, you know, you click on the link and like it takes you back to that page.
Well, when you have conditional steps, it's not so obvious as to what, you know, what was three steps ago. Um, so I understand why it's difficult, but still, I think even if it was restricted to simple cases where it's like, Hey, we've got five steps. You know, even things like maybe you can't jump ahead because you know something might be required before you can get to step four. Maybe you need to create something on step three.
But at least the ability to jump back to a previous step, which is no different than just clicking back, back, back, that's supported. So even, you know, a baby step to allow that would be, I think, very much appreciated. And, you know, if there were some things such as, you know, if you know that it's just edit steps on the same table going forward, allow, allow you to kind of jump ahead, uh, in certain cases as well. So, look, you can
know, you say the conditions could make it difficult, right? But I see time after time again. I see, uh, a lot of multi-step forms that are multi-step forms only for the one and one reason only. Too much information, simplicity, saving work in progress. Again, it's like with your clear cache, API, pink is swear. My form has no conditional input. Mm-hmm. It's just multi-step. Each step is a progress.
That needs to be saved, optionally, or not optionally, needs to be saved with the user, uh, being able to resume at that step or any of the previous steps. Right? Filling in, like, you know, I. Uh, need your passport details, need this, need that need, your social security, whatever we don't have in Australia. Social security, we do have social security. We don't have social security numbers. Um, we have very good social security, uh, reasonable.
Um, so if I have seven steps and I say, Hey, look, any of these steps, just because life is complex, there's a lot of data, right? So save button. And I should be able to jump between step number two and step number six, just because I feel like it, right? If I miss something, tell me I missed something. Otherwise, just why not? Uh oh, I forgot my passport has expired. So let me go to step number two and put, you know, correct details. And then go back to step number six.
So it's like, again, simplify the case, which is 80%. So. Okay. Mm-hmm. Um, what's, what do you got
for us next, George? Oh,
I miss front end editor.
Oh, classic. I, I still remember, you know, at a DX studio when that that front end editor was released and it was, it blew our minds that you could be editing a site live right on the site itself.
And you know, the best part of that. That there was a special privilege to do front side editing. You didn't need to be admin.
Well, that does kind of tie into mine and, and I, I basically have the same wish because a content editor that doesn't require someone to be a power platform, you know, administrator, system admin in that environment, it, it just requires too much power to, for someone to. To manage content on a Power Page's website. You know, sometimes we see the platform marketed as a content management system.
No good content management system requires you to be an administrator to change a word on the homepage. Um, so I agree. Um, the front side editor was a, was the answer for that for many, many years. Um, and even, even today, we're working on a project to migrate a client from an old. You know, an old portal into a new one.
And, uh, they're quite disappointed to, to find out about the death of the front side editor and that it just isn't practical for them to, uh, to give some people just some basic editing access. Um,
wouldn't you want, um, in situations like this where it's really critical, I suppose you could build a walk around like a separate table that mm-hmm. Custom table that contains the. Essential content that you want to, or you frontend, uh, uh, your content snippet table with a, you know, canvas editor or something like this. Uh, and we've
unfortunately done it. The CMS on top of a CMS, it, it seems wrong, but it it has happened. Yeah. Yeah, yeah.
And, and then you basically surface from that table, you surface the data and
Yeah. Um.
Wow.
Yeah. Yeah. We built entire, like you basically create brand new tables of content, goes in there when it gets approved, and then you can copy it into the right place. Um, but it doesn't seem like that's something someone should have to build into a CMS
that's actually taps right into underused features that, uh, we actually thinking of talking the next time. This, uh, uh, one, i, I just give you listeners. All three of them sneak peek and, um, that, uh, uh, the feature where you can invent your own languages, um, for the website and use them to, to your, uh, as your development languages. Oh. I think, I think I remember
that one. Yeah, that was a good one. And I used it. Was that a tip of the day at some point, way back? Oh yeah, it was, and I did
a video on that. It was, I think video was a bit too rough around the edges. I'm not good at video editing, but I think I might just resurrect it and do it again because such a cool thing. Uh, people complain about lack of, uh, you know, um, that actually brings item that I think I missed on my. List is a proper publishing cycle. How difficult, you mean
draft and published isn't, isn't enough for you, George?
It's no draft and publish. Yeah. Uh, no. I, I, I always see all of them, so I can't, I can't decide which one to pick, so, um. There's no history, there's no other changes, there's no approval. I mean, not surely if you put like a two or three smart devs on it, surely they can figure it out in no time. Right. How to put things into place that allows you proper publishing cycle with approvals and stuff. Mm-hmm. Preview approvals. Yeah. Well, what's, uh, what's next on your list?
I've got one more thing on my list here. Um, and I, I'm gonna put this in the, in the category of. It seems like this would, would take someone in an afternoon, but that is support for power automate within forms and lists. We've got power automate through the the API mm, but in the same places where classic workflows are supported. So basically running an on demand, uh, classic workflow. Via list or on a form, why can't that execute a power automate flow?
We've already got the trigger in place to do it through the web. API
Past parameters? Yeah,
yeah,
yeah. Wire up. Yeah. I
don't under, yeah, I don't understand. And in fact, um, shameless plug, I, I wrote the JavaScript to do it in a recent blog post. Nice. It wasn't that complicated. Um, basically just adds an extra action button. To the, uh, to the list and calls the power automate API. Um, but I'm curious as to what the, what the holdup is on that.
If there is some sort of, uh, I know sometimes with the, with Power bi it can be kind of permissions 'cause you don't, you know, how do you validate that it's on the right table? And, but I mean, we've got it for, we've got it for, for classic workflows. So with power automate flows, just trust that I'm gonna set it up and I'm gonna point it and. Don't worry about the permission, just, you know, let me do it. So that one I think is, uh, a quick win. That should be, uh,
I think that should be near the top of the list. The last time I heard, don't, don't worry about permissions. Yeah. That 20 million records were leaked, so. Well, yeah, we haven't
even talked about the multiple hacks and bugs and stuff that have happened in the last year or so since, uh, oh, that, uh, sounds
like an episode. Um, yeah. Uh, I've got last item. I mentioned it before. My last item is, it's a long stretch. This one. I appreciate that. It may never happen. Uh, but, uh, we've been. Boiling ourselves to death in Bootstrap World for years and years and years. And we kind of missed the fact that, uh, there are other frameworks out there, uh, that are at least as popular as Bootstrap. And over the years, they became very popular. I'm talking about like Tailwind CSS Foundation.
Booma Booma is specifically a very tight, very tiny, small, very effective. So there's a lot of. Uh, I call it like loosely, it's not just CSS, but the CSS plus JavaScript. So it's like layout frameworks. Uh, there's a lot of frameworks out there. Um, if we could somehow make Power Pages agnostic, that would be a huge step forward and would make more appealing to my grades to power pages because if I have something, um, in Tailwind CSS and I want to move to Power Pages.
The, the last thing I want to do is, uh, to figure out how to move from Tailwind to Bootstrap.
So I think you're just getting greedy, George. We would, we were, we've been asking for Bootstrap five for so many years, and now that we have it now, you just want more and more and more. Yeah. Wow. Aren't we all? Aren't we
all greedy and greedy? So on that greedy note, I think it's time to wrap up and the next time we talk about, not a wishlist, but just the opposite, the list of things that are there, but nobody, oh, very few people use them or not aware of their existence. That's, so that's gonna be, that should be a fun one. I'm looking forward to that, George. That's gonna be a fun one. So until next time, thank you very much and stay safe. All right, see you all next time.