All Episodes

October 28, 2024 • 35 mins

FULL SHOW NOTES
https://www.microsoftinnovationpodcast.com/614

Join us for an insightful conversation with Keith Atherton, a Power Platform Solution Architect from Edinburgh, as he shares his transformative journey from a traditional .NET and C# developer to embracing the world of low-code solutions. Discover how Keith's passion for solving complex problems led him to appreciate the unique capabilities of Microsoft's Power Platform despite initial reservations. Throughout our chat, Keith also opens up about his life beyond coding, revealing his creative side, his love for culinary delights, and the vibrant cultural experiences at the Edinburgh Fringe Festival.

Our discussion takes a deep dive into the challenges and opportunities that come with transitioning from pro-code environments to incorporating the Power Platform into your toolkit. Keith sheds light on the initial skepticism surrounding Power Fx's formula-based approach and how it eventually revealed its potential as a powerful problem-solving tool. We also discuss how the Power Platform integrates with .NET through Dataverse plugins and Azure Functions, providing a flexible environment for developers to navigate enterprise-level implementations while balancing traditional and new technologies.

In the latter part of the episode, we explore the complexities of using FetchXML versus traditional querying methods in Power Automate Cloud Flows and Dataverse. Keith shares insights on the necessity of pro-code development even in a predominantly low-code landscape, highlighting the evolution of Canvas apps as replacements for InfoPath in specific tech stack projects. To wrap up, our returning guest, Business Application MVP Mark, enriches the conversation with his valuable experiences and insights, inviting listeners to contribute guest suggestions and support the show as we continue to explore the fascinating world of business applications.

Microsoft 365 Copilot Adoption is a Microsoft Press book for leaders and consultants. It shows how to identify high-value use cases, set guardrails, enable champions, and measure impact, so Copilot sticks. Practical frameworks, checklists, and metrics you can use this month. Get the book: https://bit.ly/CopilotAdoption

Support the show

If you want to get in touch with me, you can message me here on Linkedin.

Thanks for listening 🚀 - Mark Smith

Mark as Played
Transcript

Episode Transcript

Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Mark Smith (00:01):
Welcome to the Power Platform Show.
Thanks for joining me today.
I hope today's guest inspiresand educates you on the
possibilities of the MicrosoftPower Platform.
Now let's get on with the show.
Today's guest is from Edinburgh, the United Kingdom.

(00:25):
He works at ANS Group as aPower Platform Solution
Architect.
He's a Microsoft MVP forbusiness applications, a
published LinkedIn LearningInstructor, power Platform
Community Super User, publicSpeaker and host of the On Air
in the Cloud podcast.
He's a blogger and a mentor.
So here's a full dance card.

(00:46):
As you can see, he's trainedand experienced in project
management, leading teams,coaching and mentoring and,
above all, he is a NET developer.
You can find links to his bio,social media, et cetera, in the
show notes for this episode.
Keith, welcome to the show.

Keith Atherton (01:00):
Thanks, mark, great to be here.
Good to see you again.

Mark Smith (01:03):
Good to see you again, good to have you on the
show, and this is an awesometopic we're discussing today.
Which is why should developers,net, c Sharp, let's call them a
traditional developer, somebodythat cuts code for a living,

(01:24):
works inside tools like VS Codeand Visual Studio for their job?
Why would they consider thePower Platform as a tool to
build solutions on?
Why did you and we'll unpackwhy did you take that journey of
moving from very much pro-codeto using a platform that allows
you to build a lot of thesolution using low-code?

(01:44):
The constraints, the blessings,the things that one needs to be
aware of if you're going totake that journey.
But before we start food,family and fun what do they mean
to you?

Keith Atherton (01:58):
Yeah, love all of them, Love my food.
It's tough to narrow down whatfood I enjoy the most, but, yeah
, I love mixing all those aswell.
You know, going out with familyenjoying the food Japanese food
is a highlight for me.
There's so many, it's reallywhere to begin.
So, yeah, I love spending timewith family.

(02:18):
I live here in just nearEdinburgh in Scotland, as you
mentioned, with my wife,lorraine, who's from here I'm
not originally.
We had a conversation beforeabout Nottingham, where you
started Certain Things, which ismy hometown.
That's where I'm from.
Ah, nice, yeah.
So, yeah, many moons ago, as wewere talking about there before

(02:39):
the show, about, you know,being in bands, being in audio
design and music and so on.
So, so, yeah, from thereoriginally, I live up here in
Scotland and that is a blessingbecause it's such a beautiful
place to live, gorgeouscountryside, so much to see and
do, so, yeah, that's where I am.
In terms of fun, there's so manythings I enjoy, uh, again,

(02:59):
enjoying the outdoors that we'vegot here, which is amazing.
I often enjoy, uh, trying to becreative and making time to be
creative, importantly as well.
Sometimes that blurs into thecommunity work where I can
crowbar it in.
Yeah, but sometimes it could bepainting or drawing and you
know kind of hands-on, tactile,creative side of things.

(03:20):
In fact, during the pandemic Iwas lucky enough to illustrate a
business book as well.
That's on Amazon so.
So that was taking the hobby toanother level.
It was great fun, loved it.

Mark Smith (03:32):
That's so cool.
It's interesting.
Yeah, I started the podcast inNottingham when I think it was
2017.
Also, no, in two months timeit's a seventh year anniversary
of this podcast, so it's beengoing a while, but in Nottingham
they claim the oldest pub inEngland, right, the one that's
kind of under the castle there.

Keith Atherton (03:50):
Yeah, that's it.
Your trip to Jerusalem rumouredto be the oldest, which, just
as you say, is built into thesandstone, the rock that the
castle sits on top of.
And I'm sure you know thisstory, mark, when you're in
there.
We didn't.
We didn't pre-plan this, we'rejust talking about this, so it's
quite funny.
But one story came to mind isthat when you go in, you've got

(04:11):
all the big wooden beams thathold up all the rock above it
and you can tell the locals todo to the people who are
tourists have you heard thisbefore?
No, no, so the people who go inthere.
When you go in and you seepeople at the bar and they've
got a pint and they've got thebeer mat sitting on top of the
glass yes, because so much ofthe sandstone can drip into the

(04:34):
drink.
Yeah, yeah, yeah, but peoplewho've been there before are
aware of that.
So, yeah, when you walk in andyou see all these beer mats on
top of pint glasses, that's whySee all these beer marts on top
of pine glasses.

Mark Smith (04:44):
Yeah, that's why that's it.
I hadn't observed that, becauseI did go.
I definitely went back then.
But the other Edinburgh, I meanwhat a beautiful city.
The first thing that took methere was the Fringe Festival.
That was the first reason Megand I went there.
And boy doesn't that city cometo life when that festival's on.

Keith Atherton (05:01):
It really does, and it's on this month as well,
it's on right now.

Mark Smith (05:04):
Is that?

Keith Atherton (05:05):
right.
Yeah, it's pretty much all ofAugust, as you say.
You've got all the festivals,you've got the fringe.
There's things like bookfestivals, film festivals, which
is one of my favourites.
It's another part of the funfor me as well.
I do love films and movies aswell, and there's just so much
to see and do.
It's incredible.

(05:25):
You get the military tattoo upat the castle as well.
Yeah, that's right.
The performers from all overthe world.
So, yeah, it's just incredible.
It's such a great place to live.

Mark Smith (05:35):
Yeah, we went back again because it was so good.
In fact, we've been there, Ithink, three times, so we went
back twice for a second FrenchFestival and then we went back
another time.
I mean, it's just so easy tograb an Airbnb, so you even get
to live very authentically inone of the old buildings and
stuff, which is what we did.
So it was a great time.
Definitely loved that city.

(05:55):
So let's talk about what we'retalking about today, which is
tell us a bit about yourdeveloper roots, that you've
done across your career.

Keith Atherton (06:06):
Yeah, absolutely so.
A short bit of background forme was when I went to university
I actually studied physics butas part of that one of the
modules was programming.
It was using C++ and talk aboutgoing at the deep end with the
language.
There's a lot of memorymanagement and lots of deep
concepts with that.

(06:26):
It was quite far removed fromcertain scripting languages you
know, whether that be Python orPower Fx.
So really I kind of startedthat way, took my interest and
really from the get-go I wasworking for consultancies.
My first was one based inLondon, and while I was working
there it was a great place tojoin because they were looking

(06:47):
for people with any kind oftechnical degree and they would
provide training.
So actually the projects wewere on, either the technology
had already been picked or wewere pairing with a bigger
organization a KPMG or aCapgemini or whatever the case
was at the time that had alreadyarchitected and decided the
frameworks or the technologiesand we would get training to

