Has your organisation embraced the idea of citizen developers yet? More companies than ever before are seeing in-house apps being built by non-IT staff to solve business problems. This is a positive evolution, and with tools like Microsoft’s PowerApps, it’s even easier for non-experts to build powerful and useful apps to help their colleagues and drive digital transformation projects.
If you are new to PowerApps and want to get building, your first choice will be between building either a canvas app or a model-driven app. So, what’s the difference between these two approaches, and how should you decide which to build?
In PowerApps, there are two kinds of apps that you can build– Canvas apps and Model-driven apps.
On a basic level, the difference between Canvas apps and Model-driven apps is a question of control. The type of app required depends on the business requirement and the structure around the process:
In this case, you will want to use the canvas app approach. Canvas apps afford you total control over every single aspect relating to the user experience of the app. PowerApps provides you with tools that allow you to make pixel-perfect applications and provide a professional user experience for your users, while still allowing you to connect to a wide variety of data sources.
If you require control over the data model that underpins a business process, model-driven apps are the way to go. They allow you to define how relationships, tables and fields interact with one another, giving you more power over the underlying functionality of the app, and allowing you to access the full capabilities of the Common Data Service (CDS).
In many cases, the resulting app can be very similar using either of the two approaches. However, each one is more ‘ready’ for working on certain kinds of projects.
With PowerApps, Microsoft gives you two quite distinct ways of building apps. Here’s how they differ:
With Canvas apps, the focus begins on the user experience and user interface aspect of the application. This can be curated for devices such as smartphones and tablets, or for traditional desktop web browsers.
The building experience is centred around a ‘canvas’, which looks and feels much like building a PowerPoint deck. You can drag and drop ready-made controls, actions, images and objects into the app as you build. As well as this, you can also call data from multiple sources, using a suite of connectors which allow users to interact with data from other Microsoft applications, such as:
Data can also be accessed from a host of non-Microsoft applications:
With model-driven apps, Microsoft provides you with a rich feature set of out of the box components that allow business users to design and build out apps, starting with an underlying data model. This may already exist in Dynamics 365/CDS or you may have to build from the ground up.
This data is found in the CDS Platform – the same database that Dynamics 365 is built on. It’s also fantastic for creating your own single source data store, by expanding on the CDS data model and letting staff populate them as they use the app.
Model-driven apps allow you to build out your business process with tables, fields and relationship (to enhance a data model), deriving business logic using business rules, process flows and forms with which the users can interact.
Building the user experience is less intuitive than with canvas apps. Currently, you must utilise Microsoft’s extensive pre-built forms, data visualisations and dashboards to display and allow users to interact with meaningful data. This could result in the app not being as aesthetic or intuitive for end-users as a Canvas app, but they define a clear and defined business process for the users to follow.
More recently, however, Microsoft have allowed Canvas apps to be embedded into Model-driven apps, to start combining functionality between both types of apps.
Using the Model-driven approach allows you to take advantage of the extensive features that allow developers to customise the app to meet bespoke requirements that cannot be met with out-of-the-box functionality. These include writing client or server-side code.
The focus with canvas apps is on total control and flexibility. This allows you to build a wide range of attractive apps for many different scenarios, including:
As well as this, the resulting apps are not tied to a single data source – you can define the user interface and connect to a wide range of sources using the 200+ data connectors.
Model-driven apps focus on the relationship between data in your app and the business process being modelled. It’s a great solution in the following kinds of scenarios, it is also built on Dynamics 365 (CRM) which has been used as a tool to model business processes for nearly 20 years. Here are a few examples:
While there are certainly differences between these two types of app, it’s worth reiterating the point above: you can often mix and match both canvas and model-driven apps to meet a set of business scenarios to provide an end-to-end process.
For instance, you might have a simple site-inspection app built as a canvas app, which might need its own specific functionality if, say, a problem is found. That might require some processing by a model-driven app by your back end staff to assign the appropriate resources to fix the problem. As the engineer turns up onsite to fix the problem, they can log the details of the fix through the canvas app.