Introducing The Shapeshifter

Brendon Colburn
2 min readJul 11, 2022

I’ve been immersing myself in Power Apps Component Framework recently, it’s been a blast. A hackathon I had that I blogged about recently left me wanting to learn more. From that session, I abstracted out what I think is a key building block of a dynamic questionnaire, a polymorphic control. There are tons of definitions on the internet for polymorphism. Within our context, we are talking about a PCF control that renders itself differently based on a specified input parameter.

Why does it matter?

In my eyes, there is no other way to accomplish this without significant pro-code effort. With a pre-built code component that can be used in low-code / no-code Power Apps, The Shapeshifter provides IT with a new path forward. The solution also shows advanced Canvas App capabilities, which can provide people looking to take the plunge into Power Platform with technical proof that there is depth and breadth to our offerings. The PCF part of the solution is also wired up for containerization, so you can show that off in Codespaces or local using Docker if you’re into that sort of thing.

I’m sure there are plenty of other use cases for Shapeshifter outside of dynamic questionnaires because it overcomes a limitation I currently see in the platform; whether you’re talking model driven applications, canvas apps, or even power pages.

What does this look like in practice?

I always like to start off by pointing people to the code so they can draw their own conclusions by diving in, so here’s that: https://github.com/brendon-colburn/shapeshifter

What you’re looking at above is part of the tutorial canvas app that comes with the Shapeshifter solution. You can add or remove dynamic controls in a gallery using event driven logic. Pretty cool.

Closing Thoughts

I was thinking of doing a longer blog post for this, but I ran out of steam. I’m planning on iteratively improving on this and broadening the scope before all is said and done. I have wild ideas of an advanced rules engine powering this called “Rules ++”. I also want to explore surfacing this concept in SharePoint and Teams development to highlight its flexibility (it is a Shapeshifter after all haha). I look forward to hearing what everyone thinks about this latest creative output of mine, and I encourage people to collaborate with me if they are as jazzed about it as I am.

--

--