Power Apps Tips, Tricks, and Best Practices - Andrea Pinillos - E-Book

Power Apps Tips, Tricks, and Best Practices E-Book

Andrea Pinillos

0,0
32,39 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Microsoft Power Apps is ideal for businesses seeking to digitally transform their operations by developing custom applications quickly and efficiently, without the heavy investment required for software development. This book leverages the authors’ combined experience in Power Platform, among others, to lay down the foundation for successful app development, focusing on defining project scope and understanding requirements.
In this book, you’ll go through several key development areas, including solution creation and Power Platform environments, both critical areas for effective app development and deployment. You'll also discover best practices for choosing when to build a canvas app or a model-driven app based on project requirements and data connections. The chapters will take you through advanced development techniques and show you how to integrate Power Apps with other applications. You'll get a clear understanding of the key aspects of governance, security, app maintenance, and error handling, ensuring that your Power Apps solutions are not only effective but also secure and sustainable.
By the end of this book, you'll have gained practical insights, technical depth, and a clear roadmap for successful Power Apps development.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 432

Veröffentlichungsjahr: 2024

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Power Apps Tips, Tricks, and Best Practices

A step-by-step practical guide to developing robust Power Apps solutions

Andrea Pinillos

Tim Weinzapfel

Power Apps Tips, Tricks, and Best Practices

Copyright © 2024 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Associate Group Product Manager: Aaron Tanna

Publishing Product Manager: Uzma Sheerin

Book Project Manager: Prajakta Naik

Senior Content Development Editor: Rosal Colaco

Technical Editor: Vidhisha Patidar

Copy Editor: Safis Editing

Indexer: Rekha Nair

Production Designer: Nilesh Mohite

Business Development Executive: Saloni Garg

First published: November 2024

Production reference: 1200924

Published by Packt Publishing Ltd.

Grosvenor House

11 St Paul’s Square

Birmingham

B3 1RB, UK

ISBN 978-1-83508-007-8

www.packtpub.com

To my family—Mom, Dad, Raf, and Angelo—thank you for your unwavering support, love, and belief in me. You have been my constant source of strength, and I couldn’t have done this without you.

To Uday, my soon-to-be husband, your love, encouragement, and belief in my potential inspire me every day. Thank you for always pushing me to grow, dream bigger, and reach new heights.

- Andrea Pinillos

To my amazing family, Alli, Kyle, and Kelsey, who may not have shared my enthusiasm for the technical details of this book but supported me every step of the way. Your love, patience, and encouragement mean the world to me.

To Mac and Juna, my trusty canine companions, who spent endless nights and weekends at my side.

- Tim Weinzapfel

Contributors

About the authors

Andrea Pinillos is a dedicated Power Platform Software Engineer at Microsoft. She began her career as a full-stack developer before discovering the transformative potential of Power Apps in 2018. Her passion for low-code solutions quickly took root, leading her to become a fervent advocate and educator within the Power Platform community.

Throughout her journey, Andrea has facilitated App in a Day workshops, participated in hackathons, and spoken at numerous conferences. She also shares her expertise through her YouTube channel, where she educates users of all skill levels about the powerful capabilities of Power Apps. Currently, Andrea is transitioning into the technical program management space, where she writes technical specifications for Power Platform solutions, continuing to inspire and guide others in harnessing the full potential of this innovative technology.

Tim Weinzapfel is passionate about all things data, analytics, and process improvement. Although he spent over 20 years in a non-IT related career, he started dabbling early on in various technical areas including Microsoft Access, SQL, web development, and later IBM Cognos. In 2017 he was introduced to Microsoft Power BI and the Power Platform, was immediately hooked, and saw the vast potential these tools offered. From that moment on, his focus has been on all things related to the Power Platform and specializing in how these applications can integrate to build more comprehensive solutions. He has a passion for teaching others and has done numerous trainings including live, through YouTube, and presenting at various user groups.

About the reviewer

Alexandru Badiu, who works as the Head of Business Analytics, is a data expert with over 12 years of experience in BI and Project Management. He has held key roles in top multinational companies, specializing in BI strategy, data governance, visualization, and digital transformation using Microsoft solutions. Passionate about agile methodologies, he has successfully led multicultural teams on complex projects. As a recognized Super User in the Power BI/Fabric community, he is also a speaker and the author of the online course: Data Storytelling and User-Centered Design in Power BI. He is known for his contributions to innovation and education in the field of Business Intelligence.