(07:10):
skill up and use those.
So it was a great learningcurve for me, one to be in
professional development.
I had to learn to play catch upwith all these IT computer
science graduates who joined,and I was.
I was back foot so I had toplay catch up.
But there was also that project.
My first was actually Java withOracle, the next was VB6 with

(07:30):
SQL Server and so on and so on.
The tech stacks changed perproject and we would get some
training, either a brief amountof training or time to upskill
and then join the project.
So really that helped me learnfast and adapt.
But over the years it wasreally using the Microsoft
technologies.
That became the common thread.

(07:51):
It became the common theme.
When I changed jobs and I kindof veered towards that one
because they had high marketusage.
It moved from that VB6 worldinto NET, even from version one.
I remember actually having thepreview version on a book of CDs
, you know, for that version one, the beta version, and it was

(08:11):
all about web services.
I remember it's ASPNET webservices and you know what we'd
see as APIs typically today.
So it was learning that fromthe start and keeping NET
throughout the career for almostall of it.
There's another organization Idid join that had their own
low-code system.
This was about 10 years ago butfor the most part it was NET

(08:33):
and surrounding technologies.
So some web frameworks, lots ofWinForms and lots of things
like SQL Server.
So really that's kind of beenthe journey up until maybe the
last three years or so.
I joined another consultancyand that's kind of been the
journey up until maybe the lastyou know three years or so.
I joined another consultancyand that's when, from day one,
they said, okay, could you lookat this thing called power apps?
We've got a customer, they'reusing some legacy I think it was

(08:56):
access or info path apps butthey need to modernize to
something that is still a lowcode, no code option.
They don't need fullnet appsbuilt from the ground up.
Could you upskill in this anduse it?
And that was really how I gotstarted into the low-code side
of things.

Mark Smith (09:12):
Wow, okay, so only three years ago, so very recent.
How was that?
You know, when you asked andit's interesting because you've
had a history of updating ortransferring developer skills to
new languages over time For you, when this came up, what was
that initial feeling aroundusing the tech?

(09:35):
And I'll preface this by Iremember going into a project it
was actually a rescue project.
It would have been 16, 17 yearsago where they had implemented
Dynamics CRM and back in thosedays it was pre-cloud, so all
on-premise, and their NET teamhad looked at it and said how
hard can this be?
It's built on NET, we cantackle it, no problem.

(09:58):
Why it was a rescue project isbecause they ignored the
software development kit and theSDK that was in place and they
did things like SQL injectionsand all sorts of things that
back in the day, those were allabsolute no-nos in the way the
platform was architected andbecause they perceived it as a

(10:23):
NET solution, they thought theycould just apply and hack it to
whatever they wanted, of coursehaving massive implications.
When you took on thistechnology, was that your
similar thought that well, it'sNET, I can do whatever I want
with it.
How was your perception of itand what was that learning
process for you?

Keith Atherton (10:44):
Yeah, that's a great question and it's good to
hear that story as well, becausewhen I first looked into the uh
power apps, I didn't even knowit was development in the
browser.
I knew it was cloud-based.
But I was like, hey, what do Iinstall?
You know, I'm so used to, youknow visual studio code or
visual studio, or even sqlserver management studio.
You know traditional clientinstalls that would put on the

(11:06):
device and get ready to use.
So when it came around to that,I realized, okay, this is a
brand new mindset.
You know, I need to look to see.
Okay, what tools do I need touse?
What can the tools do?
How does it work?
But yeah, initially my gutreaction, my instinct was, okay,
well, hopefully I can just liftthe bonnet.

(11:26):
Uh, you know, lift the hood andstart tinkering around with
with the engine.
You know, I've done that withgame development, I've done that
with line of business apps.
Okay, let's, you know, digunder under the hood, let's
write some custom javascripthere, let's write this there.
So my first thought was that.
And then when I realized it hadits own language I'm talking
about maybe canvas power appsprimarily here.

(11:47):
So that was my naturaltransition, say, from dot net
web apps from the ground up, wowover to something that was a
pixel perfect.
You know, uh, you know blankcanvas.
I can move those controlswherever I want.
I can write the code behindthem and, to be honest, when I
first saw power fx and the excelformula type nature of it, I

(12:09):
did get concerned that thismight be too limiting.
You know this is I've usedc-sharp to a fairly high level I
would say fairly advanced.
You know whether you're usingcertain design patterns,
interfaces, memory management,whatever the case may be be, you
know, I don't know, don't knowat all, no one does.
But I've used it to such alevel that I'm so used to,

