Application lifecycle management (ALM) is a vital part of a successful strategy for Power Platform projects. Contoso has provisioned a new development instance and would like to set up a build and deploy process where modifications of any of the components are only performed in the development environment and then deployed as a managed solution to the production environment. Components required to be deployed include a model-driven app and a canvas app. They also would like to take advantage of new tools like Solution Checker to monitor the health of what they are building.
You will be packaging components as a new unmanaged solution in the development environment and deploy, patch, and upgrade this solution in the production environment as managed.
The lab requires two PowerApps environments with a Common Data Service database created and the sample apps installed.
You are working in a shared tenant. Do not do your exercises in the default environment. You have been assigned a development environment and a production environment for this course.
Note: Specifically, for the labs in this course, it is best always to use a private/incognito browser session.
Provided for students:
The following have been identified as requirements you must implement to complete the project.
In this exercise, you will be preparing your new environment with some existing assets, so we can then look at how we can package all this into a solution file and deploy.
Task 1– Install solution checker.
Task 2– Import solution ContosoBase. Publish it and confirm the model-driven Account Project Tracker App and its sitemap have imported.
Task 3– Import canvas app package named Accounts; open the app, and authorize its use.
The solution checker feature is a static analysis tool that reviews the solutions you build looking for anything that might impact performance, stability, and reliability of what you build. Currently, it requires a small installation; in the future, it will be pre-installed.
Note: As of the writing of this document, this feature is actively being added to all data centers. If you find no Solution Checker in the ribbon of your environment, don’t worry! That means you already have it and can proceed to the next task.
In this task, you will import an unmanaged solution to your environment. This contains a small PowerApps model-driven app that we will use later.
In this task, you will import a canvas application into your environment. We are doing this using the old standalone import capability that doesn’t use solutions so we can bring in a canvas app that isn’t solution aware and then show you how to make it solution aware.
In this exercise, you will start building your new solution. The first step is to create a publisher and the actual solution container.
Each solution is linked to a solution publisher. The solution publisher provides information about how to contact the publisher as well as customization prefix value. When you create things like an entity that prefix is part of the name to keep it unique. For example, Contoso might use a prefix of contoso, and if they created a new entity named Project, the logical name would be contoso_project. This ensures that if another app is installed that also has an entity named Project, it won’t collide with others.
Task 1: Create a solution and a publisher, both named Account Project Tracker. The publisher prefix should be set to apt. Add the following existing components:
Task 2: Add a new entity with the name Project
In this task, you will create a publisher and a new solution.
In this task, you will add new Project entity to the solution.
In this exercise, you will be exporting your solution from the development environment and importing it into the production environment.
You will export both an unmanaged solution and a managed solution. The unmanaged solution is for if you need to re-create your development environment in the future. The managed solution is the solution you will import into production. You should always have a matching unmanaged solution anytime you export a managed solution.
Task 1: Run solution checker and correct any issues found.
Task 2: Export solution, both managed and unmanaged. Deploy the managed solution to production.
Task 3: Test your work in the production environment.
You will fix these errors next.
var formContext = executionContext.getFormContext();
var name = formContext.getAttribute(“name”).getValue();
It this task, you will export the solution you created and import it into your “prod” environment.
In this task, you will test the app in the solution.
In this exercise, you will use the patch and upgrade features of Solutions. Patches allow transporting only the changes you make. For example, if you fix the length of a field, you would add the entity and just that field to the patch solution and then that would be all you transport to production. Patches do require the initial release solution to be installed in order to install a patch.
You got the feedback below:
User doesn’t always have the Start and End Date of projects and needs to be able to create projects without these fields.
Note: In the interest of time, we have not included steps about unit testing your work and changes. In real-world implementations it’s always important to test as you go, even for the smallest of changes.
Task 1: Clone a patch and remove the requirement for Start and End Date fields.
Task 2: Import the patch to production.
Task 3: Clone solution, remove field, add your canvas app, and export solution.
Task 4: Import cloned solution to production.
In this task, you will create a “clone a patch” solution and remove the requirement for Start Date and End Date of the Project entity.
In this task, you will import the Patch solution into your “Production” environment.
When you are ready to create the next version of your solution and are done patching the current version, you clone the solution to create the next version. This combines all patches back into the base solution file and makes the base solution file editable for you to build your next version of the solution. After being combined with the base solution, all patches are removed, and you are left with only the base solution.
You realized the Cost field in no longer needed because it is roll-up field from tasks that will be added in future date.
You also now know that you can include your canvas app in your solution and move it through your ALM process at the same time.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.