Table of Contents

Preface

Part 1: Overall Project Planning

1

Understanding Requirements and Project Planning

Technical requirements

Obtaining a Developer Plan

Power Apps overview

Understanding client requirements

Engaging with the client

Defining project scope

Importance of project planning

Project management roles

Project management methodologies

Project management tools

Other project management tools

Establishing a Power Apps Foundation

Data sources

Overall Power App layout

Security requirements

Integration with other applications

Where will the Power App reside?

Summary

2

Working with Solutions

Technical requirements

Strategic decision-making for solutions and environments

Environments

Security and governance

The crucial role of solutions in Power Apps

Creating publishers

Defining and creating solutions

Dataverse and ALM

Setting relationships in Dataverse

Defining views and forms in Dataverse

Implementing business rules in Dataverse

Versions and deployment pipelines

Summary

3

Power Platform Environments

Technical requirements

What is an environment?

When to create a new environment

Considerations for creating a new environment

Licensing considerations

Deployment pipelines

Co-development and code review

Governance for Power BI and Power Platform

Creating a new environment

Unmanaged versus managed solutions

Managed and unmanaged solutions

Solution components

Solution lifecycle

Exporting and importing a solution

Summary

4

Choosing the Right Tool – Navigating Canvas Apps, Power Pages, and Model-Driven Apps

Technical requirements

Understanding when to use a canvas app

Creating a canvas app – understanding the why and how

Hands-on exercise – building your first canvas app

When to use Power Pages

When to use a model-driven app

Summary and comparison

Exploring the model-driven app

Summary

5

Data Connections

Technical requirements

Using Excel as a data source

Creating a new Power App by uploading an Excel file

Creating a blank canvas app with Excel

Advantages of Excel

Disadvantages of Excel

Using SharePoint Lists as a data source

Creating a Power App from SharePoint

Creating a new Power App from a SharePoint list

Advantages of SharePoint Lists

Disadvantages of SharePoint Lists

Using Dataverse as a data source

Overview of Dataverse

Key features and benefits

Considerations for using Dataverse

A step-by-step guide on how to add data via Dataverse

Comparing Excel, SharePoint Lists, and Dataverse

Other data connections

Using dataflows as a data source

Overview of dataflows in Power Apps

Key features and benefits

Considerations for using dataflows

A step-by-step guide – utilizing dataflows as data sources

Summary

Part 2: Advanced Power App Techniques

6

Variables, Collections, and Data Filtering

Technical requirements

Variables and variable scope

Importance of variables

Types of variables

Global variables

Creating global variables

Accessing global variables

Examples of global variables

Context variables

Creating context variables

Accessing context variables

Examples of context variables

With() function and Named Formulas

Using the With() function

Using Named Formulas

Comparing global variables and Named Formulas

Collections

Importance of using collections

Creating collections

Removing records with Clear(), Remove(), and RemoveIf()

Advantages of using collections

Delegation in collections

Variable comparisons and inventory

Summary of descriptions and best uses

Variable Inventory

Filtering data

Using the Filter() function

Using the Search() Function

What is the difference between Filter() and Search()?

Using the LookUp() function

Summary

7

Canvas App Formulas

Technical requirements

Exploring formulas in canvas apps

Creating a submit button formula for canvas apps

Adding a success screen after a Submit button click

Adding a back button to the success screen

Adding a new form after the back button is clicked

Displaying all events in a gallery view

Adding a refresh button to the event gallery

Adding sorting to the event gallery

Adding search to the event gallery

Filtering active events

Summary

8

Conditional Formatting and URL Deep Linking

Technical requirements

Applying conditional formatting

Importance of conditional formatting

Core benefits

Concepts within conditional formatting

Example of basic conditional formatting

Examples of conditional formatting

Best practices

Implementing URL deep linking

What is URL deep linking?

Understanding URL structures in Power Apps

Using parameters in URLs

Retrieving incoming URL parameters in your Power Apps app

Using parameters in app logic

Enhancing the overall UI/UX

Creating an Admin button

Using conditional formatting to validate email address formats

URL deep linking for editing a record

Summary

Part 3: Power Platform and Other Integrations

