What is Microsoft Power Apps
As an IT professional or business owner curious about Microsoft 365, you may or may not have heard about Microsoft Power Apps. In either case, this article aims at outlining what Power Apps is and why it is important for you to be aware of what it has to offer.
Microsoft officially announced Power Apps in late 2015, listing three key business needs as motivation for developing the product: not enough supply of "skilled mobile developers", enormous growth of business data and contributing to lean IT process by improving agility and support. By late 2016 and early 2017 Power Apps was already generally available as part of the Microsoft 365 (then Office 365) suite in its four types:
- SharePoint Online forms
- Mobile apps
- Model-driven apps
- Power Apps portals
In the following sections we provide an overview of each one of those four types of business applications.
Types of Power Apps
There are four types of Power Apps depending on where and how you use the platform to build apps. They are quite distinguishable from one another and are meant to cover different business needs. This can make it easy for the relevant stakeholder to determine which type(s) they need and why.
Let’s start by looking into the synergy between SharePoint Online and Power Apps. If you go to any list or document library, open the default form and click on the new edit form icon, you will notice a short menu:
If you click the last option, you will be taken to the Power Apps studio where you will be able to substantially customize your SharePoint Online form by using the full capabilities of the development platform. For example, you may want to make just visual improvements to you form such as modifying font colors, background colors, borders, etc. in the user interface. There are lots of predefined controls that will allow you to improve the functionality of the form too. Some of those are searchable dropdown menus and galleries, among many others.
Enhancing SharePoint Online list form by means of Power Apps is an excellent choice when you want to introduce business rules in the form (e.g. hide/show or enable/disable fields depending on prior input). In more complex scenarios, Power Apps for SharePoint will enable you to connect to other sites or to a reference on-premises data in SQL Server via the SQL connector. In that way you can build more functional forms that can have embedded forms which is how you can model list relationships.
In simple scenarios though, you would use the drag & drop interface for customization. In the more complex ones, you will need to get a grip of the Power Apps expression language for app development. It is a formula-based and much Excel-like, but it also includes OOP elements. This article does not intend to go deep into this topic, however, in future articles we will explore creating a custom SharePoint Online with Power Apps.
The canvas app is probably the most popular, recognizable and used type of Power Apps. You start creating this type of app from the Power Apps studio right away. The app can be optimized for mobile devices such as phones or tablets. Recently, the concept of containers was introduced which allows creating truly responsive apps, which will automatically fit different screen sizes. One great advantage of canvas apps (name refers to the blank canvas you start out with) is that they can be embedded into a modern SharePoint page.
Canvas apps are a very powerful and flexible tool for creating a rich mobile experience. The Power Apps expression language also comes with some mobile-specific formulas. They allow for working with device location data and caching data into memory, for example.
To interact with your data in your canvas app, you use a connector. Currently there are more than 400 custom connectors available including non-Microsoft ones such as JIRA, SAP, Salesforce, OneDrive, Dropbox, etc. among many others. Both SQL on-premises and Azure SQL are of course supported.
It is worth mentioning that there also exists a scaled-down version of Power Apps for MS Teams. There you can create canvas apps that exist only for a specific team. Be advised not all platform capabilities are available in that type of canvas app.
By this point you may be wondering if you can publish your canvas app to Google Play or App store? The answer, unfortunately is no, you can’t. A finished app is available via the Power Apps client app only. You can make it feel like a native app by pinning it to the device home screen. To use it you also need the appropriate M365 license.
This type of Power Apps is based on Dataverse (former Common Data Service). The idea is that you use the data available in the "common data model" upon which you build forms, dashboards and business process. Therefore, the model-driven app is much more than just a form. Rather, it provides a capability to model specific business process (e.g. car buyback or a sales process) and the form is just one component that you can choose to use.
The model-driven app can consume data from and write to Dataverse. Therefore, in complex scenarios, a canvas app and a model-driven app can be the two sides of one coin. This type of Power Apps can also be tightly coupled with Dynamics 365. Some of its core components are part of the Power Platform anyway.
This last type of Power Apps is also quite interesting because it allows you to create external-facing websites. As such, you can also assign custom domains to your portals. A portal’s core functionality is exposing data from Dataverse to your external users. When creating a portal, you use a WYSIWYG interface.
Power Apps and SQL Server
As briefly mentioned earlier, Power Apps supports integrating with SQL data. For example, you can build a mobile app that is pulling data from your database and writing back to it. It is important to note that working with SQL in Power Apps requires a per-app or per-user license, which is usually purchased separately from regular M365 licenses. This prerequisite holds true for all premium connectors. Other notable examples are the Dataverse and Azure Connectors. You can find the complete list of premium connectors here.
So, you can either connect your power app directly to SQL (on-prem or in Azure) via the connector, or you can also consider creating a dataflow for automation purposes. The dataflow allows you to replicate the SQL data to Dataverse (the built-in data storage service for Power Apps). You can configure table mappings for multiple tables and databases and set a refresh cadence from as little as every minute to once a month. Once the data is in Dataverse, you can take advantage of building a model-driven or a portal app on top of it.
Who uses Power Apps and why?
You may still be wondering, especially if you are (.Net) developer: why would I use Power Apps instead of .Net or any other web development framework? Considering SharePoint forms and canvas apps which are the most pertinent types to these questions, the answer would be Power Apps is your "small toolbox". If you cannot fix the problem with it, then you bring your "big toolbox" to complement or create from scratch the required custom apps. So, consider using Power Apps because:
- It provides a rapid application development framework for business apps
- It integrates natively with data sources across M365, Azure and beyond
- You can greatly enhance SharePoint Online forms, both in list and libraries
- You can develop mobile apps (Android, iOS, etc.) for a fraction of the usual price
- You can model business process flows in a straightforward way
Or, if nothing else, then you could use it as a prototyping tool for large-scale projects. With Power Apps Microsoft aims at creating and inspiring a wave of citizen developers. Typically, these are business users that create apps and services themselves with a low-code/no-code platform such as Power Apps. As a citizen developer, you are a subject matter expert first and developer second. In this way you can make tailor-made solutions for your business cases for a fraction of the time & cost as compared to outsourcing your project to a company.
In my opinion, reality can be a bit different though. While the learning curve of Power Apps, in its various forms, is not the steepest, it still takes time and effort to get enough grip of the platform and its quirks and capabilities. Fortunately, the community around Power Apps is very lively and chances are someone already developed a solution for your problem. Even if not, you can post your question in the Power Apps community forums and get directions. As a starting point I would recommend you check the documentation and the various functions supported in the Power Apps formula language.
I also want to point your attention to the fact that no type of Power App, or the whole platform is your magic cure-it-all pill. Some limitations do exist. Here is a taste of them:
- SharePoint content types are not supported natively (yet)
- You can query a maximum of 2000 items from non-delegable data sources
- Only one developer can work at a time on a canvas app
- Application lifecycle management does not apply for SharePoint forms (except for the built-in versioning)
- Apps are typically meant for internal users (corporate M365 account)
- You cannot save attachments to SQL natively
I hope this information helps you determine where Power Apps fits in your business landscape.
Last Updated: 2021-03-09
About the author
View all my tips