Leistung, Stabilität und Zuverlässigkeit Ihrer Komponenten mit dem Lösungsprüfer verbessern
Um komplexe geschäftliche Anforderungen zu liefern, können Ersteller häufig mit fortschrittlichen Lösungen arbeiten, die die Microsoft Dataverse-Plattform 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üferfunktion können Sie eine umfangreiche Prüfung der statischen Analyse auf Ihren Lösungen für einen Satz von Regeln der bewährten Methode ausführen und diese problematischen Muster schnell ermitteln. Nach der Überprüfung erhalten Sie einen Bericht, der Probleme aufzeigt, die bestimmt werden, welche Komponenten und Code betroffen sind und die Dokumentation verknüpft, die beschreibt, wie ein Problem zu beheben ist.
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)
Lösungsprüfer abeiten mit nicht verwalteten Lösungen, die von einer Umgebung exportiert werden.
Hinweis
- In diesem Thema wird erläutert, wie Sie den Lösungsprüfer über das Herstellerportal Power Apps ausführen. Ein PowerShell-Modul ist ebenfalls verfügbar, das Sie verwenden können, um direkt mit dem Service zu interagieren. 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
- 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 der Lösungsüberprüfung garantiert nicht, dass ein Lösungsimport erfolgreich ist. Die für die Lösung durchgeführten statischen Analyseprüfungen kennen den konfigurierten Status der Zielumgebung nicht, und der Erfolg des Imports kann von anderen Lösungen oder Konfigurationen in der 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.
Beachten Sie Folgendes:
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 eine verwalteten Lösung von Drittanbieter. 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.
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 | Verwenden Sie keine Debugskripts 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 nicht die Funktion „eval” oder deren funktionale Entsprechungen. | 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 (z. B. 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 Details finden Sie in den Power Apps-Formelverweisen. | 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).
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für