(12:31):
almost, like you say, here'ssome clay, I can mold it almost
any way I want.
If I can't, I need to fill thegap in my knowledge and learn
how I can do that.
So when I did see the Power Fxand the relatively short list of
functions and commands possibleto use with it, at first I did
think, wow, this might be a bitlimiting.
But when I took a step back,learned more, I did realize,

(12:55):
okay, there are different waysof tackling it.
When I then took it further tosay okay, I really hit what I
feel is a limit here.
That's when I started to readup on how to use development
tools and extend the platform,and by extend not just dot net,
I might push a few things intoazure, azure functions or
something and offload it thereand do the work there.

(13:16):
Then I can use my c-sharp oranother language with functions
or you know, other approachesare available as well.
But it was really again the moreI uh, the more I learned, the
more I realized, oh, I'm not soconstrained, it maybe can't do
everything I need, but I've nothit anything yet.
Line of business that's held meback.
And so the more I learned, themore I kept digging and digging

(13:38):
and then I enjoyed personally, Ienjoyed that new learning curve
as well.
And it's a bit like this withthose creative things we talked
about in the fun, which is whenyou've got constraints, it's
like, oh, I've got to useproblem solving now.
How can I make it do this witha limited tool set?

Mark Smith (13:53):
so, so that made it more fun for me as well so now,
with your knowledge of things,how does the power platform sit,
integrate with dot net and theecosystems that surround dot net
?

Keith Atherton (14:07):
yeah, that's a great question.
I think one of the primary onesI think of with dot net and
really with the power platform.
I think there are so many otherlanguages you can use to extend
it dot net based and othersprimarily for dot net.
One of the prime candidates Igo for is really dataverse
plugins.
So you know these may beplaying more of a part.

(14:30):
You know taking a step backwith power apps, let's say,
model driven apps.
These are mostly uis autogenerated based off the data
model.
But sometimes you can't tapinto every feature that you need
that you may want to with thecode behind.
So in some of those cases,writing a plugin using c-sharp
can be a great option, andthat's typically at the moment.

(14:50):
You know a way of like an eventdriven action that happens on
the dataverse.
A new account is created, fireoff this piece of C-sharp code
that does this work almost likea trigger on a SQL server
database.
It's there and it'sauto-generated, it's event
driven.
So that's one of the primaryways that works really well.
There are a few other ways.
I think another way as well.

(15:11):
Again, I mentioned AzureFunctions before.
You know that's a way you canoffload processing to an Azure
Function.
If you want something that'sgoing to be scalable, or you
want the C-sharp or thatlanguage to do something a bit
more complex with the logic callother APIs, call other other
functions might have anorchestrator in there, then
they're all you know ways ofcalling that as well, really,

(15:32):
really powerful.
And the great thing withfunctions as well, even though
we're talking about dot net, youcan write it using python or
javascript or java or anotherlanguage as well, so it's kind
of fairly agnostic to an extentas well.
So they're the two kind offields I really think about.
And then we do have otherlanguages like JavaScript and
others, not part of NET, but youcan use those to extend the

(15:55):
Power Platform as well.

Mark Smith (15:57):
Nice.
So, in your opinion, why woulda traditional developer add the
Power Platform to their tool?

Keith Atherton (16:05):
set.
One of the main benefits thatI've seen, as a sometime
business owner and a manager aswell, is really the speed of
development.
It's really something that Ithink when I got over my initial
learning curve of what is this,what can it do, I realized that
you know the drag and drop, thelow code, sometimes no code.

(16:27):
Nature of this means I can spinup something very, very quickly
.
And again, if I'm running abusiness or a business unit and
I'm looking, if I have peopleproficient in NET, low code and
many other areas, if I was goingto write it from the ground up
using code let's say, c, sharp,sql Server for the back end,
maybe a React framework orsomething on the front end for

(16:49):
the web app, I'd be looking atmore sprints.
I really would.
It would take more time, takemore work.
Um, there's pros and cons toboth.
Uh, you know paths for sure,but I think for many line of
business applications, if youwant grids, you want forms, you
want buttons that performactions, you want automation and
things that send emails ordrive efficiencies within an

(17:10):
organization, then really 80, 90, if not 100% can be achieved
with the Power Platform.

