Lowcode
Lowcode
Low-Code
Application
Development
with Microsoft Power Apps
and Azure
Andrew Oram
M A N N I N G R E P O R T
Low-Code Application Development
with Microsoft Power Apps and Azure
Andrew Oram
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in the book, and Manning
Publications was aware of a trademark claim, the designations have been printed in initial caps
or all caps.
∞ Recognizing the importance of preserving what has been written, it is Manning’s policy to have
the books we publish printed on acid-free paper, and we exert our best efforts to that end.
Recognizing also our responsibility to conserve the resources of our planet, Manning books are
printed on paper that is at least 15 percent recycled and processed without the use of elemental
chlorine.
ISBN 9781617299803
Printed in the United States of America
contents
The growing requirements placed on applications 1
Low-code tools 1
Widespread deployment 15
Sample scenarios 17
Conclusion 18
iii
startHere(Azure);
● $200 credit
● Free training
Low-code tools
Low-code tools start with the idea that common components, boilerplate code, and
predictable application behaviors can be captured as prebuilt components and
automated processes. The initial setup consists of choosing existing components
and actions from menus and composing them to create the app. Then you can con-
centrate on adding the custom features that make your app unique.
1
2 Low-code application development with Microsoft Power Apps and Azure
Figure 1 Web page with many dynamic features (Manning Press web site)
Applications composed of standalone services that share data or have a common work-
flow are commonly called service-oriented applications, ranging from simple web applica-
tions like the ones mentioned earlier to large, enterprise-scale applications. Extending
the idea of low-code tools to a cloud platform such as Microsoft Azure gives the user
access to a vast array of prebuilt services that can be integrated into your application.
This integration is the power behind Microsoft Power Apps.
Power Apps adds a visual interface (figure 2) to make it trivial to plug an impressive
array of services into an application, including services for data analysis; artificial
intelligence (AI); augmented, virtual, and mixed reality (AR/VR/MR); chatbots;
popular relational and nonrelational databases; and enterprise resource planning
(ERP) platforms. These tools are equally valuable to programmers and nonprogrammers
such as business intelligence (BI) users.
Finally, most developers are on the hook for a lot more than creating an application.
The modern development process includes testing and continuous integration,
version control, issue tracking, creating input and output to devices, embedding the
app in other environments (such as Power BI), and supporting multiple distribution
channels (such as the web, mobile devices, and social media).
Low-code tools 3
Because Power Apps is designed both for nonprogrammers who may be working
alone—known as citizen developers—and for professional software engineers who are
part of larger teams, it can support all these activities.
To summarize, today’s programming environment involves
Power Apps reflects those priorities, offering integration through RESTful interfaces
with
This report describes how programmers can use Power Apps to incorporate richly
featured tools into their applications and bring the applications to users in many ways.
We’ll look at some of the intriguing tools that tie Power Apps to its environment and
end with a couple of examples that show how Power Apps can allow applications to
grow over time.
defined task and then pass data on to another service. Each function can be developed
within Azure or be developed on the programmers’ systems locally with their tools of
choice and then uploaded to Azure.
To develop within Azure, you can use App Service, which provides many simple
visual interfaces to all the tools available. If you choose to code on your local system,
you can use Visual Studio and then employ its Publish to Azure feature to install the
function in your Azure account.
A function can run either on-premises or in the cloud, but integration with Azure’s
cloud service provides many benefits by managing the application’s relationships with
databases, other services, and other parts of the environment. Whether a function runs
on-premises or in Azure, you expose it to other users by using an Azure graphical
interface to create a custom connector. Examples of such connectors include an HTTP
URL to provide a web interface, a connector to a Microsoft service such as Sharepoint
or OneDrive, or a connector to an ERP or other third-party service supported by Power
Apps.
When your function is in Azure, you can load it up like a do-it-yourself ice cream
sundae with all sorts of services, both those inside Azure and those to which Azure
provides interfaces, such as databases, ERPs, and the GitLab version control platform.
Single sign-on gives users instant access to the services you’ve incorporated into your
application.
As previously mentioned, Power Apps provides a low-code environment as a
graphical interface. Typically, you drag a component on the screen where you want it.
You can drag in a web canvas element that provides the service to the web page
displayed by your app, for example. A low-code approach can speed up all kinds of
applications, but particularly quick apps designed for a small group of users (such as
internal company apps) in which performance is not a critical concern. Many
opportunities exist for such applications, but they often aren’t produced in the absence
of a platform like Microsoft Power Platform, which makes them simple and low-cost.
Although the graphical interface is appropriate for a low-code environment, Power
Apps also lets you build apps through a command-line interface (CLI). This CLI lets
you do such things as install Power Apps components (plugins), store (push)
components, and make backups of your application development environment
(figure 3). The CLI enables scripting, so you can define robust, standard processes
such as making sure that every application has the right authorization policies. You can
also perform administrative tasks by using PowerShell (figure 4).
The remaining tasks that get your function working with the service indicate how
to exchange data. RESTful APIs carry out this integration. The RESTful aspect of the
interface allows you to write in the language of your choice and insert calls to all the
services you want in a consistent manner that will soon become familiar. Data is passed
between your function and the services by means of common RESTful techniques:
function parameters and human-readable JSON data structures. Power Apps also uses
the standard JSON format for configuration, in a type of file commonly known as a
6 Low-code application development with Microsoft Power Apps and Azure
manifest. The manifest provides the endpoints and related information that the function
needs to communicate with the service.
Azure API Management (APIM) makes applications discoverable to other Azure
users through a catalog. When you are ready to share your application, you can put it
in this catalog by exporting it to the API Management system (figure 5). APIM can list
both applications stored in Azure and those stored on-premises.
Databases
Most applications query and update databases. Power Apps makes it easy to perform
these functions on popular relational and nonrelational databases. But a Power Apps
function can also be used within a database to provide functions that you code in the
language of your choice, substituting for database-specific languages such as PL/SQL
in Oracle or Transact SQL in Microsoft SQL Server.
When you drag and drop a database in your Azure account into your application,
Power Apps gives you a form where you can enter the connection information, such as
server and username. After establishing a connection, Power Apps allows you to choose
8 Low-code application development with Microsoft Power Apps and Azure
a table and creates a simple visual interface to all the fields. You can choose which ones
to query or update by clicking them.
You can also use functions within a database by means of triggers. Database
administrators can program all kinds of sophisticated operations. Here are a few
examples:
¡ Each time text is inserted into a character field, it could be passed to an AI pro-
gram to determine what language it is and then translated into another language.
¡ Queries can be passed to a program that looks at who is making the query and
run security checks that might not be available within the database.
¡ Sophisticated logging can be done on selected types of queries.
Active Directory
Directories such as LDAP and Active Directory (AD) are like telephone switchboards
for businesses, allowing you to find employees or customers and control their access to
different corporate functions. The Conditional Access Policies in AD allow an admin-
istrator to control access to an application by a user, a device, a location, and so on.
Power Apps lets you use the APIs for AD, which you can locate either on-premises
or in Azure, to employ its search and security features. Suppose that you want to
retrieve the user credentials for a user of Microsoft Office 365. You could connect
Power Apps to the AD containing that user’s record and retrieve information such as
their email address, username, and anything else that the AD stores. By performing
these tasks through Power Apps, you avoid a lot of tedious routing, authentication, and
the like.
¡ Consult the ERP for office locations and find the one closest to a remote
employee through geolocation
¡ Run analytics on sales to determine the rise or fall in the popularity of products
and compare this behavior with the behavior of factories, tracked by the ERP
Artificial intelligence
Over the past decade, machine learning has solved perplexing tasks such as speech
recognition and face identification. Azure has integrated many business uses for AI
into turnkey components (figure 6). Although these powerful functions must be vet-
ted carefully for accuracy, lack of bias, and respect for privacy, they are creating a better
world that gives people new capabilities. Voice interfaces, for example, are a boon to
everyone from a busy parent holding a baby to a vision-impaired person to anyone who
is too busy to figure out a graphical interface.
Popular services available through Power Apps 9
Feature-rich AI services can be loaded from Azure into Power Apps through a visual
interface (figure 7).
AI services available to Power Apps include
Figure 6 Numerous AI tools of use to businesses are available to Power Apps on a turnkey basis
Figure 7 A pull-down menu allows you to choose AI components and load them into your application.
10 Low-code application development with Microsoft Power Apps and Azure
Power Apps makes it easy to incorporate a chatbot, along with an API for pro-
viding the hierarchical flow of questions and answers that drive the chatbot.
Power Virtual Agents, which are part of the Power Platform along with Power
Apps, create sophisticated chatbots quickly. A sample chatbot is shown in figure
8, along with the visual interface in which the designer provides chatbot conver-
sations. Coca-Cola used Power Virtual Agents to create a chatbot as an appeal-
ing interface to a touchscreen beverage dispenser, for example. The Power Apps
platform made integration with the SAP management service easy.
¡ AR, VR, and MR—AR provides not only a powerful interface for interacting with
a person’s immediate environment, but also new possibilities for training and
exploration. VR is known mainly for games but has other valuable applications,
such as teaching surgical techniques, allowing chemists to explore large mole-
cules, and stimulating the minds of homebound elderly people. MR is a recent
feature of Power Apps that can be combined with other functions to provide
information about the user’s environment (figure 9).
¡ Scanning —Power Apps has access to functions for scanning and interpreting
everyday documents such as receipts and business cards. Scanning can be inte-
grated with an application to provide such benefits as pulling up the LinkedIn
profile of a person the client just met. Figure 10 shows a scanning tool that
extracts requested fields from a scanned document.
Figure 9 How Mixed Reality can provide enhanced information to the user about their environment
Figure 10 You can choose which fields to extract from a scanned form
12 Low-code application development with Microsoft Power Apps and Azure
in your function, so you can set a limit to scaling, how long to wait between health
checks, and other parameters that are common in scalability and high availability.
DevOps
As software became more complex, many companies assumed that their products
required a slow, heavyweight development process and clear separation of responsibili-
ties within organizations. Large projects suffered from teams that operated in silos with
poor communication and competing priorities. The result was slower development
and stifled innovation.
The DevOps movement automates testing and deployment, providing a more
consistent and secure development environment and potentially lowering the technical
bar for participation in the process. Many organizations see that the rapid iteration
and rollout of promised features make DevOps a good approach for at least some of
their software. Further, DevOps encourages cross-functional communication and less-
strict definition of operating boundaries. Developers may take on tasks that were once
reserved for infrastructure engineers, for example, and business managers may
participate in software-team decisions.
As an interesting consequence of its success (the term having been invented a little
more than a decade ago), DevOps has become so popular that the word is starting to
lose its precise meaning. Whatever you call it, however, the Power Platform, of which
Power Apps is a part, offers teams the tools they need to automate and manage their
application life cycles.
14 Low-code application development with Microsoft Power Apps and Azure
¡ You can control access at the level of the application, the flow, the user, and so on.
¡ In a cloud environment, where you serve many companies or divisions of your
own company, you can configure firewall policies for each tenant, such as to con-
trol inbound or outbound connections (figure 12).
¡ You can cut off nonbusiness connectors—the kinds of popular sites that people
use for fun or for personal projects.
Widespread deployment 15
Figure 12 Configuring isolation rules for different tenants sharing a private cloud
Widespread deployment
Originally, programs were distributed as standalone tools; then the Internet made
them easier to use by allowing companies to deliver them through a browser (Software
as a Service). But these types of programs are no longer sufficient to reach all the users
you need to reach. In fact, the promise of Power Apps to allow massive integration
extends to the environments in which you can embed your functions.
In this section, we’ll examine the following channels to reach users:
¡ Websites
¡ Mobile apps
¡ Power BI
¡ Power Automation and Microsoft Flows
¡ Microsoft Teams and Microsoft Office 360
Websites
Suppose that you’re working for a college and have developed an application that
displays a map, customizing it based on what you know about the user. For a chemistry
major, for example, you highlight on the map all the buildings that are relevant to that
discipline. Now you want people to use this app.
In addition to building your own web application, you may want many other websites
run by the university—or even by the surrounding city and other institutions—to show
your maps. You can do this by creating an HTML canvas element, an amazingly
powerful feature that is thoroughly standard and robust. Azure exposes your function
as a canvas that any website with the proper permissions can embed. Websites that
display Power Apps functions are responsive by design (figure 13).
One simple, low-code way to create a website uses Power Apps portals. These
portals are based on Power Fx, a descriptive language that lets you create a website
and integrate it with a database by specifying a few parameters. For example, Ernst &
Young used a Power Apps portal to create an application that helped banks distribute
16 Low-code application development with Microsoft Power Apps and Azure
funds from the U.S. Paycheck Protection Program quickly in response to the hardships
caused by the COVID-19 pandemic.
Mobile apps
Many applications are mobile-first, prioritizing the experience that a user has on a cell-
phone or tablet. Power Apps provides tools that help you rapidly build mobile-friendly
versions of your software. You can quickly generate iOS and Android apps from your
functions. Windows devices use the canvas element described in the Websites section.
Power BI
Nonprogramming knowledge workers are accustomed to using BI tools to investigate
organizational data through charts and reports. You can provide functions to Micro-
soft’s Power BI to greatly expand the analytics that it offers users. After a Power BI
user selects your function from a menu, Power BI displays a table with the data fields
output by the function; then the user can select what they want to see. The result: cus-
tomizable integration of your function into Power BI without the need for the user to
do any programming. Schlumberger used Power Apps to create a wellness app for its
employees and then integrated the app with Power BI so that it could track the use of
the app and determine whether it was having a effect.
Apps functions within these workflows. At the point where a decision has to be made
about the recipient of an email or chat message, for example, you can write a function
to analyze the task and make the right choice without involving the user.
Sample scenarios
Previous sections of this report introduced various applications and services, suggest-
ing how each one could enhance an application. Now we’ll walk through some proj-
ects that start small and add more functionality to meet the growing needs of the
organizations. We’ll also see how Power Apps can promote rapid development.
Conclusion
Programmers are increasingly willing to get help with programming. Just as they rarely
write assembly code, having long ago adopted advanced modern languages, program-
mers are turning from plain text editors and command-line tools to IDEs because the
advantages of such tools are too impressive to ignore.
Some programmers, out of pride, want to do all their own coding. Although they
recognize the necessity of bringing in libraries and modules from third parties, they
may feel that it is a sign of immaturity to use low-code tools and pick functions from a
Conclusion 19
GUI. But luckily, the sign of a professional programmer is no longer coding virtuosity.
You don’t show your expertise by proving that you can write functions to process
double-linked lists from scratch. Instead, the modern programmer is valued for higher-
level skills, such as
An environment such as Power Apps, in the context of the Azure platform, takes on the
low-level tasks and frees you to exercise these high-level skills. You can still do all the
programming you used to do with Power Apps, but faster and with less time spent on
fixing bugs. It’s even better if you exploit the boost that Power Apps gives your projects
to boost your own career, taking on new tasks that you never had the cycles for before.
By developers,
for developers
Microsoft.Source
newsletter
Get technical articles, sample
code, and information on
upcoming events in
Microsoft.Source, the
curated monthly developer
community newsletter.
● Learn with
hands-on resources
Sign up