Businesses need rapid application development tools, linking existing line-of-business apps to all sorts of workers’ mobile devices—not just the information workers who usually get all of IT’s attention. That’s the target for the revamp of Microsoft’s PowerApps.
Modern enterprise applications span the spectrum of development, from no-code and low-code all the way to massive service-oriented cloud applications. Somewhere in there is a sweet spot where apps aren’t complex enough to need a lot of development support but where they need more than drag-and-drop component connections.
It’s a spot that’s clearly important, as Salesforce’s recent multi-billion-dollar acquisition of API integration platform MuleSoft shows. Microsoft has a growing suite of applications and services in this space, but perhaps the most significant is the updated and upgraded PowerApps. Sitting alongside its Dynamics business-services apps, PowerApps (which debuted in late 2015 and has recently been enhanced) plays much the same role for Microsoft as MuleSoft will for Salesforce: as a platform for linking business data to users.
PowerApps is the 4GL for today’s business computing
We’ve been here before, of course. Back in the 1990s, fourth-generation languages (4GL) like Forté and the first generation of Visual Basic provided a bridge between mainframes and minicomputers and the first networked desktop PCs. By giving developers programming languages and environments to quickly build client-server applications, they changed the face of business computing, supporting new workflows and new ways of working.
Now, we’re at a similar inflection point. Applications need to link on-premises data and SaaS platforms, delivering task-oriented user interfaces to the device we have in our pockets. Service engineers need to know where they’re going, and what they’ll need to do, while security guards need to check in at key points on their rounds. Service workers like these all need to deliver information to SaaS applications and corporate data stores.
Like its 4GL predecessors, PowerApps offers a library of user interface components to build desktop and—more important—mobile user interfaces. Having a player app for iOS and Android ensures PowerApps users don’t need to download apps from app stores, and your users don’t have to wait for IT’s app approval before they’re delivered.
Connectors and the Common Data Service
Building user interfaces quickly solves one set of problems, but the real value of 4GLs like PowerApps comes from a mix of prebuilt and custom connectors that link your code to back-end systems. PowerApps includes connectors to not only Microsoft services but also to popular cloud platforms and to legacy on-premises systems. Some connectors, like those for Salesforce, Amazon Redshift, and IBM DB2 connectivity, require additional premium subscriptions on top of your Office 365 or Dynamics accounts, but much of what you need to get started is ready for use once you set up a PowerApps account.
Perhaps the most important service from Microsoft’s Business Applications group is the Common Data Service. Originally the Common Data Model, it’s a growing set of predefined data models for common business objects that can quickly form the backbone of an application or of a set of business analytics. PowerApps builds on a subset of the model that’s now called the Common Data Service for Apps, part of a recent update of Microsoft’s business software platform.
By mixing Microsoft’s ever-growing set of standard entities and your own custom data types, the Common Data Service ensures that there’s one data model for all your applications, and one set of entities that your Dynamics applications, your serverless Microsoft Flows, and your PowerApps all work with the same understanding of your underlying data. With the Common Data Service, all you need is a connection to your data to get to work building an app.
Common Data Service is a simplified database like Access or FileMaker, with tools for managing stored entities and entity relationships. Like a relational database, there’s the option of multiple relationships among entities, but each entity behaves as if it is its own table, with its own fields and its own views (which you can be customize for each application that accesses your data). You can also assign business rules to entities to handle data validation, and to apply basic business logic to updates.
Getting from data to code in PowerApps
Once you’ve built your data model, you can use services like Power Query to import data from external sources into the Common Data Service. Business analysts will be familiar with Power Query, because it’s part of the analytics features of Excel and a key component of Power BI. Here you’re using it for ETL, taking advantage of its transformation capabilities to format data and mapping it to your chosen schema.
PowerApps is a visual programming environment, building code from blocks and UI elements on a web canvas. A desktop app handles some development and design tasks, but you’ll need to use the web to build and manage application integrations. Apps can be built by anyone who’s built an Excel macro, but you’ll get the most out of PowerApps with dedicated developers with application integration skills who can work across data sources and APIs, as well as build a PowerApps UI.
There are some caveats with using PowerApps, especially around licensing. You’ll need to mix and match your licenses to deliver apps to users, as not all plans have the correct rights to use features like the Common Data Service. For example, while Office 365 E plans get access to PowerApps that work with the Microsoft Graph and data stored inside Office 365, you’ll need additional PowerApps plans for business analysts and admins, as well as for users, if you’re adding the Common Data Service to your applications. Not every user needs the same plan, so choosing wisely who gets what plan can save you money.
Flexible tools for flexible businesses
Businesses need to be flexible, and providing appropriate applications to task workers has to be a key deliverable for IT departments. Application development can’t take years; it can’t even take months. To deliver, IT departments will need to use an integration platform to bring back-end systems together, adding workflow and user interfaces as necessary. In a Microsoft-centric development environment, PowerApps is how you get there.
Developers spend a lot of time building complex applications and services that support information workers’ roles and duties. That often leads to ignoring the needs of other workers like service workers, relegating them to little or no IT support for their jobs. Using PowerApps changes that relationship, giving you a platform for quickly building usable (and changeable) mobile applications that work cross-platform and that integrate with existing back-end platforms.