Beyond the PowerApps Component Framework

By | May 14, 2019

The more I’m looking into the PowerApps Component Framework, the more obvious it becomes that the era of “do-it-all”-ers in Dynamics/PowerApps might be coming to an end.

Although, it’s not just the PCF that’s making me say this.

I turned to Dynamics some time ago since I did not want to stick to pure development – I liked messing with the code every now and then, but I could hardly imagine myself spending whole days coding. That was back in 2011 when this kind of skillset worked great for a Dynamics Consultant since what was missing out of the box I could always extend with Javascript/HTML/Plugins. And I did not have to be a full-stack developer familiar with the latest frameworks, since, really, all I needed was basic javascript skills, some C# development skills, probably SQL… but nothing too advanced.

We can still do it today in the model-driven PowerApps, but, it seems, the world is changing.

It’s been a while since the term Citizen Developer was introduced, and this is really how we call a developer who is, well, not a developer in the regular sense, but who is still doing “development” using more high-level tools:

https://www.mobile-mentor.com/blog/citizen-developer-powerapps/

For example, there can be Flow developers, and there can be Canvas Apps developers. Interestingly, those tools are not that straightforward, so somebody just starting to work with them may need to go over quite a bit of learning.

On the other hand, PowerApps Component Framework hardly belongs to the realm of the Citizen Developer – instead, it’s meant to be utilized by the professional developers:

image

https://docs.microsoft.com/en-us/powerapps/developer/component-framework/overview

And it’s not just wording(although, of course, one might argue that plugins were always meant for the professional developers as well). If you look at the sample code of PCF components, you’ll see something like this:

image

So, unlike with a web resource, there are a few more things to consider:

  • Typescript
  • The framework itself
  • The fact that you need to create HTML elements from code

 

Now, to use typescript, and unless you are familiar with it, you’ll probably need to catch up first, you’ll also need to learn what NodeJs is, what NPM is, how to use them, etc.

Compare that to a classic web resource development where all you need to know is HTML, CSS, and Javascript. Even though I think web resources are not going anywhere yet since things like javascript-based validation/visibility rules/etc do not belong to the PCF, the difference between PCF and Webresources  is that somebody working with the PCF is supposed to be a “professional developer” rather than just an opportunistic consultant utilizing web resources when and if it’s appropriate.

To start with, you may need to have all those tools configured on your laptop to use them (whereas, with the web resources, we could just paste javascript to the editor in Dynamics if we wanted to).

But that’s just one example of where the line between Citizen Developers and Professional Developers is becoming more clear. There are other examples, too:

  • Do you know what CI/CD is and how to set it up?
  • Are you familiar with the Azure DevOps?
  • Do you know how to use Git?
  • Can you use solution packager to parse the solution so you could put solution components in the source control?
  • Are you familiar with PowerShell scripting?
  • Do you know how to write plugins?
  • Are you familiar with the TypeScript? How about Angular? NodeJs?
  • Can you explain what solution layering means and how it works?

 

On any relatively complex implementation those are the skills you may need to have as a model-driven powerapps developer.

Although, as a Citizen Developer, you might not need to even bother to learn those things.

And, as a Functional Consultant, you might need to be aware of what can be done through either sort of development, but you have your own toys to play with – think of all the configuration options, security model, licensing, different first-party applications.

A few years ago Microsoft began to introduce “Code-Less” features such as Business Rules, Microsoft Flow, Canvas Apps… and it almost started to look like the days of real developers in Dynamics were counted.

Then there was OData, WebAPI, Liquid for Dynamics Portals… Now there is PCF which is targeting professional developers from the start. Add plugins to this mix, and, suddenly, the outlook for developers starts looking much better.

However, what it all means is that every “group” is getting their own tools, and, so, they have to spend time learning those tools and frameworks. As that is happening, former Dynamics consultants “with developer skills” may have to finally choose sides and start specializing, since there is only so much one can learn to use efficiently in the everyday work. Personally, I’ll probably try to stick to the “do it all” approach for a little longer, but I’m curious how it’s all going to play out. We’ll see…

 

2 thoughts on “Beyond the PowerApps Component Framework

  1. Bhuvita Sisodiya

    Hi ,

    I m trying to build Pcf component,it is type of grid having text column and slider control having decimal type field.
    So when user move the slider value should update in crm.
    I m trying to use below function on my range click event but this.context.webApi.updateRecord is giving null.
    If you have any idea for this.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *