Share via


Prestaties, stabiliteit en betrouwbaarheid van componenten verbeteren met oplossingscontrole

Om aan complexe bedrijfsbehoeften te voldoen, produceren makers vaak zeer geavanceerde oplossingen waarmee het Microsoft Dataverse-platform wordt aangepast en uitgebreid. 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 een uitgebreide statische analysecontrole op uw oplossingen uitvoeren waarbij een set regels voor best practices wordt toegepast, en deze problematische patronen snel vaststellen. Als de controle is voltooid, ontvangt u een gedetailleerd rapport met de vastgestelde problemen, de onderdelen en code waarop de problemen betrekking hebben 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)

Oplossingscontrole werkt met onbeheerde oplossingen die vanuit een omgeving kunnen worden geëxporteerd.

Notitie

  • In dit onderwerp wordt uitgelegd hoe u oplossingscontrole uitvoert vanuit de Power Apps-portal van de maker. Er is ook een PowerShell-module beschikbaar die u kunt gebruiken om rechtstreeks met de service te 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
  • 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 oplossingscontrole garandeert niet dat het importeren van een oplossing zal slagen. De statische analysecontroles die aan de hand van de oplossing worden uitgevoerd, kennen de geconfigureerde status van de doelomgeving niet en het succes van de import kan afhankelijk zijn van andere oplossingen of configuraties in de omgeving.

De oplossingscontrole uitvoeren

  1. Meld u aan bij Power Apps.

  2. 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.

  3. Naast de onbeheerde oplossing die u wilt analyseren, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Uitvoeren.

    De opdracht Oplossingscontrole uitvoeren.

  4. De opdrachtknop Oplossingscontrole heeft een laadindicator en u ziet het bericht Actief... in de kolom Oplossingcontrole van de lijst Oplossing.

    Status oplossingscontrole.

    Let op het volgende:

    • 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.

  5. 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 beheerde oplossing van derden. 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.

  1. 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.

  2. Naast de onbeheerde oplossing waarbij u het oplossingscontrolerapport wilt bekijken, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten weergeven.

  3. Selecteer een probleem om de details en richtlijnen voor het oplossen ervan te bekijken.

    Resultaten van oplossingscontrole weergeven.

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.

  1. 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.
  2. Naast de onbeheerde oplossing waarnaar u het oplossingscontrolerapport wilt downloaden, selecteert u ..., wijst u Oplossingscontrole aan en selecteert u vervolgens Resultaten downloaden.
  3. 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.

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 debug script 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 methode html() bewerken vaak DOM (bijvoorbeeld in het jQuery-framework) zonder enige 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 van 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 Raadpleeg verwijzingen naar Power Apps-formules voor aanvullende details. 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).