We’ll help you learn the differences between the three and why you might use one over the other.
There are three main areas or things to remember about a canvas app.
It’s a blank canvas for you to add drag and drop components and to create a look that’s is tailored to what you’re looking for. You can have a lot of control over the interactions that users have with data and with elements within the app.
When you’re in SharePoint and you’re going to edit a list form, or a document form and you click the little edit this form button, what it’s doing is opening up a specialized version of a canvas app within Power Apps. You can largely do the same things you could do within a traditional canvas app using that same interface.
Canvas apps have a large variety of connections you can use and they’re flexible so you can connect pretty much to any type of data source you might want whether it be something advanced like SQL or Dataverse or if you want to connect to SharePoint to get some data.
Here’s an example canvas app that has's been built. On the left side, there are a lot of different controls and screens. On the right-hand side, there are a bunch of actions and configurations that you can make to those controls. Just remember, canvas apps are best for when you want to have as much control as possible around the user experience, when you want to extend SharePoint, or when you’re looking to connect to a variety of data sources.
Model-driven apps are a paradigm built squarely on the Dataverse. The Dataverse is the new name for what used to be called the common data service or CDS.
Everything related to model-driven development is all about defining the tables and entities within Dataverse with the appropriate forms, dashboards, charts and then surfacing them through a model-driven app that has specific navigation and interactions with the user. So again, one of the most important things to remember is that everything is dependent on Dataverse and this type of Power App requires licensing that gives you access to Dataverse.
In addition, this type of development is also the primary way that Dynamics is extended. If you’re someone who has a Dynamics implementation, you may be familiar with model-driven development already, but if you’re not, once you learn these skills they will be directly applicable to some Dynamics customizations.
Above is an example of a model-driven app that has a dashboard. You can see there are a few main elements, like the Active Challenges chart. That chart, again, was defined in a table in Dataverse, and added to this model-driven app. With these kinds of apps you won’t have the same drag and drop experience that you have with a canvas app, but you’re going to get the benefits of configuring entities and reusing those configurations for forms or views over and over in multiple pages or model- driven applications without having to reconfigure it every single time.
Portals are quite a bit different than the previous two types of apps for a few reasons.
Canvas apps and model-driven apps are primarily for your internal staff to interact with, while portals are exclusively for external partners or external customers. When they interact with a portal it’s going to be very much like they’re going to a website and accessing it through a traditional URL and looking at it through the perspective of any other public-facing websites that they might log on to and access data.
For your internal staff, working with a portal is going to be very similar to what they’ve experienced with a model-driven application or in Dynamics because the data is all Dataverse data. When you’re configuring a form, view, or dashboard you can then use those same things within a portal in addition to static website content using traditional CMS methods.
If you’ve ever built a traditional portal that customers might log into, you know just how difficult it can be to get data to show up on the screen and be secured properly. A lot of that can be simplified by using a portal because you're using the Dataverse as the backend for all this.
Another important note about Power Apps Portals is the licensing difference. In both canvas and model-driven applications, there is a per-user license for your internal staff that might be using or creating the app. With a Power Apps Portal, the licensing is structured in two different ways, one for authenticated users and one for unauthenticated users, and you pay per user per month or per day depending on whether it’s authenticated or unauthenticated content.
Hopefully this helped you understand the three different types of Power Apps and all they can offer you! Remember, if you’re looking to have the most control over what you are trying to develop, you should be using a canvas app. If you are working with data in Dataverse consider using a model-driven app. Lastly, if you engage with external users, customers, or partners Power Apps Portals is the solution for you.