Sunday, September 08, 2019

Introducing the PowerApps Checker PowerShell module to check PowerApps solution quality

Microsoft recently updated their tooling for checking the quality of  CDS/PowerApps/Dynamics 365 solution files by releasing the PowerApps checker PowerShell Module . With this new PowerShell module it is possible to receive a detailed report for your solutions identifying problems/issues taking into account best practices around performance, usage, upgrade readiness, supportability and maintainability. The static code analysis is based on rulesets which are provided by Microsoft and which are updated on a regular basis.

The main difference with the previously released tooling in the PowerApps maker portal (See Announcing general availibility of Solution Checker) is that you can now also do checks to validate both managed and unmanaged solutions (CRM2011 to current) so include on-premise solution validation.

The PowerShell module can be installed from https://www.powershellgallery.com/packages/Microsoft.PowerApps.Checker.PowerShell/1.0.2  and provides a number of commands that you can use to perform the checks.



Before you can use the Invoke-PowerAppsChecker PowerShell cmdlet ,  you need to create an Azure Active Directory (AAD) application in a tenant with PowerApps or Dynamics 365 licenses. Follow the steps on Get started using the Microsoft.PowerApps.Checker.PowerShell module to correctly do this using either PowerShell or manually.

The PowerAppsChecker cmdlets in interactive-mode (meaning you need to login everytime you run the checker) or using an application-based token.

Behind the scenes the PowerShell module will connect to the PowerApps checker Web API

The output of Invoke-PowerAppsChecker  is a zip file containing one or more reports in a standardized JSON format. The report format is based on static analysis results referred to as Static Analysis Results Interchange Format (SARIF).

By analyzing results and fixing indicated errors, you can learn how to write high-quality code and decrease the cost of fixing issues later.


Depending on the size & complexity of your project, I might be recommended to include it as part of your ALM strategy.



Other blog post:

No comments: