Helping choose between Canvas and Model Driven apps on the PowerPlatform
PowerPlatform… PowerApps… Model-Driven Apps… Canvas Apps. Every industry likes their jargon and Microsoft PowerApp developers are no different..
If you’ve come across one or any of these phrases recently, either through your own research or from hearing them as part of your Digital Transformation with a third-party partner then you may be scratching your head and wondering what they all are…
What Are PowerApps?
Put simply, Microsoft PowerApps were developed to democratise software development, reducing both the difficulty and complexity of launching a new application for use by an organisation.
Using PowerApp’s a citizen developer (someone with little or no coding/design experience) can rapidly create a custom app for use by their organisation, either internally or externally.
PowerApps do this by using a low code/no code approach that lets users create apps using a simple click, drag and drop system.
Low code/No code development has been massively gaining in popularity over the last few years and the COVID pandemic has only seen that interest increase, with many organisations needing to pivot to a new way of working, thus speeding up their digital transformation plans ahead of original schedules.
Using PowerApps, a citizen developer can create either a canvas app or a model driven app… which obviously leads on nicely to the next questions, being… what are they, which is best and when should you use them?
What Are Model-Driven Apps?
Again, putting it as simply as we can, Model-Driven Apps aren’t ‘stand-alone’.
They’re based on sets of underlying data, or being more precise, underlying data held in the Microsoft Dataverse (apologies for throwing more jargon at you! The Dataverse, what used to be the Common Data Model, is a cloud-based storage environment that organisations can use to store their business application data safely and securely).
All Model-Driven Apps will be integrated in some way with the Microsoft Dataverse. In fact, most Microsoft Apps are Model Driven Apps themselves as, on some level, they’ll be integrated with the Dataverse (up to and including the entire Dynamics 365 platform).
That level of integration with the Dataverse means Model-Driven Apps can be described as ‘data-first’.
They’re far more rigid in their functionality than a Canvas App will be, with the UI (User Interface) components likely being selected from pre-made choices (although some customisation is still possible). That premade element makes Model-Driven Apps incredibly simple and easy to design and build, with absolutely no coding ability needed.
The flip side to all that rigidity however is that a Model-Driven App will always be a lot more sophisticated than a Canvas App, making them much better solutions for anything requiring complex busines logic to function efficiently.
The other plus to those premade User Interfaces is that they’re Responsive-by-Design, so will always look great, no matter what kind of device they’re accessed from.
What Are Canvas-Apps?
A Canvas-App does exactly what it says on the tin… they provide you with a completely blank canvas to create with.
You’re not left completely on your own though, as Canvas Apps are still designed for citizen developers, so there’s still a click, drag and drop format powering the interface.
Once you’ve got a setup you’re happy with though, you can make further adjustments to a Canvas App to change the size, shape and formatting of all the disparate elements.
Then, once you’re happy with that, you can connect it up to either a single or multiple data source(s) using nothing more than simple excel-style formulas.
And therein lies the main appeal of a Canvas App over a Model-Driven App; since there’s no need to worry about how your data is structured as there is with a Model-Driven App, you get a much more intuitive design experience.
Don’t worry. If you can use PowerPoint and have an entry-level understanding of excel formulas, then you’ll be able to whip up a Canvas App with no problems.
Building a Canvas App is a lot of fun as it really lets you flex your creative side as no two Canvas Apps will ever be exactly the same, plus, as a bit of an added bonus, Canvas Apps are capable of pulling data from over two hundred unique data integration sources as an Out-of-the-Box feature, making them infinitely more flexible than a Model-Driven App could ever hope to be.
The downside to that however is that Canvas Apps aren’t responsive by design. The two basic layout functions are portrait and landscape but depending on the amount of customisation that’s happened, some work is often required to make them fit across a range of devices by adjusting the size and positions of the various elements in relation to the screen size.
To do that you’ll need hard-coded values that will have to be repeated for every individual control that’s been created within your app… so whilst a Canvas App is endlessly customisable, making it then responsive can be a long-winded process.
When To Use A Canvas App Vs When To Use A Model-Driven App
In case you hadn’t guessed already, the title of this article is a little misleading as it isn’t really a case of Canvas Apps vs Model-Driven Apps or which is better.
Instead, there’s appropriate use cases for both; complementing rather than competing with each other.
A Canvas App is perfect for creating a task/roles-based application such as a ticket system for an IT team. As this task is focussed solely on one issue, it really doesn’t require the full use of the entire Microsoft Suite… that would literally be the definition of over-engineered (or in simpler terms overkill), potentially impacting on the functionality of the app by making it too complicated.
Model-Driven Apps then, are much more suited to creating a complete end-to-end solution.
Going back to the IT ticket system use case, A Model-Driven App would be useful after the ticket has been created to route it to the right place with the right location address, allow it to be updated so both sides can track its progress and mark it as complete.
In the above use case, it’s almost certain there’ll be multiple stakeholders wishing to view, update and document the ticket so for a well-rounded app capable of tracking the whole cycle, a Model-Driven app would be best suited.