PowerApps are a new way for power users to create valuable business apps, which connect to enterprise data and work great on the PC and mobile devices. I agree that it has the potential to be a big game-changer in terms of what the Microsoft stack offers - some other services have similar app building platforms, but Microsoft have a pretty big vision here. The key goal is to facilitate end-users to build applications, but perhaps in contrast to previous approaches, the resulting apps also sit well with I.T. needs – they are integrated with Office 365 and Azure, secure, and capable of being scaled up as needed.
My interpretation of what PowerApps provide can be summarized as:
- Build apps quickly without code. But in this, you have choices - apps *can* call out to custom code if required (a web API hosted in Azure – and this doesn’t have to be a .NET API, other languages are possible too)
- Ability to connect to many data sources, including on-premises data. These include SQL Server, SharePoint lists/libraries, OneDrive, Dropbox, Google Docs, SAP, Oracle, Dynamic CRM etc. Interestingly, there’s also an option to use an Excel file as a data source – be it stored in OneDrive, Google Docs or Dropbox
- These data connections can be stored in a library, so that power users can easily use them without caring about the underlying details
- A design surface/canvas to build the user interface. Think InfoPath on steroids, but with support for more than just forms. For example, it should be easy to create an interface which presents data in a grid, with full support for CRUD operations (create/read/update/delete) – effectively the screens/pages to support this are auto-generated.
- The design experience also includes a set of controls – listbox, button, slider, dropdown, image, different types of gallery (e.g. text/image or cards containing both) etc., and even a camera control for use in mobile devices
- As well as control properties, there’s an expression box which allows you to type pseudo-code (e.g. to bind a control to data). This is simpler than “real” programming, but is still likely to need a level of technical understanding
- Apps can be created from a template. “Event signup” and “opportunity template” are a couple of examples which could be good starting points
- Apps and APIs are hosted in Azure. They are Azure AD apps (so they can be secured, and provide SSO). In terms of where the apps run, there will be the choice of hosting in the Microsoft-managed “PowerApps cloud” (this is a multi-tenant SAAS arrangement, on the “Free” and “Standard” plans) or in your own Azure App Service environment (“Enterprise” plan) – see https://powerapps.microsoft.com/en-us/pricing/ for some more details
- There will also be some governance and management capabilities, especially on the Enterprise plan
- Simple distribution to mobile devices. My understanding is there will be a native PowerApps app for all of the major platforms e.g. iOS, Android, Windows phone etc. Users would install this once from the Store, or have it pushed to them for managed devices (e.g. InTune). *Your* individual PowerApps can then be opened inside this app – in other words, any app which is made available to a user will show in some kind of apps list (e.g. expenses app, room booking app etc.)
The experience starts with the build process – I can start by creating an overall app, or creating a logic flow:
Once I’ve started my app, I can create different screens and decide whether each is designed principally for a tablet/phone. I can also choose from a series of templated layouts:
I can then start to add controls to the design surface:
At any point, I can run my app and start to test it – in the image below, it’s an app which is bound to some data and has a screen for displaying all items. Each item has an edit link next to it (the arrow) which takes the user to another screen to edit the item:
In terms of management and access, PowerApps are backed by Azure – specifically, they are registered in Azure AD and hosted in Azure App Service.
What that means is that you get the option of taking advantage of all of the benefits of Azure App Services. They can be scaled as a unit to meet whatever demand you need, the web app parts can be secured with Azure AD to also give single sign-on, and there are specific support capabilities for hosting web APIs there.
More information on PowerApps will emerge soon. The service isn’t live at the time of writing, but you can request access to the preview at https://powerapps.microsoft.com/
If you’d like to read more at this stage, I suggest:
- The official PowerApps tutorials
- The PowerApps Help Center
- PowerApps on Channel 9
- Also Dan Holme has a nice article on his IT Unity site - http://www.itunity.com/article/microsoft-powerapps-introduction-2866
More to come!