Mark Smith (17:16):
In my experience, so what about limitations?
Are there limitations with thePower Platform that developers,
specifically, should be aware ofin their use case scenarios, or
are there really no limitationsbecause you have the full
ability to extend wherever youneed to using traditional means?

Keith Atherton (17:37):
That's a great question, and the reason I say
that is because I think with anystack there are limitations,
and there certainly are with thePower Platform.
I mean, being able to extendand use developer tools is
fantastic, but there are alsolimits.
So I think, in terms of thelimits, some of the issues I've
come across are this was anearly learning experience for me

(17:59):
, which was that I was writing aPower App using Dataverse as
the data platform behind it.
But one issue I did find withthat is Dataverse.
If using relational tables,that side of it, the Power
Platform's using Azure servicesbehind the scenes, it's an
abstraction on top of it, youcan get into those services if

(18:20):
you need.
So Dataverse was great.
You can create tables usingclick and drag.
Create table, add columnFantastic.
But because it was Azure SQLdatabase, I did find that I did
miss some of the fine tuning Icould do with the SQL server.
If I want to place an index ona specific column, create the
phone keys where I need them,create user defined functions.

(18:41):
Taking it to that level issomething that again with the
Dataverse, I'm not able to getto that level, something that
again with the dataverse, I'mnot able to get to that level.
But then the other option, theworkaround may be, instead of
using data versus the dataplatform, considering moving to
azure sql.
Using that connector doesrequire premium, but you can
then reach into that.

(19:03):
So again there is a workaround,but you know there may be limit
.
Oh, now you need licensing.
You know well you would fordataverse anyway.
But if you need licensing, youknow well you would for
dataverse anyway.

Mark Smith (19:10):
But if you already had dataverse, you'd be licensed
for it.

Keith Atherton (19:12):
Yeah, good point .
So I think there can be.
You know, the more learning yougo through and realize where
these limits are.
Dataverse it has a two minutetimeout on operations.
Now, for most you knowtransactional usage, that's
fairly acceptable.
You know you want somethingsub-second or only a few seconds
.
You're probably going to befine, right.
But on the occasion you you'rerunning I don't know something

(19:36):
silly here a year-long report,you know a quarter and financial
something that needs a bit ofgrunt to it.
You might offload that to azurefunctions so you can bypass
that two, two minute timeoutlimit and do the work, then
bring it back.
But then there may be costimplications because it's it's
serverless, it's pay-per-use.
So yeah, there are workarounds,but being aware of them and

(19:57):
knowing well what is the cost ofthat, or the potential forecast
cost of that, is important, andsome of the other costs or tax
might be.
When you extend the powerplatform, you might need to know
about these azure services,like functions.
How do webh power platform?
You might need to know aboutthese Azure services, like
functions.
How do webhooks work?
You might need JavaScript to dosome client-side scripting on a
model-driven app.

(20:17):
Again, for the times when itdoesn't quite do everything out
of the box that you need.
Okay, that's another language Ineed to learn.
Okay, what else?
Oh, there's something calledFetch XML.
Okay, what else?
The list can go on the more youwant to extend it.
So then some people I know havegiven me feedback on training
I've given before which issaying I'm learning so many

(20:38):
languages I'm almost becoming apro dev here, and they've got a
good point.

Mark Smith (20:42):
You mentioned Fetch XML there.
How do you explain that?
Is that something 100% uniqueto the Power Platform?
Is it something that adeveloper coming into it.

Keith Atherton (20:54):
What do they need to know?
Great question, yeah, anothergood one, because it's something
I've only used with a PowerPlatform Fetch XML, the way I
see it.
There's probably a betterexplanation.
It is a way of performing aquery and because I come from
the SQL server world, usingTransact SQL, I almost always
exactly translate that SQL queryand there are tools in the XRM
toolbox and others that do thisas well that translate that

(21:16):
query.
What entity or table you'regoing to, how many records
you're bringing back?
Are you joining to other tablesor entities?
Are you sorting or ordering,doing an order by again speaking
in Transact SQL language ofthat result that gets returned.
So, yeah, you can see inmodel-driven apps within Power
Apps.
It's also really useful forPower Automate Cloud Flows.

(21:38):
So another limitation this willbring us back to with Power
Automate Flows, it might be APIlimits, it might be usage limits
or your paper execution,depending on the licensing, of
which there are many that youmay go through.
If you go to a table with athousand records, but you only
need to run some actions on onlythe 10 active records, fetchxml

