It seems clear to me from listening to people on social media, comments on my posts, and generally having an ear to the ground, that too many people, including many who should not be, are still confused about PowerApps… and wouldn’t they be?
A Quick Quiz. What is a PowerApp?
- A Mobile Application you built on top of SharePoint
- A Mobile Application you built on top of the common data service
- A Mobile Application you built on top of Dynamics 365
- A Custom Application you built in Dynamics 365
- A Custom Application you built on the Common Data Service
- A Custom Application you embedded into a Dynamics 365 Form
- Something Else
If you answered “all of the above”, you get a gold star, but you’re no closer to clarity.
There are three primary camps for PowerApps as I see it. There are campers that come from the productivity side of the lake, where Office 365 and SharePoint live. We also have campers from the Dynamics 365 side of the lake, busily extending the Dynamics 365 applications with their own canvas and model-driven apps. Lastly, we have the Platform side of this apparently three-sided lake, using both canvas and model-driven paths to build apps from scratch on CDS. While these campers can hear the sounds of other campers across the lake, they seem to have little understanding of what the other campers are doing over there, even though they are each called “Camp PowerApp”. I want to go a little deeper into the two of these camps that are part of Business Applications that I am familiar with. Someone else can speak to those productivity campers.
A Custom Application
I think the biggest confusion, for those of us in one or both of the Business Applications camps, are the distinction between items 4 and 5 from the quiz. “Building custom applications in Dynamics 365” vs. “Building custom applications directly on the Common Data Service”. But Steve, aren’t those both on CDS? Yes they are, but they got there via two distinct pathways, from opposite sides of the lake. They are not the same thing and different rules and licenses apply to each.
Dynamics 365 Campers
Let’s face it, Model-Driven PowerApps are just XrM renamed. Everything you ever did with XrM in the past is now called PowerApps. Along the way a few more things happened, like the separation of the first-party apps from each other, and the introduction of the ability to make new role specific “PowerApps” by mashing up parts of the other first-party apps into your own concoction. Dynamics 365 brings all of the power and advanced capabilities you could want, including A.I., MR, and all the other acronyms. This is the deep end of the pool!
The separation of the Apps from the underlying platform was of less importance to this camp, but actually spawned a whole new camp.
These campers could care less about Dynamics 365. They are building their own custom apps directly on the same platform that sits under Dynamics 365. Are they masochists or anarchists? I guess a little of both. The “Platform” is actually the old XrM framework sitting on top of a database that is now called the Common Data Service (CDS). It is but a hollow shell of Dynamics 365, containing very little in the way of usable items, yet everything that is required to build as powerful an application as Dynamics 365. This is the deep end of the pool.
If you were reading/listening closely, you heard me refer to both of these camps as the “Deep ends of the Pool”. Extending the complex out-of-the-box functionality in the first-party apps requires significant skill and knowledge. But building functional, powerful and comprehensive applications on the platform also requires significant skill and knowledge. The shallow water in the middle is where “Citizen Developers” swim, creating their cute little widgets.
When it comes to the rules, there is clear separation, but for many it still seems fuzzy. Some common examples:
“You can’t use a Restricted Entity in a PowerApp!” This is incorrect, a clearer way to phrase this would be “If you are building a PowerApp on top of Dynamics 365, and you include in your PowerApp a restricted entity (for example the Incident entity), the user of your PowerApp will require a license that includes that entity (i.e Dynamics 365 for Customer Service).” This does not mean that you cannot build the app! Also, Restricted Entities have nothing to do with Platform Campers. There are no restricted entities in CDS without Dynamics 365.
Similarly, with Team Member and it’s restrictions. Team Member licenses are a type of Dynamics 365 license. Again, Team Member has nothing to do with the Platform Campers, only the Dynamics 365 campers need to be concerned with Team Member.
“You cannot replicate the functionality of the first-party apps in PowerApps.” This was previously true, and relevant only to the Platform Campers, but is no longer the case. For Microsoft to succeed with their Platform aspirations, it was clear they needed to eliminate any artificial restrictions, and they did.
The recent announcement about the Platform License changes that I discussed in my last post, referenced this blog post by Charles Lamanna. Note that this post, and these licenses refer to “standalone” (aka Platform), and have nothing to do with Dynamics 365. This post and these licenses are for the Platform Campers only. You cannot use a Per App License with Dynamics 365, Dynamics 365 has it’s own licenses. Similarly, the retirement of the bundled Plan licenses for Dynamics 365 has nothing to do with Platform Campers.
A Fuzzy Line
The line between these two camps is very clear, yet at the same time, not very obvious. There is way too much “assuming” and lazy interpreting going on, leading to way too much misinformation, leading to way too much confusion. One way to help would be, if you don’t know that what you are saying is correct… don’t spit it out to the world as a fact. There is an old saying, “Better to be silent and thought a fool, than to speak up and remove all doubt“.