9

Integration with Power Automate/Teams/Outlook

Technical requirements

Sending an Outlook email using Power Automate

Automating Outlook calendar invitations with Power Automate

Using adaptive cards in Teams notifications

Building an adaptive card

Building a Power Automate flow with an adaptive card

Summary

10

Integration with Power BI

Technical requirements

An overview of Power BI and its capabilities

Embedding Power BI visuals in a canvas app

Benefits of embedding Power BI visuals

Embedding a Power BI dashboard tile in a canvas app

Embedding a Power BI report in a canvas app

Embedding Power BI visuals in a model-driven app

Embedding a Power App in a Power BI report

Embedding a Power App – scenario 1

Embedding a Power App improved – scenario 2

Important considerations and best practices

Summary

11

Integrating Power Apps with SharePoint

Technical requirements

Embedding Power Apps in a SharePoint site

Overview of SharePoint

Benefits of integrating Power Apps with SharePoint

Example of an embedded Power App on a SharePoint page

Adding a Power App to a SharePoint site

Creating a custom SharePoint list form with Power Apps

Overview of SharePoint list forms

Creating a custom SharePoint list form

Overview of the SharePointIntegration Item

How to edit or delete a custom SharePoint form

Summary

12

Integration with Power Virtual Agents/Copilot

Technical requirements

Exploring Copilot Studio

Understanding the value of Copilot

Understanding the Copilot Studio interface

Connecting to a data source

Setting up data connections

Creating custom topics

Examples of custom topics

Designing custom topics

Managing and testing custom topics

Building a Power App with Copilot

Developing the Power App with Copilot

Testing and deploying the Power App

Summary

Part 4: Governance, Security, and Deployment

13

Governance, Security, and Application Life Cycle Management

Technical requirements

Establishing a Power Platform environment strategy

Avoid using the default environment

Create multiple environments for specific purposes

Environment best practices

Establish a naming convention strategy

Understanding service accounts versus individual accounts

What is a service account?

Key differences from individual accounts

Use cases for service accounts

DLP – implementing data policies in Power Platform environments

Key concepts of Power Platform data policies

Establishing Power Platform data policies

Understanding ALM concepts

Applying ALM in Power Platform

Summary

14

Error Handling

Technical requirements

Overview of error handling

Types of errors in Power Apps

Using built-in error functions in Power Apps

IfError() function

IsError() function

Notify() function

IsBlankOrError() function

Errors() function

Using the OnError property

Examples of use cases for OnError

Creating a custom error notification

Creating custom error messages

Designing user-friendly error messages

Implementing custom error messages with variables

Using the Notify() function for dynamic error messaging

Displaying error messages on the screen

Final note on error handling

Summary

15

Registering a Power App in Azure

Technical requirements

The importance of registering an app in Azure

Enhanced security

Seamless integration with Azure services

Improved application management

Compliance and governance

Custom branding and user experience

Support for multi-tenant scenarios

Integrating a Power App in Azure

When to add the Azure app ID, client ID, and secret ID within Power Apps?

Understanding the role of Power Apps credentials

Scenarios requiring app ID, client ID, and client secret in the event planning application

Summary

Final thoughts

Index

Other Books You May Enjoy

Part 1: Overall Project Planning

In this part, you will get a comprehensive overview of the key topics essential for successful Power Apps development. You'll begin by understanding the critical importance of thorough planning and requirement gathering to ensure project success. You'll then learn about solutions within the Power Platform, which are important for managing, packaging, and deploying changes efficiently across different environments. This part also explores Power Platform environments, including how they are created and deployed, with a focus on their role in app governance and security. Additionally, you'll gain insights into the different types of Power Apps—canvas apps, model-driven apps, and Power Pages—and their specific uses. Finally, you'll delve into data connections, covering popular options such as Excel, SharePoint, and Dataverse, and how they can be effectively integrated into your Power Apps. These topics collectively provide a solid foundation for planning, building, and managing your Power Apps projects.

This part has the following chapters:

Chapter 1, Understanding Requirements and Project PlanningChapter 2, Working with SolutionsChapter 3, Power Platform EnvironmentsChapter 4, Choosing the Right Tool – Navigating Canvas Apps, Power Pages, and Model-Driven AppsChapter 5, Data Connections

1

Understanding Requirements and Project Planning

In this chapter, we are going to begin covering critical aspects of developing a Power App. Understanding the client’s requirements, defining the overall scope, and preparing a well-thought-out project plan are fundamental components of any project. Not only will it potentially save you time, and most likely rework, but it can also help set overall expectations with the end users.

In this chapter, we are going to cover the following topics:

Understanding client requirementsImportance of defining a project planBuilding the foundation before painting the walls

By the end of this chapter, you will have a solid understanding of the importance of defining a project’s scope and how it is integral to the success of the project.

Technical requirements

In order to follow all the subsequent chapters in this book, you will need to have access to Microsoft Power Apps. If you currently do not have access to Power Apps, such as access through your employer, you are still able to sign up for a Power Apps Developer plan. This will give you full access to the Power Platform, with some limited exceptions, without having to pay for your own tenancy. You can sign up for your free Developer Plan. In addition, please note that some areas covered in upcoming chapters may be a “premium” feature. We will identify them as they arise.

Obtaining a Developer Plan

If you currently do not have access to Power Apps, Microsoft offers a free Developer Plan that can be used for development and testing purposes. This also includes access to other applications, such as Power Automate, which we will use later in the book.

To obtain a free plan, simply go to https://powerapps.microsoft.com/en-us/developerplan/ to sign up, as shown in Figure 1.1. Please be aware that personal email addresses (Gmail, Yahoo, Hotmail, etc.) are not allowed. A valid work or school email address is required.

Figure 1.1 – Obtaining a Power Apps Developer Plan

As we explore the process of acquiring the Power Apps Developer Plan, it’s essential to understand the capabilities of Microsoft Power Apps with respect to business application development. To begin with, let’s first get a broad overview of Power Apps.

Power Apps overview

Microsoft Power Apps is a leading solution in the world of business application development, offering unparalleled flexibility and efficiency. This innovative platform empowers users, regardless of their technical expertise, to create custom applications tailored to their specific business needs. By using its intuitive drag-and-drop interface, its low code/no code concept, and robust pre-built templates, Power Apps simplifies the app development process, enabling rapid deployment and significant cost savings. Its seamless integration with other Microsoft services and a wide range of external data sources further enhances its functionality, ensuring a cohesive and interconnected business environment. The platform’s emphasis on democratizing app development aligns with the growing need for agile, responsive, and customizable solutions in the dynamic business landscape. Power Apps thus emerges as an invaluable tool for businesses seeking to innovate, optimize workflows, and drive digital transformation efficiently and effectively.

Power Apps provides a low code/no code solution in which apps can be quickly developed with little to no coding. In fact, a great way to start learning how to use Power Apps is to build one using this approach and then reverse-engineer the app to understand the functionality. However, to fully tap into the power of Power Apps, you will need to go beyond the low code/no code concept, and throughout this book, we are aiming to do just that. We will cover different topics that arise throughout the overall development process, starting at the very beginning, when an overall concept is being identified, then looking at advanced techniques that will help you expand the app’s capabilities, and ending with how to maintain your app. With many projects, whether you are building an app, creating a website, or even developing a new product, the first step is almost always understanding what the overall need is.

Understanding client requirements

In most cases, the underlying motivation to build a Power App is to satisfy some sort of need. Whether this is developing an app for a small team to update a simple list of data to an enterprise-wide application, every project is going to have one or more end users. As a result, clearly understanding the intended purpose, the audience, available data sources, and other factors will contribute to either a successful project or one that ends up sitting on a shelf collecting dust.

Building Power Apps can be a fun and exciting endeavor. It is not uncommon for anxious developers to jump in and begin building out the application prior to fully understanding client needs. It may also be that the developer just presumes they know what the client wants. Another situation may be that work begins on development, yet the developer does not fully understand the overall processes, requirements, or data. This section will cover all those key elements for understanding the client’s requirements, including engaging with the client and defining the overall project scope. Engaging with the client is all about fully understanding the overall need. And, as that need is identified, the next step is to develop a clearly defined project scope. We cover both next.

Engaging with the client

One of the initial steps should be an engagement with the end user as early as possible. This discussion should go beyond just “tell me what you want” and should be a deep dive covering all the bases. Here are some recommended areas to consider.:

Businessobjectives: What are the overarching goals the client aims to achieve with the Power App? This could include improving efficiency, enhancing customer engagement, or automating specific processes.User needs and expectations: Identify the needs and expectations of the end users who will interact with the Power App and what success looks like for them. Consider their technical skills, workflow, and how the app will solve their problems or improve their work processes. It is also good to inquire about how their needs relate to any company/organizational goals and vision so that future enhancements can be anticipated. Lastly, understand who the user population will be. Is this limited to a specific set of users, a department, or the entire organization?Functional requirements: Inquire about what functional capabilities the Power App must have. This may include data input and output, integrations with other systems, user interface features, and any specific functionalities unique to the client’s operations.Data management: Understand how data will be handled within the app. This covers data collection, storage, retrieval, and security. Discuss the sources of data, data formats, and any compliance requirements for data handling.Integration requirements: Determine if the Power App needs to integrate with existing systems or platforms used by the client, such as CRM systems, databases, or other Microsoft 365/third-party applications.Compliance and security requirements: Discuss any legal, regulatory, or company policy compliance requirements. Also, understand the security needs of the app, including whether there is a need for user authentication or to secure any specific data. For example, will certain data only be viewable to certain users?Scalability and future-proofing: Consider how the app may be able to scale to accommodate future growth or changes in the client’s business. Discuss plans for updates, expansions, or additional features that might be required down the line. Scope creep is a common occurrence. One example is if you are building an app for a specific department in your organization and additional organizations will want to utilize the app in the future, having this information up front may allow you to plan appropriately.User interface and experience: Discuss the design and usability aspects of the Power App. This includes layout, navigation, accessibility, and overall user experience. Make sure to consider any accessibility concerns that users with vision, hearing, or other impairments may have. Also, discuss how users will access the app itself. Will it be embedded within a Microsoft Teams or a SharePoint site? Will users be provided a hyperlink for access?Overall app deployment and maintenance: Discuss how the app will be deployed as well as maintained. Will the app be part of an overall solution? It will also be necessary to determine what environment(s) will be used. We cover solutions and environments in Chapter 2 and Chapter 3 respectively. Will other components be integrated, such as Power Automate flows? Understanding these technical details will help in the overall planning phase.Reporting and analytics: Identify any reporting capabilities or analytics the client may want. This could involve tracking user activity, generating reports, or providing insights based on app usage. We will cover embedding Power BI reports in Chapter 10.Budget and time constraints: Clarify if there are any budgetary limits and the timeline for the development and deployment of the Power App. This helps in aligning the project scope with the client’s financial and scheduling expectations.Training and support needs: Determine if there is a requirement for user training and ongoing support after the app is deployed. This includes preparing user manuals, help guides, or providing technical support.Feedback and iteration process: Establish a process for ongoing client feedback and iterations. Power Apps development often involves agile, iterative development, so setting expectations for feedback loops and updates is important.

Important Note

An adage in buying real estate is “Location, Location, Location”. In developing Power Apps, this should be “Document, Document, Document”. In other words, maintaining good documentation throughout the entire Power App lifecycle is critically important. And there is no better place to start than the earliest engagements with end users. We also recommend a common location for documentation that other team members/collaborators will have access to.

Defining project scope

After gathering client requirements, defining the project scope is perhaps one of the most important aspects of Power Apps development. It lays the foundation for the intended purpose and key requirements of the project. It also sets initial expectations for the client. Some aspects of the project scope include the following:

Objective: What is the overall intended purpose of the Power App? The Understanding client requirements section, and specifically knowing the overall business objectives, helps drive this.Deliverables: Detail what the project will deliver upon completion. In addition to the Power App, the project will have other components as well, such as the underlying data sources, connected Power Automate Flows, technical documentation, and so on.Project boundaries: Define what is included and, just as importantly, what is excluded from the project. This helps manage client expectations and prevent or minimize scope creep.Milestones and timeline: Outline the major milestones and the timeline for the project. This includes start and end dates and key checkpoints along the way. Large projects may require executive/steering committee meetings to track overall progress and identify any risks and uncertainties that may arise.Requirements: Specify the project requirements, including technical, user, and functional requirements. This should be based on a thorough understanding of client needs.Data sources and other technical requirements: Clearly define where the data will reside. Do you have access to the data, or will you need to collaborate with others? Are there any other technical requirements (such as critical data security requirements that you may need to address)?Constraints and assumptions: Identify any limitations (such as budget, resources, and regulations) and assumptions (such as the availability of technology or resources) that may impact project execution.Risk management: Highlight potential risks and their mitigation strategies. This includes risks related to scope, resources, timeline, and external factors.Stakeholder analysis: Identify all stakeholders involved in the project, their roles, and how they will be engaged. This includes clients, team members, suppliers, and others who have an interest in the project. A RACIchart, also known as a responsibility matrix, is a common way to track roles and responsibilities for all team members. RACI is an acronym for four key areas:Responsible: Who is responsible for the project and/or task? This role is the decision maker.Accountable: Who has accountability for the project or task?Consulted: Who are the subject matter experts that will be consulted with for information?Informed: Who needs to receive communication and updates on the project or task?Resource allocation: Detail the resources (human, financial, and technological) required for the project and how they will be allocated.Quality management: Define the quality standards and metrics that the project deliverables must meet.Change management process: Outline a process for handling changes in scope, including who has the authority to approve changes and how they will be documented and communicated.Acceptance criteria: Establish the criteria for accepting deliverables, including who will sign off on them and how they will be tested or reviewed.Documentation and reporting: Determine what documentation will be needed (project plans, progress reports) and how the information will be communicated to stakeholders.

You have met the end user and have a much better understanding of their overall objective. In addition, you have clearly articulated the overall scope of work. Finally, you have even started to organize and document your notes. It’s time to jump in and start developing the Power App, correct? Not so fast. Just like heading off on a long-awaited road trip, an important first step is to plan your route. This also holds true for Power App development. Sure, it is possible to jump into the car and start driving, and you may still end up at your destination. However, if your goal is to arrive as efficiently as possible and without any unnecessary stops, a plan is a must. The next section looks at this area.

Importance of project planning

As the old saying goes, “If you fail to plan, you plan to fail.” Proper planning is critical to overall success as it helps define the overall project. This includes areas such as the overall scope with clearly defined requirements, identifying the necessary resources and defining roles and responsibilities, determining a timeline, as well as identifying any potential risks or challenges.

This book is not intended to cover in-depth aspects of project management. However, there are several common areas of project management that we believe are important for developers to be aware of. With many projects, there are different roles, project management methodologies, and tools. We will touch on different aspects of each of these.

Project management roles

In a project management process, there are many different roles that might be called upon. Depending on the size and scope of your effort, it is important to consider which of these roles might be beneficial:

Project manager: The primary leader of the project, responsible for planning, executing, and closing projects. They oversee all aspects of a project, manage the team, and ensure that project goals are met.Team members: Individuals who work on various tasks within the project. Their expertise and efforts are critical to the completion of project tasks. This may include a Power App developer, database administrator (DBA), systems administrator, and others who will be directly involved with the overall development.Stakeholders: These are people or groups who are interested in the project’s outcome. They can include clients, customers, sponsors, and others who are impacted by the project’s results.Quality assurance: This role ensures that the project meets the required quality standards. They are involved in testing and ensuring that the app performs as it should.Subject Matter Experts (SMEs): Individuals who provide specialized knowledge or expertise in a specific area relevant to the project.Business analysts: Professionals who analyze the business needs and ensure that the project plan meets these needs.Sponsors: Typically, these are the people or the organization that provides the financial resources for the project. They play a critical role in project initiation and can also influence key decisions.Project steering committee: A group of high-level stakeholders who provide strategic direction, ensure the project is aligned with the organization’s goals, and make decisions on key project issues.End users: The final recipients of the project’s outcome. Their feedback can be crucial in the project’s planning and development stages.Project coordinators/administrators: They assist the project manager in administrative tasks such as scheduling meetings, updating project documents, and communication.

Project management methodologies

Along with differing roles that might be involved, there are also different project management methodologies. While there are many different approaches to project management, some examples of methodologies in software development are Waterfall, Agile, Scrum, and Lean. The following table provides a broad overview:

Waterfall

Agile

Scrum

Lean

1. Project done in a linear approach

2. Clearly defined sequence

3. Each phase is completed before the next phase begins

4. Tasks may have dependencies on each other

1. Project work is adaptive

2. Focus is on iteration, collaboration, continuous testing, and feedback