(22:01):
is a great way of providingthat query so you can really
target just those records andnow you're only looping around
10.
You're not doing API calls forall thousand records of the
table.
Yeah, I don't know.
That's in a nutshell no, no.

Mark Smith (22:14):
So this is interesting because you know,
I've interviewed a few peoplenow in your similar position and
you're the first one that'sreally giving me a really good
breakdown of the limitations,because I know the limitations
are there, but often people haveworked with the platform so
long that they have kind ofglossed over those.
And my question is why?
Why fetch xml at all?

(22:36):
Why don't?
Why couldn't you do it using,as we say, the traditional ways
of doing the querying?
Why do we need fetch xml in themix?

Keith Atherton (22:46):
you're right, it's almost another addition,
and certainly with PowerAutomate Cloud Flows.
You know and thanks for thecompliment as well, by the way,
I'll take it.
You know, I know we've had someexcellent technical people on
from, you know, raphael to ScottGiroux and many others, but you
know it's an interesting onebecause you can use OData syntax
as well.

(23:06):
There are many ways ofproviding filtering.
Again, it does feel like isthis another bolt on, another
thing to learn?
It certainly does feel that wayfor me at the moment, and I do
get that feedback from, fromothers that I've coached as well
, saying well, I know sql server, can I not?
Just we can't, just yeah, it's,you know.
Unfortunately, you know,another translation there is,

(23:27):
you know, going to a Dataversetable and creating a view, hey,
it's great, you can filter itand do it at a sort but it's
quite limited where when you goand write a SQL query, you can
take it as far as you want.

Mark Smith (23:39):
Typically, I'd be interested in if any of the
guests want to feedback on it.
But I have a feeling from backin the day when Fetch first came
out that I remember the reasonit came about was a security
reason and whether it had to dowith we had this thing called
sandbox environments back at thevery early days of going to
cloud so much more.

(24:00):
And when I say sandbox, it wassandboxing your code in
production.
We're not talking about a devtest type environment, but
specifically around protectingrogue code from damaging other
people in the same clusterwithin azure.

(24:22):
Now I that's you know, reachingback into my memory and I don't
know if I'm absolutely accuratein that.
It'll be interesting to getfeedback, but that's why I think
FetchXML actually exists or inthe mix.
I mean you know.
The person of course to askwould be our Swedish friend
who's the number one XRM toolboxdeveloper, jonas.

(24:46):
He would know why, because'shis, his number one tool is on
fetch xml.
Isn't it within that um toolset?

Keith Atherton (24:56):
I believe it is uh yonas rap.
Um, yeah, that's a good personto ask because, as you say, it
almost translates exactly like atransact sql query for me.
But the way you've explainedthe secure processing almost
like some chips can do thesedays with enclaves and different
ways of working does feel likea way of, as you say, keeping

(25:16):
that in a safe silo, a sandbox.
So yeah, it doesn't reachfurther out.
Yeah, almost like the webservice days, you keep it
encapsulated behind the wall.
You send your request, request,you get your response
interesting.

Mark Smith (25:30):
Okay, I'll have to look into that.
Yeah, I'm not 100, but I just I.
That's.
That's what um pokes out fromthe shadows back there.
Um, how much of your worknowadays involves still using
traditional code in theapplications that you build?
Now, the first example you gave, which was an InfoPath upgrade,

(25:51):
is what I really saw.
Squarely Canvas apps wasdesigned to do, right, an
InfoPath replacement.
Infopath, by nature, wasn't amobile solution.
It was built in a time wherenobody had mobile devices.
By nature, wasn't a mobilesolution.
It was built in a time wherenobody had mobile devices and so
it was end of life on theSharePoint environment.
For that reason, and you know,we saw particularly that Canvas

(26:12):
app model come out into play.
But you've come a long waysince then and I assume that
you've been on some very largeprojects.
And I have a thing that I say Ihave never seen an enterprise
implementation of the PowerPlatform that didn't involve Pro
Code.
It always does.
In my experience, it alwaysneeds some form of Pro Code

(26:36):
development.
What would you say to that?

Keith Atherton (26:38):
Yeah, I completely agree.
I completely agree, and to theextent whether it is 80-20 in
favor of low code, you know, orwhether the lines could be
blurred.
Now, for some of those, I guess, examples, it may be again back
to my early days.
The tech stack has already beenchosen, it's already in SQL

