Verbessern Sie Leistung, Stabilität und Zuverlässigkeit der Lösung
Lösungen werden zum Verteilen Power Platform von Objekten wie Apps, Tabellen, Flows, Webressourcen und Plug-Ins verwendet. In diesem Artikel wird die Funktion „Solution Checker“ vorgestellt, ein leistungsstarkes Tool, das eine umfassende statische Analyse Ihrer Lösungsobjekte anhand einer Reihe von Best-Practice-Regeln durchführt. Mithilfe des Lösungsprüfers können Sie problematische Muster in Ihren Komponenten schnell erkennen und detaillierte Berichte erhalten, in denen Probleme und betroffene Komponenten hervorgehoben werden und Links zu Dokumentationen mit Anleitungen zur Lösung der einzelnen Probleme bereitgestellt werden. Dadurch wird sichergestellt, dass Ihre Lösungen hinsichtlich Leistung, Stabilität und Zuverlässigkeit optimiert sind.
Lösungsprüfer abeiten mit nicht verwalteten Lösungen, die von einer Umgebung exportiert werden.
Sie können den Lösungsprüfer entweder von Power Apps (make.powerapps.com) oder mithilfe von PowerShell ausführen.
So hilft Ihnen der Lösungschecker
Um komplexe Geschäftsanforderungen zu erfüllen, können Hersteller häufig auf hochentwickelte Lösungen zurückgreifen, die die Power Platform anpassen und erweitern. Mit der erweiterten Implementierungen kommt ein erhöhtes Risiko, wo, Leistung und Stabilität Zuverlässigkeitsprobleme eingegeben werden, und sich auf die Benutzererfahrung negativ auswirken können. Identifizieren und verstehen, wie diese Probleme zeitaufwendig und kompliziert sein können. Mit der Lösungsprüffunktion können Sie Ihre Lösung innerhalb von Sekunden prüfen. Dabei wird eine Reihe von Best-Practice-Regeln verwendet, um problematische Muster schnell zu identifizieren. Nach Abschluss der Prüfung erhalten Sie einen detaillierten Bericht in Power Apps sowie eine E-Mail-Nachricht, in der die erkannten Probleme, die betroffenen Komponenten und der Code sowie Links zu Dokumentationen mit einer Beschreibung der Lösung der einzelnen Probleme aufgeführt sind.
Der Lösungsprüfer analysiert die Lösungskomponente:
- Dataverse benutzerdefinierte Workflowaktivitäten
- Dataverse-Webressourcen (HTML) und JavaScript
- Dataverse-Konfigurationen, wie SDK-Nachrichtenschritte
- Power Automate-Flows (über Flowprüfung)
- Power Fx-Ausdrücke (über App-Überprüfung)
Hinweis
- Die Lösungsüberprüfung unterstützt globale Variablen für ECMAScript 2015 (ES6) und bis zu ECMAScript 2018 (ES9)-Syntax. Wenn JavaScript mithilfe globaler Variablen nach ES6 oder mithilfe von Syntax nach ES9 erkannt wird, wird ein Problem mit der nicht unterstützten Websyntax für die Webressource gemeldet.
- Die Verwendung des Lösungsprüfers garantiert nicht, dass der Import einer Lösung erfolgreich ist. Die für die Lösung durchgeführten statischen Analyseprüfungen kennen den konfigurierten Status des Ziels Umgebung nicht und der erfolgreiche Import kann von anderen Lösungen oder Konfigurationen in Umgebung abhängen.
Ausführen es Lösungsprüfer
Melden Sie sich bei Power Apps an.
Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.
Neben der nicht verwalteten Lösung, die Sie auch zum Analysieren möchten, wählen Sie ... aus, zeigen Sie auf Lösungsprüfer und dann auf Ausführen.
Die Befehlsschaltfläche Lösungsprüfung verfügt über eine Ladeanzeige, und Sie sehen einen Wird ausgeführt... Status in der Spalte Lösungsprüfung der Liste Lösung.
Hinweis
- Der Lösungsprüfer kann einige Minuten dauern, um die Analyse zu starten.
- Sie erhalten eine E-Mail-Benachrichtigung und eine Benachrichtigung im Bereich Benachrichtigungen auf der Seite Power Apps, wenn die Überprüfung abgeschlossen ist.
- Zum Anzeigen des Berichts Wenn eine Prüfung abgeschlossen ist.
Prüfvorgang abbrechen
Wenn Sie E-Mails senden, um Lösungen in Ihrer Umgebung übermitteln zu können, kann die Prüfung über den Statusbereich im oberen rechten Bereich der Lösungen storniert werden.
Wenn Sie eine Prüfung abbrechen, läuft die Lösungsprüfung nicht weiter und der Lösungsprüfungsstatus kehrt zum vorherigen Zustand zurück.
Lösungsprüfer-Status
Wenn Sie den Lösungsprüfer in Ihrer Umgebung installieren, steht die Lösungsprüfung in der Lösungen zur Verfügung. In dieser Spalte werden die Lösungsanalysestatus für eine Lösung angezeigt.
Status | Beschreibung |
---|---|
Ist nicht ausgeführt worden | Die Lösung wurde nicht analysiert. |
Wird ausgeführt... | Die Lösung wird analysiert. |
Konnte nicht abgeschlossen werden | Lösungsanalyse wurde angefordert, aber die Analyse wurde nicht erfolgreich abgeschlossen. |
Ergebnisse erhalten Datum und Uhrzeit | Lösungsanalyse abgeschlossen und Ergebnisse können heruntergeladen werden. |
Konnte nicht abgeschlossen werden. Ergebnisse erhalten Datum und Uhrzeit | Die aktuelle Analyseanforderung in nicht erfolgreich abgeschlossen. Die letzten erfolgreichen Ergebnisse können heruntergeladen werden. |
Geprüft von Microsoft | Dies ist eine Microsoft-verwaltete Lösung. Lösungsanalyse ist für diese Lösungen nicht erlaubt. |
Geprüft von Publisher | Dies ist ein Nicht-Microsoft-verwaltete Lösung. Für die Erstellung der Lösungsanalyse nicht verfügbar. |
Wiederholen Sie den Lösungsprüferbericht
Wenn eine Lösungsprüfung abgeschlossen ist, können Sie den Analysebericht im Portal anzeigen oder den Bericht über Ihren Webbrowser herunterladen. Im Portal haben Sie die Möglichkeit, die Ergebnisse nach Problem, Speicherort oder nach Schweregrad zu filtern und zu sortieren und detaillierte Informationen zu den in Ihrer Lösung gefundenen Problemen anzuzeigen.
Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.
Wählen Sie neben der nicht verwalteten Lösung, für die Sie den Bericht über den Solution Checker anzeigen möchten, ..., zeigen Sie auf Solution Checker, und wählen Sie dann Ergebnisse anzeigen.
Wählen Sie ein Problem aus, um die Details und Anleitungen zur Lösung anzuzeigen.
Die Ergebnisse der Lösungsprüfung stehen auch zum Download bereit. Die Lösungsprüferzip-Datei wird heruntergeladen in den Ordner, der über dem Webbrowser angegeben ist. Der Download steht im Excel Format und enthält einige Visualisierungen und Spalten, die Ihnen dabei helfen, die Auswirkungen, die den Typ und der Ort ein Problem feststellen, das in der Lösung erkannt wird. Ein Link zu detaillierten Anweisungen, wie das Problem auch bereitgestellt wird.
- Wählen Sie im Navigationsbereich Lösungen aus. Wenn sich das Element nicht im linken Seitenbereich befindet, wählen Sie …Mehr und dann das gewünschte Element aus.
- Wählen Sie neben der nicht verwalteten Lösung, für die Sie den Bericht über den Solution Checker herunterladen möchten, ..., zeigen Sie auf Solution Checker, und wählen Sie dann Ergebnisse herunterladen.
- Die Lösungsprüferzip-Datei wird heruntergeladen in den Ordner, der über dem Webbrowser angegeben ist.
Hier finden Sie eine Zusammenfassung einer Spalte im Bericht.
Berichtsspalte | Beschreibung | Sie betrifft nur Komponente. |
---|---|---|
Issue | Der Titel des Problems ist in der Lösung identifiziert. | Alle |
Kateg. | Die Kategorisierung des identifizierten Problems, z. B. Leistung, Wartbarkeit, Nutzung, Unterstützbarkeit, Design, Sicherheit, Barrierefreiheit oder Upgradebereitschaft. | Alle |
Schweregrad | Stellt die möglichen Auswirkungen des Problems identifizierten dar. Verfügbare Auswirkungstypen sind Kritisch, Hoch, Mittel, Niedrig und Informativ. | Alle |
Anweisungen | Verknüpfen Sie Artikel, die das Problem aufführen, beeinflussen und Aktionen empfehlen. | Alle |
Komponente | Die Lösungskomponente, in der das Problem identifiziert wird. | Alle |
Location | Der Standort und/oder die Quelldatei der Komponente, in der das Problem ist, wie z. B. die Assembly oder der JavaScript-Dateiname. | Alle |
Linie # | Der Zeilennummernverweis des Problems in der betroffenen Webressourcenkomponente. | Webressourcen |
Modul | Modulname,der das Problem identifiziert, das in der angegeben Assembly erkannt wurde. | Benutzerdefinierte Workflow-Aktivität |
Type | Typ des Problems in der identifizierten Assembly. | Benutzerdefinierte Workflow-Aktivität |
Mitglied | Typ des Problems in der identifizierten Assembly. | Benutzerdefinierte Workflow-Aktivität |
Anweisung | Die Codeanweisung oder die Konfiguration, die das Problem auslöst. | Alle |
Kommentare | Details zum Problem, die Auflösungsstufen auf hohem Niveau verfügen. | Alle |
Lösungsprüfungsregeln lokal ausführen
Sie können Lösungsprüfregeln in Ihrer Entwicklungsumgebung ausführen, um Probleme viel früher zu erkennen, während Sie Ihre Lösungsressourcen erstellen. Dies wird derzeit für Webressourcen (JavaScript und TypeScript) unterstützt. Weitere Einzelheiten finden Sie im NPM-Paket @microsoft/eslint-plugin-power-apps.
Ausführen des Lösungsprüfers mit PowerShell
Es steht ein PowerShell-Modul zur Verfügung, mit dem Sie direkt mit dem Dienst interagieren können. Das Microsoft.PowerApps.Checker.PowerShell-Modul kann zur Analyse von nicht verwalteten Lösungen für Power Apps-Umgebungen oder zur Automatisierung und Integration des Dienstes in Ihre Build und Release Pipelines verwendet werden. Mehr Informationen: Microsoft.PowerApps.Checker.PowerShell Übersicht
Bewährte Methoden, die vom Lösungsprüfer verwendet werden
In der folgenden Tabelle sind Komponententyp, Regelbeschreibung, Schweregrad und Kategorie aufgeführt. Kritische Verstöße werden blockiert oder es erfolgt eine Warnung bei Konfiguration für die Durchsetzung der Lösungsprüfung mit verwalteten Umgebungen. Weitere Informationen: Lösungsüberprüfung in verwalteten Umgebungen verwenden
Lösungskomponente | Regelname | Regelbeschreibung | Schweregrad | Kategorie |
---|---|---|---|---|
Plug-in oder Workflowaktivität | meta-remove-dup-reg | Vermeiden Sie doppelte Dataverse-Plugin-Registrierungen. | Kritisch | Leistung |
Plug-in oder Workflowaktivität | meta-avoid-reg-no-attribute | Fügen Sie Filterattribute mit Dataverse-Plugin-Registrierungen hinzu. | Mäßig | Leistung |
Plug-in oder Workflowaktivität | meta-avoid-reg-retrieve | Seien Sie vorsichtig mit Dataverse-Plugins, die für Retrieve- und RetrieveMultiple-Nachrichten registriert sind. | Mäßig | Leistung |
Plug-in oder Workflowaktivität | meta-remove-inactive | Inaktive Konfigurationen unter Dataverse entfernen. | Niedrig | Verwaltbarkeit |
Plug-in oder Workflowaktivität | meta-avoid-crm4-event | Verwenden Sie keine Microsoft Dynamics CRM 4.0-Plug-In-Registrierungs-Phase. | Mäßig | Upgradebereitschaft |
Plug-in oder Workflowaktivität | meta-avoid-retrievemultiple-annotation | Vermeiden Sie die Registrierung eines Plug-Ins bei RetrieveMultiple der Anmerkung. | Hoch | Verbrauch |
Modellbasierte App | meta-license-sales-entity-operations | Die Lösung enthält Entitäten mit eingeschränkten SDK-Nachrichten und -Vorgängen, für die eine gültige Dynamics 365-Lizenz erforderlich ist. | Niedrig | Lizenzierung |
Modellbasierte App | meta-license-fieldservice-customcontrols | Die Lösung enthält benutzerdefinierte Steuerelemente, die eine gültige Dynamics 365 Field Service-Lizenz erfordern. | Niedrig | Lizenzierung |
Modellbasierte App | meta-license-fieldservice-entity-operations | Die Lösung enthält Entitäten mit eingeschränkten SDK-Nachrichten und -Vorgängen, die eine gültige Dynamics 365 Field Service-Lizenz erfordern. | Niedrig | Lizenzierung |
Webressourcen | use-async | Interagieren mit HTTP- und HTTPS-Ressourcen asynchron. | Kritisch | Leistung |
Webressourcen | avoid-modals | Vermeiden Sie die Nutzung von modalen Dialogfelder. | Hoch | Unterstützung |
Webressourcen | avoid-dom-form | Hoch | Unterstützung | |
Webressourcen | avoid-dom-form-event | Hoch | Unterstützung | |
Webressourcen | avoid-crm2011-service-odata | Zielen Sie nicht auf den Microsoft Dynamics CRM 2011 ODatas 2.0-Endpunkt ab. | Kritisch | Upgradebereitschaft |
Webressourcen | avoid-crm2011-service-soap | Zielen Sie nicht auf die Microsoft Dynamics CRM 2011 SOAP-Services ab. | Kritisch | Upgradebereitschaft |
Webressourcen | avoid-loadtheme | Verwenden Sie nicht die loadTheme Fluent v8-API. |
Niedrig | Unterstützung |
Webressourcen | avoid-browser-specific-api | Verwenden Sie keine Internet Explorer-Vorgänger APIs Internet oder -Browser-Plug-Ins. | Kritisch | Upgradebereitschaft |
Webressourcen | avoid-unpub-api | Hoch | Unterstützung | |
Webressourcen | avoid-window-top | Hoch | Unterstützung | |
Webressourcen | avoid-2011-api | Verwenden Sie kein veraltetes Microsoft Dynamics CRM 2011-Objektmodell. Folgen Sie stattdessen der Dataverse Web-API-Dokumentation. | Hoch | Upgradebereitschaft |
Webressourcen | use-relative-uri | Verwenden Sie keine absoluten Dataverse-Endpunkt-URLs. | Mäßig | Verwaltbarkeit |
Webressourcen | use-cached-webresource | Mäßig | Leistung | |
Webressourcen | use-client-context | Nutzen Sie Client-Kontexte. | Mäßig | Upgradebereitschaft |
Webressourcen | use-navigation-api | Verwenden Sie Navigations-APIs. | Mäßig | Upgradebereitschaft |
Webressourcen | use-offline | Mäßig | Upgradebereitschaft | |
Webressourcen | do-not-make-parent-assumption | Hoch | Design | |
Webressourcen | use-org-setting | Nutzen Sie Organisationseinstellungen. | Mäßig | Upgradebereitschaft |
Webressourcen | use-global-context | Mäßig | Upgradebereitschaft | |
Webressourcen | use-grid-api | Verwenden Sie Gitter-APIs. | Mäßig | Upgradebereitschaft |
Webressourcen | use-utility-dialogs | Mäßig | Verbrauch | |
Webressourcen | avoid-isActivityType | Ersetzen Sie Xrm.Utility.isActivityType method with new Xrm.Utility.gettableMetadata und verwenden Sie nicht die Menübandregeln. | Mäßig | Upgradebereitschaft |
Webressourcen | meta-avoid-silverlight | Die Nutzung der Webressource Silverlight (XAP) ist veraltet. | Mäßig | Upgradebereitschaft |
Webressourcen | remove-debug-script | Vermeiden Sie die Einbindung von Debug-Skripten in Nicht-Entwicklungsumgebungen. | Mäßig | Verbrauch |
Webressourcen | use-strict-mode | Verwenden Sie den strengem Modus, wenn möglich. | Mäßig | Verbrauch |
Webressourcen | use-strict-equality-operators | Verwenden Sie strenge Gleichheitsoperatoren. | Mäßig | Verbrauch |
Webressourcen | avoid-eval | Verwenden Sie weder die eval Funktion noch ihre funktionalen Äquivalente. |
Kritisch | Sicherheit |
Webressourcen | avoid-with | Den 'with'-Operator nicht verwenden. | Hoch | Leistung |
Webressourcen | remove-alert | Verwenden Sie nicht die „alert“-Funktion oder ihre funktionalen Entsprechungen. | Mäßig | Verbrauch |
Webressourcen | remove-console | Verwenden Sie keine Methoden für die Konsole. | Mäßig | Verbrauch |
Webressourcen | avoid-ui-refreshribbon | Vermeiden Sie die Verwendung von „refreshRibbon“ in „form onload“ und „EnableRule“. | Kritisch | Leistung |
Webressourcen | use-getsecurityroleprivilegesinfo | Vermeiden Sie userSettings.securityRolePrivileges. Verwenden Sie stattdessen userSettings.getSecurityRolePrivilegesInfo. | Hoch | Leistung |
Webressourcen | use-appsidepane-api | Verwenden Sie Xrm.App.sidePanes.createPane anstelle von Xrm.Panels.loadPanel. | Mäßig | Upgradebereitschaft |
Webressourcen | web-sdl-no-cookies | HTTP-Cookies sind ein alter clientseitiger Speichermechanismus mit inhärenten Risiken und Einschränkungen. Verwenden Sie stattdessen Web Storage, IndexedDB oder andere moderne Methoden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-document-domain | Schreibvorgänge in die Eigenschaft „document.domain“ müssen überprüft werden, um eine Umgehung von Same-Origin-Prüfungen zu vermeiden. Die Verwendung von Top-Level-Domänen wie azurewebsites.net ist strengstens untersagt. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-document-write | Aufrufe von document.write oder document.writeln manipulieren DOM direkt ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-html-method | Direkte Aufrufe der Methode html() manipulieren häufig (beispielsweise im jQuery-Framework) das DOM ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-inner-html | Zuweisungen zu innerHTML- oder outerHTML-Eigenschaften manipulieren DOM direkt ohne jegliche Bereinigung und sollten vermieden werden. Verwenden Sie stattdessen document.createElement() oder ähnliche Methoden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-insecure-url | Unsichere Protokolle wie HTTP oder FTP sollten durch ihre verschlüsselten Gegenstücke (HTTPS, FTPS) ersetzt werden, um zu vermeiden, dass potenziell sensible Daten im Klartext über nicht vertrauenswürdige Netzwerke gesendet werden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-msapp-exec-unsafe | Aufrufe von MSApp.execUnsafeLocalFunction() umgehen die Skriptinjektionsvalidierung und sollten vermieden werden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-postmessage-star-origin | Geben Sie immer einen bestimmten Zielursprung an, nicht „*“, wenn Sie Daten mit postMessage an andere Fenster senden, um Datenlecks außerhalb der Vertrauensgrenze zu vermeiden. | Mäßig | Sicherheit |
Webressourcen | web-sdl-no-winjs-html-unsafe | Aufrufe von WinJS.Utilities.setInnerHTMLUnsafe() und ähnlichen Methoden führen keine Eingabevalidierung durch und sollten vermieden werden. Verwenden Sie stattdessen WinJS.Utilities.setInnerHTML(). | Mäßig | Sicherheit |
Canvas-App | app-formula-issues-high | Weitere Einzelheiten finden Sie in der Power Apps Formelreferenz . | Kritisch | Design |
Canvas-App | app-formula-issues-medium | Weitere Details finden Sie in den Power Apps-Formelverweisen. | Mäßig | Design |
Canvas-App | app-formula-issues-low | Weitere Details finden Sie in den Power Apps-Formelverweisen. | Niedrig | Design |
Canvas-App | app-use-delayoutput-text-input | Verwenden Sie in einigen Szenarien verzögertes Laden, um die Leistung zu verbessern. | Mäßig | Leistung |
Canvas-App | app-reduce-screen-controls | Begrenzen Sie die Anzahl der App-Steuerelemente, um die Leistung zu verbessern. | Mäßig | Leistung |
Canvas-App | app-include-accessible-label | Verwenden Sie explizite Beschriftungen, um die Barrierefreiheit der App zu verbessern. | Mäßig | Barrierefreiheit |
Canvas-App | app-include-alternative-input | Stellen Sie sicher, dass alle interaktiven Elemente für alternative Eingaben zugänglich sind. | Mäßig | Barrierefreiheit |
Canvas-App | app-avoid-autostart | Vermeiden Sie die Verwendung des Autostarts bei Spielern innerhalb einer App. | Mäßig | Barrierefreiheit |
Siehe auch
Bewährte Methoden sowie Anweisungen zum Dataverse
Best Practices und Anleitungen für modellgetriebene Anwendungen
Häufige Probleme und Lösungen für Solution Checker
Hinweis
Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)
Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).