Thursday, 23 July 2020

Power Apps: Different type of Apps with Detailed Understanding

Power Apps provides options to create app based on the requirement and usage. There are three different type of apps available.
  • Canvas 
  • Model Driven  
  • Portal 

Power Apps with the above three type of apps, adds more value to the Microsoft power platform, along with Power Automate. With both of these services from power platform, some of the complex business scenarios could be achieved with no-code or less-code approach. You will get this fact at the end of this article.

Let us quickly understand these different types.

Canvas App

When power Apps was introduced few years ago, this was the only type available. This type provides options to customize the user experience. That means, you can build the app from scratch defining each and every aspect of it. That includes,
  • Design and UI elements –  
    • Helps creating screens and adding necessary controls with just drag and drop approach.  
    • Business logic can be  manipulated and achieved with functions/formulas with less-code or no-code scenarios. 
  • Data connectivity – 
    • There are default connectors available, providing flexibility to connect to multiple services without even writing code. This includes underlying common data service, and other SAAS services. 
    • On top of this, Power Automate provides greater flexibility in integrating the multiple services/systems data with no-code configurations. 
  • Users: 
    • This canvas type is available for Azure AD or external users. 
    • Only licensed users can only access the app. - The basic options available as of writing are for single app or multiple apps per user.

The following snapshot depicts canvas app showing even creation functionality..
Canvas App - Showing Event Creation Screen - For an AD user

Model Driven App 

This option enables business to build applications with control over data structure and entities, with predefined interfaces and views. That is, we need to start defining the data model on Common Data Service, with necessary entities, and relationships, and then define necessary business processes, for the application.

This type is very much used to create CRM applications to provide options to business to work on user data or/and to make business decisions on the data entered onto the system. 

This is also preferred for building applications with more complex business logics.
  • Data Connectivity – 
    • Mainly coupled with Microsoft’s Common Data Service. At some places, provides options to connect to other systems with the help of Power Automate and scripting concepts. 
  • Design and UI Elements -  
    • Design is derived with the help of entities and UI elements are derived with the help of fields within entities, I.e., without adding any UI elements manually. But still UI elements could be embedded to screens with the help of HTML and scripting. 
  • Users: 
    • The end-users / target audience is always Azure AD Users. 
    • The basic licensing option is available from user based.

The following is the sample app snapshot showing one specific dealer data captured on CDS.
Model Driven App - Showing One Specific Dealer Information - For a business user logged in with Azure AD

Portal App 

This is latest addition to Power Apps. This is for building portals, where portals can be accessed with login or anonymously based on the requirement/configuration. This is a low-code platform, which enables business to provision responsive sites without writing code or less code.
  • Design -
    • The portal could be configured with the help of designer available within it. Each and every element is configured using the designer/HTML code. By default, this option provides some of the elements and screen options. There is also an option to put HTML/scripts/style references.
  • Users - 
    • Authentication/Login options available for Azure AD, Azure B2C, or even external identities. 
    • Anonymous access available
    • Licensing is available with multiple options as of writing.
If you need to connect to data from here, you need to build components (either HTML/JS or Canvas apps) and embed it into portal app.

The following snapshot shows the portal app configured. This displays the model-driven app embedded using iframe element on portal app, with just configurations.
Portal App - Embedded with Dealership dashboard as an iframe