(27:00):
Server or Azure SQL database.
It's already hosted up in thecloud.
Already.
We're using that.
That, compared to, say,dataverse and the storage limits
and the costing of Dataverse toextend those storage limits,
could be a great reason to keepits SQL Server either in Azure
or maybe even on-prem.
Still, I know there are severalcustomers still using on-prem

(27:21):
and it still works great.
You can use an on-prem datagateway, communicate with it and
it works absolutely fine.
I think you mentioned there aswell the other you know pro code
options could be okay.
Well, 90% of these user-facingapps can be done with
model-driven.
Again, that might save a sprintor more when compared to canvas

(27:45):
canvas.
So background there as well,many of us might know that with
canvas being pixel perfect,that's fantastic, but you've got
to build your ownresponsiveness if you really
want that.
Yeah, luckily recently offlineuh, you know, features came in
which made offline capabilitiesmuch easier than the code-based
way we had to do, as of you know, a year ago.

(28:05):
Previously you'd almost have tocode your own within power
effects.
Cache what you want, sync itthe way you need it.
Now you can actually turn it on, create a profile that manages
this.
How often does it keep in sync?
It manages so much more.
But anyway, I'm digressing.
Interesting, you know, you mightchoose, okay, a model, a
model-driven app.
It's responsive, it'saccessible out of the box.

(28:27):
You've saved a bunch of time.
All your apps are going to havea consistent look and feel,
unless you tinker with the UItoo much or create a load of
custom pages.
But again, some of those limits.
With a model-driven app theybring all those benefits.
But the amount of times I'vehad to open up to use javascript

(28:50):
to do client-side scripting oragain create some plugins
because when it gets saved atthe big, powerful server on the
back end, trigger somethingautomatically or do some other
complex logic is very, verycommon.
Now with the canvas you canprobably write much of that in
the power effects yourself.
You have almost full control ofthe code and what the buttons
do, the code behind on those.
But with model-driven it comeswith lots of benefits but
sometimes requires thoseextensibilities as well.

(29:11):
Some trade-offs.

Mark Smith (29:12):
Do you know that we had offline access over 10 years
ago and what we built is andI'm talking so it used SQLite
back in those days on the deviceand so we're talking about
serious offline right.
Serious, I think SQLite did.
Two gigs was its limit.

Keith Atherton (29:32):
Access was as well, that was two gigs for a
time.

Mark Smith (29:37):
That was a serious amount of offline right.
This is much more than cachedoffline.
So, yeah, back in the day daythere used to be a com object
that plugged into Outlook andyou used SQLite and that allowed
you to go online offline andrun the full back then Dynamics
experience in offline mode, andthen it had a bunch of rules

(30:01):
that when you came back online,two people had updated a record
right down to a field level likelast on, last off type thing,
like how that would work.
But it's interesting that it'staken this long for a real
robust offline solution to comeabout again, since that, you
know, com object wasn't the wayto do it anymore.

(30:21):
But yeah, we had a very largeimplementation that involved
road workers going to remotelocations that had no mobile
coverage, nothing, and they hadto collect data around roading
infrastructure like bridge decay, road surface decay, that type
of thing, and we built theentire thing on Dynamics and

(30:43):
they had these tough and tightdevices inside their roadwork
trucks with touchscreens evenback then, and so they would be
able to mark a defect on theroad and be able to draw a
circle and say, let's say thedefect was three meters wide and
select from what type of defect, which would then create,

(31:04):
ultimately, a bill of worksmaterials to come and fix that.
But until they went back to theoffice and got Wi-Fi connection
and re-sync that device, thatwould then update into the
central system and create thework order and fire off all the
rules.
And so, yeah, this was wellover 10 years ago.
That type of functionality wasthere, um, in the platform

(31:27):
that's impressive as well.

Keith Atherton (31:29):
Um, it's funny because I used to work in
construction uh organization andthis was before low code, and I
remember actually building thatfrom the ground up using code
with dot net apps, with sqliteon ruggedized android tablets
yeah, cheaper end becauseaccidents happened, yeah, yeah,
and it performed the same thing.
In fact, when we rolled it out,we didn't have Wi-Fi hotspots