3. Open to change as development progresses

1. Follows the Agile framework

2. Short “sprints”(usually 2–4 weeks) are used to manage projects

3. Usually involve short regular/daily meetings

1. Uses cross-functional teams to work in short iterations

2. Focuses on eliminating non-value-added steps from processes

Table 1.1 – Sample Project Management Methodologies

This is only a short summary of different approaches and is not meant to be all-inclusive. Experienced project managers are a key asset in determining how best to approach your overall project.

Project management tools

In addition to different roles and methodologies, there are a number of applications that can manage the overall project. And, similar to the section on project management methodologies, our intention here is to provide awareness of some commonly used project management tools. These tools can be very helpful for tracking tasks, timelines, responsible individuals, and so on.

Microsoft Project

Microsoft Project is Microsoft’s overall suite of project management tools. There are both cloud-based and on-premises solutions. Microsoft Project (desktop) is an on-premises solution that is installed directly on your computer. In addition, there are two cloud-based solutions, Project for the web and Project Online.

Project for the web

Project for the web is built on the Microsoft Power Platform. It is easy to begin using and simple to use and can also integrate with other Power Platform applications, including Power Apps, Power BI, and Power Automate. It is also good for simple and small-scale projects.

Project Online

Project Online is built on Microsoft SharePoint. It is better for more complex projects.

Azure DevOps

Separate from Microsoft Project, Azure DevOps is another application that can be used for both project management and overall application life cycle management. DevOps allows you to address various project management approaches (Agile, Scrum, etc.), create sprints, and create, track, and assign work items.

Other project management tools

While Microsoft Project and Azure DevOps offer project management tracking, there are other commonly used applications. These include the following:

JiraTrelloSmartsheetAsanamonday.comGitHub Projects

And, although we are providing a list of commonly used applications, the intent is not to provide an overall recommendation but rather awareness. Each tool will have its own strengths and weaknesses depending on the size of the project, the team, the overall approach, and other factors.

Interested in learning more?

There are many books available on Packt’s website that cover project management and some of the applications listed previously. Visit https://www.packtpub.com/ for more details.

So far, we have covered important steps to consider when planning the overall project. First is understanding overall client requirements. Next is developing an overall project plan and considering utilizing a management tool to track tasks. Finally, there are various areas to plan for that may impact your overall development. These are covered next.

Establishing a Power Apps Foundation

The importance of this concept is probably best described by the fable, “The Three Little Pigs.” This story features three pigs that each build a house to protect themselves from the big bad wolf. The first pig uses straw, the second uses wood, and the final pig builds the house out of bricks. Although the wolf can blow down the first two houses, it is unable to destroy the brick house. The moral of the story is that proper planning prevents catastrophe.

This also applies when developing your Power App. As noted previously, it can be very tempting to immediately jump in and start building out screens, galleries, and forms. Doing so, however, can greatly increase the risk of significant rework down the road.

We use the concept of building a foundation as a way to think about the importance of planning ahead. When developing a Power App, there are areas to consider during the process beyond just adding screens, galleries, and forms. Accounting for these areas early in the process may not only save you rework but also enable you to build out a much more robust and scalable app. In this section, we are going to cover key areas that we believe are the foundation for a successful project. These include data sources, planning the overall layout, understanding key security requirements, integrating with other applications, and finally where the Power App and any associated components will reside. We can’t overemphasize that proper planning will not only greatly reduce the chance for rework, but will provide a greater chance for building a more efficient and most likely scalable project.

Data sources

Understanding where the data will come from is critical. A simple app may just be connecting to a single data source, such as a SharePoint list. However, more complex apps may include multiple connections, different data sources, and so on. There are some questions to consider in relation to data sources.

Will end users have access to the data sources? It is important to remember that when developing your app, you as the developer may have access but if an end user does not, this could prevent the app from working for them. A simple example of this is when using a SharePoint list as your data source. If someone accessing the published app doesn’t have the necessary permissions to access the SharePoint list, they would be unable to access it through the app. Thus, it is highly recommended to evaluate where your data is coming from.

Do you understand or have a clear picture of the overall data model? It is also possible that the model does not exist and will be created as part of building out the app (or perhaps just some new tables). Planning this in advance will greatly help as you consider the layout of your app.

