Tuesday 8 December 2015

PowerApps – no-code Azure apps which talk to Office 365, SharePoint, SQL and more

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
    • The controls themselves are just HTML and JavaScript – and I’d expect there to be an extensibility model of some sort for creating new controls
    • 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.

Digging deeper

So, hopefully you can start to visualize how a data-driven app can be created, and what it might look like on a mobile device. If you can imagine that being the employee feedback app, the performance review app, the engineer scheduling app, or whatever the simple killer app for you or your client is, even if it’s just powered from data in a SharePoint list or Excel, hopefully you can see the potential for PowerApps.

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:

More to come!


jabberjaw said...

Nice article Chris. Agree PowerApps could be huge step for Enterprise Users & IT.

> – and I’d expect there to be an extensibility model of some sort for creating new controls

Hopefully, but doubtful. At this point, we're hearing: PowerApps connot be exported/extended with Visual Studio, PowerApps cannot be published to windows store like Project Siena Apps could, APIApps cannot be published to Azure Marketplace as was originally proposed.

Unfortunately, these will slow the adoption and limit the potential of this offering.

Chris O'Brien said...


Good points (and good info), but I'd say some of those aspects you mention would mainly be the concern of app vendors. Personally, I'm thinking about PowerApps primarily as a tool within the organisation, rather to create apps which would be published to marketplaces. For others though, yep I take the point.

I'm still hopeful that it will be possible to create new controls - but yes, time will tell..



Unknown said...

"Build apps quickly without code" - Am I getting old and cynical to think "I've heard that before". Hasn't it been the holy grail of business applications for 30 years? Didn't nearly every recent forms/workflow application claim the same?

Some delivered for a specific domain - but I've not seen a general purpose application deliver. I mean, InfoPath was great - for certain tasks.

It does look very neat, but that first bullet, well, I'll believe it when I see my pointy-haired boss do it without help.