(31:53):
within our workshop, which wasspread across many fields, so we
did the same thing that whenyou get back to the hub, the
sync happens at that point andit was quite interesting to
build it from the ground up.
But to think about the syncing,what design patterns are using
exactly the merge conflicts youjust mentioned is it the last
one wins or do you flag?
It's a merge conflict that youhave to resolve.
There's a lot of problems to besolved, lots of technical

(32:16):
challenges yeah, yeah, yeah,back there.

Mark Smith (32:19):
I think these were hp ruggedized devices.
They're expensive, you know,and like we've got photos there
these guys were, you know, thehivers never used a computer in
their life.
Everything had been done onpaper, and so even the adoption
training for them to all of asudden go to this type of
experience.
Full ArcGIS integration backthen as well, because that was

(32:42):
the detailed mapping technologyyou had to have, but just
phenomenal.
But once again, it was cheaperto build that on the Power
Platform predecessor, which was,if we translated to what we
have today as Dynamics 365,sales is what we used.
We just ripped off, we didn'tneed account, we didn't need
contact, we got rid of all thatand we built all our own tables.

(33:04):
Back then we called thementities and on top of that and
used it.
It was still cheaper thanbuying an Oracle system for that
government agency to buy anoff-the-shelf roading management
system or infrastructure system, because it's more than just
roads.
It was like roads, bridges,culverts, power, any power

(33:26):
lighting, you know, on thenetwork, traffic lights, all
that kind of stuff was all ownedby the roading agency.
So, yeah, asset managementreally at scale and the full
maintenance of it.
Interesting project.
Yeah, keith, it's been greattalking to you.
You've definitely dropped somevery telling insights about the

(33:48):
Power Platform, which is exactlywhat I wanted to get out there,
like kind of lay it bare.
For years, microsoft has usedthis concept of no cliffs, and
it's funny there's no cliffsuntil you absolutely step over
one and then you realize thatthere was a cliff, and now
you've got to backtrack andfigure out how to solve

(34:08):
something, and so that's why Ilike some of these candid
conversations to really, as wewould say, call a spade a spade
and say, hey, there'll bedragons there.
It's the edge of the world orwhat we know, and you need to be
aware of these things, and Ijust think it makes us all
smarter, stronger, better to beable to create great things on

(34:30):
the Power Platform.
So, yeah, thanks for coming onthe show.

Keith Atherton (34:33):
My pleasure.
Thanks for having me back, mark, it's been a lot of fun.

Mark Smith (34:38):
Hey, thanks for listening.
I'm your host businessapplication MVP Mark Smith,
otherwise known as the NZ365 Guy.
If there's a guest you'd liketo see on the show, please
message me on LinkedIn.
If you want to be a supporterof the show, please check out
buymeacoffeecom.
Forward slash NZ365 Guy.
Stay safe out there and shootfor the stars.
Advertise With Us

Popular Podcasts

CrimeLess: Hillbilly Heist

CrimeLess: Hillbilly Heist

It’s 1996 in rural North Carolina, and an oddball crew makes history when they pull off America’s third largest cash heist. But it’s all downhill from there. Join host Johnny Knoxville as he unspools a wild and woolly tale about a group of regular ‘ol folks who risked it all for a chance at a better life. CrimeLess: Hillbilly Heist answers the question: what would you do with 17.3 million dollars? The answer includes diamond rings, mansions, velvet Elvis paintings, plus a run for the border, murder-for-hire-plots, and FBI busts.

Crime Junkie

Crime Junkie

Does hearing about a true crime case always leave you scouring the internet for the truth behind the story? Dive into your next mystery with Crime Junkie. Every Monday, join your host Ashley Flowers as she unravels all the details of infamous and underreported true crime cases with her best friend Brit Prawat. From cold cases to missing persons and heroes in our community who seek justice, Crime Junkie is your destination for theories and stories you won’t hear anywhere else. Whether you're a seasoned true crime enthusiast or new to the genre, you'll find yourself on the edge of your seat awaiting a new episode every Monday. If you can never get enough true crime... Congratulations, you’ve found your people. Follow to join a community of Crime Junkies! Crime Junkie is presented by audiochuck Media Company.

Stuff You Should Know

Stuff You Should Know

If you've ever wanted to know about champagne, satanism, the Stonewall Uprising, chaos theory, LSD, El Nino, true crime and Rosa Parks, then look no further. Josh and Chuck have you covered.

Music, radio and podcasts, all free. Listen online or download the iHeart App.

Connect

© 2025 iHeartMedia, Inc.