Verbeter de prestaties, stabiliteit en betrouwbaarheid van de oplossing
Oplossingen worden gebruikt om objecten te distribueren, zoals apps, tabellen, stromen, webbronnen en plug-ins. Power Platform In dit artikel wordt de oplossingscontrolefunctie geïntroduceerd, een krachtige tool die een uitgebreide statische analyse van uw oplossingsobjecten uitvoert op basis van een reeks best practice-regels . Met de oplossingscontrole kunt u snel problematische patronen in uw componenten identificeren en gedetailleerde rapporten ontvangen waarin problemen en getroffen componenten worden gemarkeerd. Ook vindt u hier koppelingen naar documentatie over hoe u elk probleem kunt oplossen. Zo bent u ervan verzekerd dat uw oplossingen optimaal presteren, stabiel zijn en betrouwbaar zijn.
Oplossingscontrole werkt met onbeheerde oplossingen die vanuit een omgeving kunnen worden geëxporteerd.
U kunt de oplossingscontrole uitvoeren vanuit Power Apps (make.powerapps.com) of met PowerShell.
Hoe de oplossingscontrole u helpt
Om te voldoen aan complexe zakelijke vereisten, kunnen makers vaak zeer geavanceerde oplossingen gebruiken die de Power Platform aanpassen en uitbreiden. Geavanceerde implementaties brengen een verhoogde kans op problemen met prestaties, stabiliteit en betrouwbaarheid met zich mee en dat kan weer een negatief effect hebben op de eindgebruikerservaring. Het kan zeer ingewikkeld en tijdrovend zijn om deze problemen vast te stellen en er een oplossing voor te vinden. Met de oplossingscontrolefunctie kunt u binnen enkele seconden een controle uitvoeren op uw oplossing. Hierbij wordt gebruikgemaakt van een reeks best practice-regels om snel problematische patronen te identificeren. Nadat de controle is voltooid, ontvangt u een gedetailleerd rapport in Power Apps en in een e-mailbericht met daarin de geïdentificeerde problemen, de betrokken componenten en code en koppelingen naar documentatie waarin wordt beschreven hoe u elk probleem kunt oplossen.
Met de oplossingscontrole worden de volgende oplossingsonderdelen geanalyseerd:
- Dataverse aangepaste werkstroomactiviteiten
- Dataverse-webresources (HTML en JavaScript)
- Dataverse-configuraties, zoals SDK-berichtstappen
- Power Automate-stromen (via stroomcontrole)
- Power Fx-expressies (via app-controle)
Notitie
- Oplossingscontrole ondersteunt globale variabelen voor ECMAScript 2015 (ES6) en syntaxis tot en met ECMAScript 2018 (ES9). Wanneer JavaScript wordt gedetecteerd met globale variabelen later dan ES6 of syntaxis later dan ES9, wordt een webprobleem door niet-ondersteunde syntaxis voor de webresource gemeld.
- Het gebruik van de oplossingscontrole garandeert niet dat het importeren van de oplossing succesvol zal zijn. De statische analysecontroles die op de oplossing worden uitgevoerd, kennen de geconfigureerde status van de bestemming omgeving niet en het succes van de import kan afhankelijk zijn van andere oplossingen of configuraties in omgeving.
De oplossingscontrole uitvoeren
Meld u aan bij Power Apps.
Selecteer Oplossingen in het linkerdeelvenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
Naast de onbeheerde oplossing die u wilt analyseren, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Uitvoeren.
De opdrachtknop Oplossingscontrole heeft een laadindicator en u ziet het bericht Actief... in de kolom Oplossingcontrole van de lijst Oplossing.
Notitie
- De oplossingcontrole kan een paar minuten duren voordat de analyse is voltooid.
- U ontvangt een e-mailbericht en een melding in het gebied Meldingen van de Power Apps-site wanneer de controle is voltooid.
- Geef het rapport weer wanneer de controle is voltooid.
Een controle annuleren
Nadat u een oplossingscontrole in uw omgeving hebt ingediend, kan de controle worden geannuleerd via het statusdeelvenster rechtsboven op de pagina Oplossingen.
Wanneer u een controle annuleert, stopt de oplossingcontrole met uitvoeren en wordt de status van de oplossingcontrole weer op de vorige status ingesteld.
Statuswaarden oplossingscontrole
Als u de oplossingscontrole in uw omgeving installeert, wordt de kolom Oplossingscontrole beschikbaar in de lijst Oplossingen. In deze kolom worden de statuswaarden van de oplossingsanalyse voor een oplossing weergegeven.
Status | Beschrijving |
---|---|
Is niet uitgevoerd | De oplossing is nooit geanalyseerd. |
Wordt uitgevoerd | De oplossing wordt geanalyseerd. |
Kan niet worden voltooid | Oplossingsanalyse is aangevraagd, maar de analyse is niet voltooid. |
Resultaten vanaf datum en tijd | Oplossingsanalyse is voltooid en de resultaten kunnen worden gedownload. |
Kan niet worden voltooid. Resultaat vanaf datum en tijd | De laatste analyseaanvraag is niet voltooid. De laatste succesvolle resultaten kunnen worden gedownload. |
Gecontroleerd door Microsoft | Dit is een door Microsoft beheerde oplossing. Oplossingsanalyse wordt niet toegestaan voor deze oplossingen. |
Gecontroleerd door Publisher | Dit is een niet-Microsoft beheerde oplossing. Momenteel is er geen oplossingsanalyse beschikbaar voor deze oplossingen. |
Het oplossingscontrolerapport bekijken
Wanneer een oplossingscontrole is voltooid, kunt u het analyserapport in de portal bekijken of het rapport downloaden vanuit uw webbrowser. In de portal hebt u opties om resultaten te sorteren op Probleem, Locatie of op Ernst en gedetailleerde informatie te bekijken over problemen die in uw oplossing zijn aangetroffen.
Selecteer Oplossingen in het linkerdeelvenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
Naast de onbeheerde oplossing waarbij u het oplossingscontrolerapport wilt bekijken, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten weergeven.
Selecteer een probleem om de details en richtlijnen voor het oplossen ervan te bekijken.
De resultaten van de oplossingscontrole kunnen ook worden gedownload. Het zipbestand van de oplossingcontrole wordt gedownload naar de map die door uw webbrowser is opgegeven. Het rapport is in de indeling Excel te downloaden en bevat verschillende visualisaties en kolommen die u helpen bij het vaststellen van de gevolgen, het type en de locatie van elk probleem dat in uw oplossing is gedetecteerd. Er wordt ook een koppeling naar gedetailleerde richtlijnen voor het oplossen van het probleem verschaft.
- Selecteer Oplossingen in het linkerdeelvenster. Als het item zich niet in het deelvenster van het zijpaneel bevindt, selecteert u …Meer en selecteert u vervolgens het gewenste item.
- Naast de onbeheerde oplossing waarnaar u het oplossingscontrolerapport wilt downloaden, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten downloaden.
- Het zipbestand van de oplossingcontrole wordt gedownload naar de map die door uw webbrowser is opgegeven.
Hier vindt u een overzicht van elke kolom in het rapport.
Rapportkolom | Beschrijving | Geldt voor onderdeel |
---|---|---|
Probleem | De titel van het probleem dat in de oplossing is vastgesteld | Alle |
Categorie | De categorisering van het geïdentificeerde probleem, zoals Prestaties, Onderhoudbaarheid, Gebruik, Ondersteuning, Ontwerp, Beveiliging, Toegankelijkheid of Upgradegereedheid. | All |
Ernst | Het potentiële gevolg van het vastgestelde probleem. Beschikbare gevolgtypen zijn Kritiek, Hoog, Normaal, Laag en Informatief. | All |
Richtlijnen | Koppeling naar artikel waarin het probleem, het gevolg en de aanbevolen actie worden beschreven. | Alle |
Onderdeel | Het oplossingsonderdeel waar het probleem is vastgesteld. | Alle |
Location | De locatie en/of het bronbestand van het onderdeel waar het vastgestelde probleem is opgetreden, zoals de assembly of JavaScript-bestandsnaam. | Alle |
Regelnummer | De regelnummerverwijzing van het probleem in het betrokken webresourceonderdeel. | Webresources |
Module | Naam van module waarin het probleem dat is vastgesteld in de assembly, is gedetecteerd. | Aangepaste werkstroomactiviteit |
Type | Het type van het probleem dat in de assembly is vastgesteld. | Aangepaste werkstroomactiviteit |
Lid | Lid van het probleem dat in de assembly is vastgesteld. | Aangepaste werkstroomactiviteit |
Instructie | De code-instructie of configuratie die resulteerde in het probleem. | Alle |
Reacties | Details over het probleem met oplossingsstappen op hoog niveau. | All |
Regels voor oplossingscontrole lokaal uitvoeren
U kunt regels voor oplossingscontrole uitvoeren in uw ontwikkelomgeving om problemen veel eerder op te sporen terwijl u uw oplossingsresources maakt. Dit wordt momenteel ondersteund voor webbronnen (JavaScript en TypeScript). Ga voor meer informatie naar de NPM-pakket @microsoft/eslint-plugin-power-apps.
Oplossingscontrole uitvoeren met PowerShell
Er is een PowerShell-module beschikbaar waarmee u rechtstreeks met de service kunt communiceren. De module Microsoft.PowerApps.Checker.PowerShell kan worden gebruikt voor analyse van beheerde en onbeheerde oplossingen voor Power Apps-omgevingen of om de service te automatiseren en te integreren in uw pipelines voor maken en vrijgeven. Meer informatie: Overzicht van Microsoft.PowerApps.Checker.PowerShell
Regels voor best practices gebruikt door oplossingscontrole
De volgende tabel bevat het onderdeeltype, de regelbeschrijving, de ernst en de categorie. Kritieke overtredingen worden geblokkeerd of gewaarschuwd wanneer deze zijn geconfigureerd voor het afdwingen van oplossingscontrole met beheerde omgevingen. Meer informatie: Oplossingscontrole gebruiken in Beheerde omgevingen
Oplossingsonderdeel | Naam van de regel | Beschrijving van regel | Ernst | Categorie |
---|---|---|---|---|
Invoegtoepassing of werkstroomactiviteit | meta-remove-dup-reg | Vermijd dubbele registraties van Dataverse-invoegtoepassingen. | Kritiek | Prestaties |
Invoegtoepassing of werkstroomactiviteit | meta-avoid-reg-no-attribute | Neem filterkenmerken op met registraties van invoegtoepassingen van Dataverse. | Gemiddeld | Prestaties |
Invoegtoepassing of werkstroomactiviteit | meta-avoid-reg-retrieve | Wees voorzichtig met invoegtoepassingen van Dataverse die zijn geregistreerd voor Retrieve- en RetrieveMultiple-berichten. | Gemiddeld | Prestaties |
Invoegtoepassing of werkstroomactiviteit | meta-remove-inactive | Verwijder inactieve configuraties in Dataverse. | Laag | Onderhoud |
Invoegtoepassing of werkstroomactiviteit | meta-avoid-crm4-event | Gebruik geen fase van de Microsoft Dynamics CRM 4.0-plug-inregistratie. | Gemiddeld | Upgradegereedheid |
Invoegtoepassing of werkstroomactiviteit | meta-avoid-retrievemultiple-annotation | Vermijd het registreren van een plug-in voor RetrieveMultiple van annotaties. | Hoog | Gebruik |
Modelgestuurde app | meta-license-sales-entity-operations | De oplossing bevat entiteiten met beperkte SDK-berichten en -bewerkingen waarvoor een geldige Dynamics 365-licentie vereist is. | Laag | Licenties |
Modelgestuurde app | meta-license-fieldservice-customcontrols | De oplossing bevat aangepaste besturingselementen waarvoor een geldige Dynamics 365 Field Service-licentie vereist is. | Laag | Licenties |
Modelgestuurde app | meta-license-fieldservice-entity-operations | De oplossing bevat entiteiten met beperkte SDK-berichten en -bewerkingen waarvoor een geldige Dynamics 365 Field Service-licentie vereist is. | Laag | Licenties |
Webresources | use-async | Gebruik HTTP- en HTTPS-resources asynchroon. | Kritiek | Prestaties |
Webresources | avoid-modals | Vermijd het gebruik van modale dialoogvensters. | Hoog | Ondersteuning |
Webresources | avoid-dom-form | Hoog | Ondersteuning | |
Webresources | avoid-dom-form-event | Hoog | Ondersteuning | |
Webresources | avoid-crm2011-service-odata | Richt u niet op het Microsoft Dynamics CRM 2011 OData 2.0-eindpunt | Kritiek | Upgradegereedheid |
Webresources | avoid-crm2011-service-soap | Richt u niet op de Microsoft Dynamics CRM 2011 SOAP-services. | Kritiek | Upgradegereedheid |
Webresources | avoid-loadtheme | Gebruik loadTheme Fluent v8 API niet. |
Laag | Ondersteuning |
Webresources | avoid-browser-specific-api | Gebruik geen oude API's of browserplug-ins van Internet Explorer. | Kritiek | Upgradegereedheid |
Webresources | avoid-unpub-api | Hoog | Ondersteuning | |
Webresources | avoid-window-top | Hoog | Ondersteuning | |
Webresources | avoid-2011-api | Gebruik het afgeschafte Microsoft Dynamics CRM 2011-objectmodel niet. Volg in plaats daarvan de documentatie van Dataverse-web-API. | Hoog | Upgradegereedheid |
Webresources | use-relative-uri | Gebruik geen absolute Dataverse eindpunt-URL's. | Gemiddeld | Onderhoud |
Webresources | use-cached-webresource | Gemiddeld | Prestaties | |
Webresources | use-client-context | Gebruik clientcontexten. | Gemiddeld | Upgradegereedheid |
Webresources | use-navigation-api | Gebruik navigatie-API-parameters. | Gemiddeld | Upgradegereedheid |
Webresources | use-offline | Gemiddeld | Upgradegereedheid | |
Webresources | do-not-make-parent-assumption | Hoog | Ontwerpen | |
Webresources | use-org-setting | Gebruik organisatie-instellingen. | Gemiddeld | Upgradegereedheid |
Webresources | use-global-context | Gemiddeld | Upgradegereedheid | |
Webresources | use-grid-api | Gebruik de raster-API's. | Gemiddeld | Upgradegereedheid |
Webresources | use-utility-dialogs | Gemiddeld | Gebruik | |
Webresources | avoid-isActivityType | Vervang de Xrm.Utility.isActivityType-methode door de nieuwe Xrm.Utility.gettableMetadata en gebruik deze niet in lintregels. | Gemiddeld | Upgradegereedheid |
Webresources | meta-avoid-silverlight | Gebruik van Silverlight-webresource is afgeschaft. | Gemiddeld | Upgradegereedheid |
Webresources | remove-debug-script | Vermijd het opnemen van debugscripts in niet-ontwikkelomgevingen. | Gemiddeld | Gebruik |
Webresources | use-strict-mode | Gebruik indien mogelijk een strikte modus. | Gemiddeld | Gebruik |
Webresources | use-strict-equality-operators | Gebruik strikte gelijkheidsoperatoren. | Gemiddeld | Gebruik |
Webresources | avoid-eval | Gebruik de eval functie of de functionele equivalenten ervan niet. |
Kritiek | Beveiliging |
Webresources | avoid-with | Gebruik niet de operator 'met'. | Hoog | Prestaties |
Webresources | remove-alert | Gebruik de functie alert of gelijksoortige functies niet. | Gemiddeld | Gebruik |
Webresources | remove-console | Vermijd het gebruik van methoden op de console. | Gemiddeld | Gebruik |
Webresources | avoid-ui-refreshribbon | Vermijd het gebruik van refreshRibbon in formulier-onload en EnableRule. | Kritiek | Prestaties |
Webresources | use-getsecurityroleprivilegesinfo | Vermijd userSettings.securityRolePrivileges. Gebruik in plaats daarvan Use userSettings.getSecurityRolePrivilegesInfo. | Hoog | Prestaties |
Webresources | use-appsidepane-api | Gebruik Xrm.App.sidePanes.createPane in plaats van Xrm.Panels.loadPanel. | Gemiddeld | Upgradegereedheid |
Webresources | web-sdl-no-cookies | HTTP-cookies zijn een oud opslagmechanisme aan de clientzijde met inherente risico's en beperkingen. Gebruik in plaats daarvan Web Storage, IndexedDB of andere moderne methoden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-document-domain | Schrijfbewerkingen naar de eigenschap document.domain moeten worden gecontroleerd om te voorkomen dat controles van dezelfde oorsprong worden omzeild. Het gebruik van domeinen van het hoogste niveau zoals azurewebsites.net is ten strengste verboden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-document-write | Oproepen naar document.write of document.writeln bewerken DOM rechtstreeks zonder enige opschoning en moeten worden vermeden. Gebruik in plaats daarvan document.createElement() of vergelijkbare methoden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-html-method | Directe aanroepen van de html()-methode manipuleren vaak (bijvoorbeeld in het jQuery-framework) de DOM zonder enige vorm van opschoning en moeten worden vermeden. Gebruik in plaats daarvan document.createElement() of vergelijkbare methoden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-inner-html | Toewijzingen aan eigenschappen innerHTML of outerHTML bewerken DOM rechtstreeks zonder enige opschoning en moeten worden vermeden. Gebruik in plaats daarvan document.createElement() of vergelijkbare methoden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-insecure-url | Onveilige protocollen zoals HTTP of FTP moeten worden vervangen door hun versleutelde tegenhangers (HTTPS, FTPS) om te voorkomen dat mogelijk gevoelige gegevens in platte tekst over onbetrouwbare netwerken worden verzonden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-msapp-exec-unsafe | Aanroepen van MSApp.execUnsafeLocalFunction() omzeilen validatie van scriptinjectie en moeten worden vermeden. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-postmessage-star-origin | Geef altijd een specifieke doeloorsprong op, niet * bij het verzenden van gegevens naar andere vensters met behulp van postMessage om gegevenslekken buiten de vertrouwensgrens te voorkomen. | Gemiddeld | Beveiliging |
Webresources | web-sdl-no-winjs-html-unsafe | Aanroepen naar WinJS.Utilities.setInnerHTMLUnsafe() en vergelijkbare methoden voeren geen invoervalidatie uit en moeten worden vermeden. Gebruik in plaats daarvan WinJS.Utilities.setInnerHTML(). | Gemiddeld | Beveiliging |
Canvas-app | app-formula-issues-high | Ga naar de Power Apps formulereferentie voor meer informatie. | Kritiek | Ontwerpen |
Canvas-app | app-formula-issues-medium | Raadpleeg verwijzingen naar Power Apps-formules voor aanvullende details. | Gemiddeld | Ontwerpen |
Canvas-app | app-formula-issues-low | Raadpleeg verwijzingen naar Power Apps-formules voor aanvullende details. | Laag | Ontwerpen |
Canvas-app | app-use-delayoutput-text-input | Gebruik in sommige scenario's uitgestelde belasting om de prestaties te verbeteren. | Gemiddeld | Prestaties |
Canvas-app | app-reduce-screen-controls | Beperk het aantal app-besturingselementen voor verbeterde prestaties. | Gemiddeld | Prestaties |
Canvas-app | app-include-accessible-label | Gebruik expliciete labels om de toegankelijkheid van apps te verbeteren. | Gemiddeld | Toegankelijkheid |
Canvas-app | app-include-alternative-input | Zorg ervoor dat alle interactieve elementen toegankelijk zijn voor alternatieve invoer. | Gemiddeld | Toegankelijkheid |
Canvas-app | app-avoid-autostart | Maak geen gebruik van automatisch starten op spelers binnen een app. | Gemiddeld | Toegankelijkheid |
Zie ook
Beste praktijken en richtlijnen voor de Dataverse
Aanbevolen procedures en richtlijnen voor modelgestuurde apps
Veelvoorkomende problemen en oplossingen voor Oplossingen controleren
Notitie
Laat ons uw taalvoorkeuren voor documentatie weten! Beantwoord een korte enquête. (houd er rekening mee dat deze in het Engels is)
De enquête duurt ongeveer zeven minuten. Er worden geen persoonlijke gegevens verzameld (privacyverklaring).