{"id":14063,"date":"2021-10-13T07:00:00","date_gmt":"2021-10-13T11:00:00","guid":{"rendered":"https:\/\/centricconsulting.com\/post\/powerapps-development-strategies-part-1_portal\/"},"modified":"2023-07-26T15:31:10","modified_gmt":"2023-07-26T19:31:10","slug":"powerapps-development-strategies-part-1_portal","status":"publish","type":"post","link":"https:\/\/centricconsulting.com\/blog\/powerapps-development-strategies-part-1_portal\/","title":{"rendered":"Power Apps Development Strategies"},"content":{"rendered":"

Successfully creating and managing Power Apps requires understanding how to plan for the solution before exploring the many tools that Microsoft provides. We walk through Power Apps development strategies to get you started.<\/h2>\n
\n

Microsoft<\/a> has done a fantastic job of encouraging organizations to explore Power Apps development. And if you’re reading this, either you’re interested in Power Apps<\/a>, or one of your business users created a Power App that is now critical to the company, and it is now yours to manage.<\/p>\n

I’ve spoken to many organizations that have started asking their business users to create their own Power Apps. However, those organizations often end up with developers sharing Power Apps across the organization that becomes critical to users.<\/strong> But, the business users who created the apps had no guidance, governance or cohesive strategy for designing and maintaining their creations.<\/p>\n

So, what should you do to get a handle on these Power Apps? Or to prevent this from happening in the first place?<\/p>\n

Begin With a Power Apps PMO<\/h2>\n

Don’t let that title scare you. For smaller organizations, this may be one or two people. For larger organizations, it may roll into a larger, defined program management office<\/a> (PMO), but the goal here is to have a single point for guidelines and for the governance of Power Apps design and management.<\/p>\n

This group should provide:<\/strong><\/p>\n

UI\/UX Guidelines<\/h3>\n

Colors, icons, fonts, form factors \u2013 Oh, my! You have a lot to consider, but by providing end-users with a consistent experience across your Power Apps, you can ensure a positive experience and decrease support and training costs as you maintain and deploy new apps. You also should decide which form factors you intend to support.<\/strong> Remember, Power Apps is not responsive, so deciding to support either phone or tablet \u2013 or both \u2013 will determine how you plan the development time for each.<\/p>\n

Security<\/h3>\n

Power Apps security is a fairly simplistic process. Users can either create or use apps shared with them. Plan different groups to make the management of sharing apps much easier. Use data access policies to ensure that users only use approved data sources in Power Apps when accessing business content. Define these policies from the outset to prevent data leakage. Consider augmenting Power Apps with Intune Mobile Application Management<\/a> to add an additional layer of security for mobile users.<\/strong><\/p>\n

Demand Management<\/h3>\n

As soon as your end-users understand they might be able to get their custom processes, the floodgates to requests will open. From new projects to feature requests, you should have a way for users to communicate what they need and the time frame they need it in.<\/strong> This becomes a meaningful way to manage and prioritize how you can meet their needs. You can use many tools for this step, such as using a particular platform to create your own.<\/p>\n

Change Management<\/h3>\n

With demand management comes change management<\/a>. Your users may request new features and functionality, but making sure they understand these changes will ensure they use the product most efficiently. Inform them. Over-communicate. The more they know about how the app works, the less likely they will need support in the future.<\/p>\n

Also, Power Apps regularly changes, and Microsoft constantly adds and deploys new features. When you edit a PowerApp, the app is automatically upgraded to the latest version of the platform, so understanding recent backend changes and how they may affect the controls, rules, and UI\/UX elements of your PowerApp is paramount.<\/strong><\/p>\n

You can find the latest feature releases here: What’s New<\/a>. One thing to note: Microsoft tends to publish significant changes, but not necessarily all minor changes or those they think will not affect user experience with the platform.<\/p>\n

These bug fixes can have unintended consequences that may affect how your PowerApp functions. This leads us to the next guideline for your PMO to monitor.<\/p>\n

Quality Assurance and Testing<\/h3>\n

Test your PowerApp. When you make a change, test it. When the PowerApp version is upgraded, test it. Then test it again. Implement standard testing policies that will be executed when the change occurs because change always occurs. Your testing policies will save you heartache and support costs.<\/p>\n

Microsoft Power Apps has many powerful tools within it, but you will want to spend some time upfront to understand those tools and create processes to manage them before turning them loose on your workers.<\/strong> Planning with a proper Power Apps PMO \u2014 even if it’s just a few people in a small organization \u2014 can prevent a lot of headaches.<\/p>\n

Power Apps Development Tools<\/h2>\n

Speaking of tools, now that you know what to plan for, you can start developing and managing these apps.<\/p>\n

Power Apps Design Studio (Web and App Versions)<\/h3>\n

I was initially going to compare and contrast the differences between using the app version or the web version of the Power Apps Design Studio. Then Microsoft went ahead and deprecated the app version. They probably did this because it was a memory hog, and they realized that web performance provided a better experience, especially for very complex Power Apps.<\/p>\n

I’m not going to dive into how to design a PowerApp with Design Studio. Still, it’s essential to understand that you or your teams should perform all development and management of Power Apps through the web version moving forward.<\/p>\n

Power Apps Environments<\/h3>\n

In Power Apps, you can segregate your Power Apps, connections and data policies into different containers that wall off environments from each other. For example, if you have both development and production environments, you can create Power Apps and connections with the same names.<\/p>\n

However, the Power Apps and connections have no knowledge of their peers in the other environment.<\/strong> This makes it easy to develop in one environment and then promote it to another environment without making too many changes.<\/p>\n

With data policies, you can create environments for distinct policies. You can also allow users to use business data, depending on their accessible environments.<\/p>\n

Versioning<\/h3>\n

Every time you save a Power App, it creates a new version of that Power App. I know because I make mistakes like this all the time \u2014 revising a PowerApp and then wanting to reuse an element from a previous version. With versioning, it’s easy to roll back to an earlier version with a button click.<\/p>\n

Versioning also can come in handy when Microsoft updates the underlying Power Apps platform.<\/strong> For example, let’s say you make a bunch of changes to your PowerApp on Friday, and on Saturday, Microsoft upgrades the Power Apps platform. When you edit the PowerApp on Monday, Power Apps automatically upgrades your app to the latest version, which you save and publish.<\/p>\n

In addition, if you then encounter an issue introduced by that Power Apps platform upgrade, you can roll your PowerApp back to the last good version of the specific version of Power Apps you know worked.<\/p>\n

\"PowerApps<\/a>

How to roll back to the last good version of Power Apps.<\/p><\/div>\n

Import\/Export<\/h3>\n

The ability to import and export Power Apps is an invaluable tool for managing across different environments (and tenants). Export will package up and save your PowerApp (and connections and Flows) into a zip file, which you can then use to create a new PowerApp in a different environment (or update one that is already there).<\/p>\n

Manually Editing Power Apps Files (not supported)<\/h3>\n

Believe it or not, if you’re in a pinch, you can actually edit the files Power Apps gives you when you export a PowerApp.<\/p>\n

As far as I know, Microsoft does not support this, and it is a bit tricky to do. But, if you’re adventurous \u2014 or if you have no other choice \u2014 here’s how you can do it:<\/p>\n

    \n
  1. Export your PowerApp. This will save it as a zip file to your local machine.<\/li>\n
  2. Extract the files to a folder. This will extract a manifest.json file and a Microsoft.PowerApps directory.<\/li>\n
  3. In the Microsoft.Power Apps directory, subfolders will be available, where you will eventually find various files. The one you want to focus on is the .msapps file.\n
  4. Download 7-Zip<\/a>. This will allow you to edit a file without removing it from the zip file. This is important, as I haven’t found a way to repackage .msapp files.<\/li>\n
  5. Change the file extension on your .msapp file to .zip.<\/li>\n
  6. Open 7-Zip and then open the newly renamed .zip file.<\/li>\n
  7. Most of the rules, controls, and more that make up your PowerApp are defined in the entities.josn file. Right-click that file, and click edit. This will open the file up in Notepad. You can copy and paste it into an editor of your choice, but you need to make sure you copy back any changes you make into the same Notepad file you opened.<\/li>\n
  8. Save the Notepad file. When you return to 7-zip, it will ask you if you want to update the file in the archive; click OK.<\/li>\n
  9. Rename the .zip file back to a .msapp file.<\/li>\n
  10. Re-zip the whole package (manifest.json and Microsoft.Powerapps directory).<\/li>\n
  11. Import back into Power Apps.<\/li>\n<\/ol>\n

    You just edited a Power Apps JSON file \u2013 which you shouldn’t really do \u2013 unless you need to make bulk wholesale changes throughout a PowerApp.<\/strong> (For example, I wanted to change how a variable was defined, and it was much easier and faster to do a “find and replace” in Notepad rather than changing it in the Power Apps Designer.) This is simply one example of a manual update you can make when Power Apps doesn’t give you the option.<\/p>\n

    Conclusion<\/h2>\n

    Microsoft Power Apps can be incredibly helpful to any business, whether you’re employing citizen developers or need to quickly spin up a customer-facing application.<\/p>\n

    But you need to have a Power Apps development strategy before diving into your development tools \u2014 and you need a thorough understanding of what each tool can do. Once you do both of these, there’s no limit to what you can create.<\/p>\n\n

    \n
    \n Power Platform can help you take Dynamics 365 to the next level.\n <\/div>\n
    \n \n\n Watch Our Webinar\n <\/a>\n <\/div>\n <\/div>\n

    This blog was originally published on Jo’s blog here<\/a> and here<\/a>.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"

    Creating and managing Power Apps requires understanding how to plan for the solution. We go through Power Apps development strategies to get started.<\/p>\n","protected":false},"author":86,"featured_media":33234,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_oasis_is_in_workflow":0,"_oasis_original":0,"_oasis_task_priority":"","_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","footnotes":""},"categories":[1],"tags":[18559],"coauthors":[15564],"acf":[],"publishpress_future_action":{"enabled":false,"date":"2024-07-22 08:45:49","action":"change-status","newStatus":"draft","terms":[],"taxonomy":"category"},"_links":{"self":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts\/14063"}],"collection":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/users\/86"}],"replies":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/comments?post=14063"}],"version-history":[{"count":0,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/posts\/14063\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/media\/33234"}],"wp:attachment":[{"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/media?parent=14063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/categories?post=14063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/tags?post=14063"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/centricconsulting.com\/wp-json\/wp\/v2\/coauthors?post=14063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}