Back in March, I happened to become the new owner of 3 web sites where everyone can join a fitness challenge, set a goal for the month, and get a medal upon completion of the challenge:
Pedal For A Medal, Swim The Distance, Run Challenges
This gave me a somewhat new perspective on the Power Platform, since, of course, what else would I use there on the backend side if not the Power Platform?
Aside from the Power Platform, I had to get somewhat familiar with NodeJS, PHP, MySQL, docker, and don’t even ask about all the stuff I had to learn on the business side
That said, I think I’m only starting to get out of the woods (learning NodeJS alone was quite a challenge), but, then, one of the ideas I’ve been toying with for all this time is whether I can make this more efficient by starting to use Power Platform for some back-end work.
And this is exactly what I wanted to write about below.
On the high level, here is how it goes:
1. First party apps are packed with features, but they’d be underutilized for their price.
And, yet, I did need sales, service, and a bit of marketing to be in my solution. So I went with a custom solution – more on that later.
2. Model-Driven approach still rules in terms of development speed.
With 20+ tables in the solution, there is no way a canvas app can beat model-driven in terms of development speed.
3. Flows are great for very targeted tasks, but they become messy once the logic gets complicated
Every time I tried using flows, it seems there is a limit to how complex a flow can be. It’s not, necessarily, a technical limit (although, there are technical limitations there, too), but it definitely has something to do with my ability to understand complex flows easily. As the flows keep growing, they become more and more difficult to understand. And splitting them into separate subflows will likely slow you down quite a bit.
4. Be it “citizen development” or “professional development”, the actual development still takes time. The idea of business users making their own applications is great, but I’d argue that pro-dev or pro-“citizen devs” can do the same job much faster, and, then, it becomes a question of what’s more important: time or money. One reason I was able to pull it off on this project eventually is that I could do development myself.
5. Azure Functions, though they are almost never used on my bigger Power Platform projects, were a savior. Why? Because of #2 – Flows get messy quickly, and the amount of time I was able to save myself by not having to deal with the complex logic in the Flow designer is huge. I’d love to start using more of Azure Functions on my other projects, since I have a feeling the results are going to be comparable.
6. Canvas Apps – they are tools for very specific jobs (unlike the model-driven apps, which provide “broad” coverage right away)
7. Power Apps Portals / Pages – licensing is just way too expensive except for very specific scenarios
8. PCF – that’s time-consuming fine tuning, so, on the smaller projects, it’s hard to justify
I guess with the PCF-s, you need to have a relatively large user base to see proper ROI
9. Basic email integration is great, but it’s not enough
I had to have some kind of replacement for MailChimp, and, yet, Dynamics Marketing was way too expensive for my purposes. Have you ever tried sending an email notification to 3000+ recipients from Dynamics? Personally, I had no idea of all the spam policies embedded into Exchange. It’s still doable to send those emails, it just had to be done a little differently. I’ll talk about this, too.