For the purposes of this book, we are going to be using an example of creating an event planning Power App. This is going to require a new dataset to be created and will include tables for areas such as events, venues, attendees, and vendors. It is best to draw a diagram of the tables we anticipate needing and how they all relate to each other.

Here is an example of a conceptual data model. This image is not meant to be all-inclusive but to serve as an example.

Figure 1.2 – Example data model

Overall Power App layout

Effective app development requires prior planning, particularly in the initial stages. A common pitfall is diving into development with a focus on individual screens, only to later realize the need for additional features such as a uniform background, a cohesive header, and standard icons across pages. This approach, while common, leads to unnecessary work or even revisions. For example, developing a single, well-planned template that incorporates these elements can be replicated across different screens, streamlining the development process. By investing a little more time in planning at the outset, significant time and effort can be saved later. Taking just a bit of extra planning time at the beginning can save significant time later. Trust us on this one!

Security requirements

Will your Power App have any security requirements? This might include restricting what data users are able to see, displaying only certain fields to specific users, and/or displaying certain areas of the Power App (such as an Admin screen).

A good example of this is having a section of the Power App devoted to administrators only. This can be achieved simply by showing or hiding an administration section based on the user’s login. What is important is being aware of this upfront so that as you are developing the Power App, this functionality can be built in from the beginning rather than having to update or perform rework on already built sections.

We will cover additional security requirements in Chapter 13.

Integration with other applications

This is another big area to consider. Power Apps, as a standalone application, provides great functionality. However, you may find situations where integrating your app with other applications will expand your overall solution.

Here are some examples. First and foremost is integration with Power Automate. Power Apps and Power Automate go together like chocolate and vanilla ice cream. In fact, one of the most common integrations is between these two applications as Power Automate facilitates automation.

However, there are other applications that Power Apps integrates nicely with. SharePoint and Power BI are two examples. Thus, it is important to plan for them. We will cover integration with other Power Platform and other applications in Part 3.

Where will the Power App reside?

Lastly, it is important to understand where the Power App will reside, both in terms of the development process but also when published. What Power Platform environment will be used? Do you intend to have separate environments for developing, testing, and production? Do you anticipate having other components, such as Power Automate flows and/or environment variables? Related to this, will the Power App be included in a solution?

We will be covering solutions in Chapter 2 and environments in Chapter 3.

Summary

In this chapter, we covered several critical steps that should be considered when developing your Power App. First, we described the importance of understanding client requirements. This included engaging with the client to discuss the overall objective, key requirements, and other areas to consider. In addition, we provided a number of areas to consider when developing the overall project scope.

Next, we explored key steps in developing a project plan. We provided various roles that can be useful through the project lifecycle, such as project manager, team members, and end users, as well as other useful roles. We looked at different project management methodologies to be considered, as well as applications that can help support the process.

Finally, we covered important foundational topics that should be considered for the development process. Areas such as understanding the data sources, the overall layout, any security requirements, integrating with other applications, and where the Power App will reside.

In the next chapter, we are going to start understanding solutions and how they play a crucial role in the overall process.

2

Working with Solutions

Establishing solid foundations through adherence to best practices is paramount right from the start. In this chapter, we delve into the essential steps of creating a solution and a publisher, providing a comprehensive guide on incorporating various components into your solution. Emphasizing the critical role of creating a solution in every project, we underscore its significance as a key factor during project deployment to test our production environments. Solutions are crucial for managing, packaging, and deploying changes across different environments. They serve as containers that hold various components such as apps, flows, and customizations.

In this chapter, we will learn about the following topics:

Strategic decision-making for solutions and environmentsThe crucial role of solutions in Power AppsStep-by-step guide – solutions, publishers, and versions

In this journey, you will gain a deep understanding of how solutions serve as the cornerstone of efficient Power Apps development, ensuring seamless deployment, version control, and management of applications across different environments. By the end of this chapter, you will be equipped with the knowledge and skills needed to effectively leverage solutions to streamline your Power Apps development workflow, enhancing productivity and project success.

Technical requirements

Microsoft Power Apps environmentAccess to Power Apps Maker PortalBasic understanding of Power Apps components and environments

Strategic decision-making for solutions and environments

Before diving into the technical details, it is crucial to make strategic decisions regarding environments and security. These decisions lay the groundwork for effective use of solutions.

Environments