Forbedre komponentydeevnen, stabiliteten og pålideligheden med løsningskontrol
For at opfylde komplekse forretningskrav kan udviklere ofte ende med meget avancerede løsninger, som tilpasser og udvider Microsoft Dataverse-platformen. Med avancerede implementeringer følger en øget risiko, hvor der kan opstå problemer med ydeevne, stabilitet og pålidelighed, hvilket kan påvirke brugeroplevelsen negativt. Identifikation og forståelse af, hvordan disse problemer løses, kan være kompliceret og tidskrævende. Med løsningskontrolfunktionen kan du udføre et omfattende statisk analysetjek af dine løsninger i forhold til et sæt af regler for bedste praksis og hurtigt identificere de problematiske mønstre. Når tjekket er fuldført, modtager du en detaljeret rapport, som viser en liste over de identificerede problemer, de berørte komponenter og den berørte kode, samt links til dokumentation, der beskriver, hvordan de enkelte problemer løses.
Løsningskontrollen analyserer disse løsningskomponenter:
- Dataverse-brugerdefinerede arbejdsprocesaktiviteter
- Dataverse-webressourcer (HTML og JavaScript)
- Dataverse-konfigurationer, som f.eks. SDK-meddelelsestrin
- Power Automate-flows (via flowkontrol)
- Power Fx-udtryk (via appkontrol)
Løsningskontrollen fungerer sammen med ikke-administrerede løsninger, der kan eksporteres fra et miljø.
Bemærk
- I dette emne forklares det, hvordan du kan køre Løsningskontrol fra Power Apps-udviklerportalen. Der findes også et PowerShell-modul, som du kan bruge til at kommunikere direkte med tjenesten. Microsoft.PowerApps.Checker.PowerShell-modulet kan bruges til analyse af ikke-administrerede løsninger til understøttede versioner af lokale og online Power Apps-miljøer eller til at automatisere og integrere tjenesten i build- og release-pipelines. Flere oplysninger: Microsoft.PowerApps.Checker.PowerShell-oversigt
- Løsningskontrol understøtter globale variabler for syntaks ECMAScript 2015 (ES6) og op til ECMAScript 2018 (ES9). Når der registreres JavaScript med globale variabler senere end ES6 eller syntaks senere end ES9, rapporteres et problem med syntaks, der ikke understøttes af internettet, for webressourcen.
- Brug af løsningskontrol garanterer ikke, at en løsningsimport bliver vellykket. Den statiske analysekontrol, der udføres mod løsningen, kender ikke den konfigurerede tilstand af destinationsmiljøet, og importsucces kan være afhængig af andre løsninger eller konfigurationer i miljøet.
Kør løsningskontrollen
Log på Power Apps.
Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
Ved siden af den ikke-administrerede løsning, du vil analysere, skal du vælge ..., pege på Løsningskontrol og derefter vælge Kør.
Kommandoknappen Løsningskontrol har en indlæsningsindikator, og du vil se Kører... i kolonnen Løsningskontrol på listen Løsning.
Bemærk følgende:
Det kan tage et par minutter for løsningskontrollen at fuldføre analysen.
Du modtager en mail og en meddelelse i området Meddelelser på Power Apps-webstedet, når kontrollen er fuldført.
Få vist rapporten, når kontrollen er fuldført.
Annullering af en kontrol
Når du sender en løsningskontrol i dit miljø, kan kontrollen annulleres fra statusruden i området øverst til højre på siden Løsninger.
Når du annullerer en kontrol, stopper løsningskontrollen, og status for løsningskontrollen vender tilbage til forrige tilstand.
Tilstande for løsningskontrollen
Når du installerer løsningskontrollen i dit miljø, vises kolonnen Løsningskontrol på listen Løsninger. Denne kolonne viser løsningsanalystetilstandene for en løsning.
Område | Beskrivelse |
---|---|
Er ikke blevet kørt | Løsningen er aldrig blevet analyseret. |
Kører | Løsningen analyseres. |
Kunne ikke fuldføres | Løsningsanalysen blev anmodet, men analysen blev ikke fuldført. |
Resultater efter dato og klokkeslæt | Løsningsanalysen blev fuldført, og resultaterne kan hentes. |
Kunne ikke fuldføres. Resultat efter dato og klokkeslæt | Den seneste analyseanmodning blev ikke fuldført. De seneste vellykkede resultater kan downloades. |
Kontrolleret af Microsoft | Dette er en administreret løsning fra Microsoft. Løsningsanalysen er ikke tilladt for disse løsninger. |
Kontrolleret af udgiver | Dette er en administreret løsning fra tredjepart. Løsningsanalyse er ikke tilgængelig for disse løsninger i øjeblikket. |
Gennemse rapporten for løsningskontrollen
Når en løsningskontrol er fuldført, kan du få vist analyserapporten på portalen, eller du kan downloade rapporten fra din webbrowser. I portalen har du mulighed for at sortere resultater efter Problem, Placering eller Alvorsgrad og at få vist detaljerede oplysninger om problemer, der er registreret i løsningen.
Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
Ud for den ikke-administrerede løsning, hvor du vil have vist rapporten for løsningskontrollen, skal du vælge ..., pege på Løsningkontrol og derefter vælge Se resultater.
Vælg en fejl for at få vist detaljer og en vejledning i, hvordan du løser problemet.
Du kan også hente resultaterne af løsningskontrollen. Zip-filen med løsningskontrollen downloades til den mappe, der er angivet af din webbrowser. Downloadrapporten er i Excel-format og indeholder flere visualiseringer og kolonner, der hjælper dig med at identificere påvirkningen, typen og placeringen af de enkelte problemer, der er registreret i din løsning. Der findes også et link til en detaljeret vejledning i, hvordan du kan løse problemet.
- Vælg Løsninger i venstre rude. Hvis elementet ikke findes i sidepanelruden, skal du vælge ...Flere og derefter vælge det ønskede element.
- Ud for den ikke-administrerede løsning, hvor du vil hente rapporten for løsningskontrollen, skal du vælge ..., pege på Løsningskontrol og derefter vælge Hent resultater.
- Zip-filen med løsningskontrollen hentes til den mappe, der er angivet af din webbrowser.
Her er en oversigt over de enkelte kolonner i rapporten.
Kolonnen Rapport | Beskrivelse | Gælder for-komponent |
---|---|---|
Fejl | Titlen på det problem, der er identificeret i løsningen. | Alle |
Kategori | Den kategorisering af det identificerede problem, f.eks. Ydeevne, Vedligeholdelse, Brug, Mulighed for support, Design, Sikkerhed, Tilgængelighed eller Opgraderingsparathed. | Alle |
Alvorlighedsgrad | Repræsenterer den mulige påvirkning af det identificerede problem. Tilgængelige påvirkningstyper er Kritisk, Høj, Mellem, Lav og Oplysninger. | Alle |
Vejledning | Link til artikel med detaljerede oplysninger om problemet, påvirkningen og den anbefalede handling. | Alle |
Komponent | Løsningskomponenten, hvor problemet blev identificeret. | Alle |
Location | Placering og/eller kildefilen for komponenten, hvor det identificerede problem opstod, f.eks. assembly eller JavaScript-filnavn. | Alle |
Linjenr. | Linjenummerreference for problemet i den berørte webressourcekomponent. | Webressourcer |
Modul | Modulnavnet, hvor det identificerede problem i assembly'en blev registreret. | Brugerdefineret arbejdsprocesaktivitet |
Type | Typen af identificeret problem i assemblyen. | Brugerdefineret arbejdsprocesaktivitet |
Medlem | Medlem af identificeret problem i assemblyen. | Brugerdefineret arbejdsprocesaktivitet |
Erklæring | Kodeerklæring eller konfiguration, som resulterede i problemet. | Alle |
Kommentarer | Detaljer om problemet, der omfatter løsningstrin på højt niveau. | Alle |
Køre regler for løsningskontrol lokalt
Du kan køre regler for løsningskontrol i udviklingsmiljøet for at opdage problemer meget tidligere, når du opretter løsningsressourcerne. Det understøttes i øjeblikket for webressourcer (JavaScript og TypeScript). Du kan finde flere oplysninger i NPM-pakken @microsoft/eslint-plugin-power-apps.
Regler for bedste praksis, der anvendes af løsningskontrollen
I følgende tabel vises komponenttypen, regelbeskrivelsen, alvorsgraden og kategorien. Kritiske overtrædelser blokeres eller advares om, når de konfigureres til tvungen løsningskontrol med administrerede miljøer. Flere oplysninger: Bruge løsningskontrol i administrerede miljøer
Løsningskomponent | Navn på regel | Beskrivelse af regel | Alvorlighedsgrad | Kategori |
---|---|---|---|---|
Plug-in eller arbejdsprocesaktivitet | meta-remove-dup-reg | Undgå dubletter af Dataverse-plug-in-registreringer. | Alvorlig | Ydeevnen |
Plug-in eller arbejdsprocesaktivitet | meta-avoid-reg-no-attribute | Medtag filtreringsattributter sammen med Dataverse-plug-in-registreringer. | Mellem | Ydeevnen |
Plug-in eller arbejdsprocesaktivitet | meta-avoid-reg-retrieve | Vær forsigtig med Dataverse-plug-ins, der er registreret til Retrieve- og RetrieveMultiple-meddelelser. | Mellem | Ydeevnen |
Plug-in eller arbejdsprocesaktivitet | meta-remove-inactive | Fjern inaktive konfigurationer i Dataverse. | Lav | Mulighed for vedligeholdelse |
Plug-in eller arbejdsprocesaktivitet | meta-avoid-crm4-event | Brug ikke registreringsfasen til Microsoft Dynamics CRM 4.0-plug-in. | Mellem | Opgraderingsparathed |
Plug-in eller arbejdsprocesaktivitet | meta-avoid-retrievemultiple-annotation | Undgå at registrere en plug-in for RetrieveMultiple for anmærkninger. | Høj | Brug |
Modelbaseret app | meta-license-sales-entity-operations | Løsningen indeholder objekter med begrænsede SDK-meddelelser og handlinger, der kræver en gyldig Dynamics 365-licens. | Lav | Licensering |
Modelbaseret app | meta-license-fieldservice-customcontrols | Løsningen indeholder brugerdefinerede kontrolelementer, der kræver en gyldig Dynamics 365 Field Service-licens. | Lav | Licensering |
Modelbaseret app | meta-license-fieldservice-entity-operations | Løsningen indeholder objekter med begrænsede SDK-meddelelser og -handlinger, der kræver en gyldig Dynamics 365 Field Service-licens. | Lav | Licensering |
Webressourcer | use-async | Asynkron interaktion med HTTP- og HTTPS-ressourcer. | Alvorlig | Ydeevnen |
Webressourcer | avoid-modals | Undgå brug af modale dialogbokse. | Høj | Mulighed for support |
Webressourcer | avoid-dom-form | Høj | Mulighed for support | |
Webressourcer | avoid-dom-form-event | Høj | Mulighed for support | |
Webressourcer | avoid-crm2011-service-odata | Undgå at målrette mod Microsoft Dynamics CRM 2011 OData 2.0-slutpunktet. | Alvorlig | Opgraderingsparathed |
Webressourcer | avoid-crm2011-service-soap | Undgå at målrette mod Microsoft Dynamics CRM 2011 SOAP-tjenester. | Alvorlig | Opgraderingsparathed |
Webressourcer | avoid-loadtheme | Brug ikke loadTheme Fluent v8 API. |
Lav | Mulighed for support |
Webressourcer | avoid-browser-specific-api | Brug ikke ældre Internet Explorer-API'er eller browser-plug-ins. | Alvorlig | Opgraderingsparathed |
Webressourcer | avoid-unpub-api | Høj | Mulighed for support | |
Webressourcer | avoid-window-top | Høj | Mulighed for support | |
Webressourcer | avoid-2011-api | Brug ikke den udfasede Microsoft Dynamics CRM 2011-objektmodel. Følg i stedet dokumentationen til Dataverse-Web-API. | Høj | Opgraderingsparathed |
Webressourcer | use-relative-uri | Brug ikke absolutte Dataverse-slutpunkts-URL'er. | Mellem | Mulighed for vedligeholdelse |
Webressourcer | use-cached-webresource | Mellem | Ydeevnen | |
Webressourcer | use-client-context | Brug klientkontekster. | Mellem | Opgraderingsparathed |
Webressourcer | use-navigation-api | Brug API-navigationsparametre. | Mellem | Opgraderingsparathed |
Webressourcer | use-offline | Mellem | Opgraderingsparathed | |
Webressourcer | do-not-make-parent-assumption | Høj | Design | |
Webressourcer | use-org-setting | Brug organisationsindstillinger. | Mellem | Opgraderingsparathed |
Webressourcer | use-global-context | Mellem | Opgraderingsparathed | |
Webressourcer | use-grid-api | Brug gitter-API'er. | Mellem | Opgraderingsparathed |
Webressourcer | use-utility-dialogs | Mellem | Brug | |
Webressourcer | avoid-isActivityType | Erstat metoden Xrm.Utility.isActivityType med den nye Xrm.Utility.gettableMetadata, og brug den ikke i båndregler. | Mellem | Opgraderingsparathed |
Webressourcer | meta-avoid-silverlight | Brug af Silverlight-webressourcen er udfaset. | Mellem | Opgraderingsparathed |
Webressourcer | remove-debug-script | Undgå at inkludere fejlfindingsscript i ikke-udviklingsmiljøer. | Mellem | Brug |
Webressourcer | use-strict-mode | Brug Strict-tilstand, hvis det er muligt. | Mellem | Brug |
Webressourcer | use-strict-equality-operators | Brug Strict-lighedsoperatorer. | Mellem | Brug |
Webressourcer | avoid-eval | Brug ikke "eval"-funktionen eller funktionsækvivalenter. | Alvorlig | Sikkerhed |
Webressourcer | undgå – med | Brug ikke 'med' operator. | Høj | Ydeevnen |
Webressourcer | remove-alert | Brug ikke funktionen "alert" eller tilsvarende funktion. | Mellem | Brug |
Webressourcer | remove-console | Undgå at bruge metoder på konsollen. | Mellem | Brug |
Webressourcer | avoid-ui-refreshribbon | Undgå at bruge refreshRibbon i form onload og EnableRule. | Alvorlig | Ydeevnen |
Webressourcer | use-getsecurityroleprivilegesinfo | Undgå userSettings.securityRolePrivileges. Brug userSettings.getSecurityRolePrivilegesInfo i stedet. | Høj | Ydeevnen |
Webressourcer | use-appsidepane-api | Brug Xrm.App.sidePanes.createPane i stedet for Xrm.Panels.loadPanel. | Mellem | Opgraderingsparathed |
Webressourcer | web-sdl-no-cookies | HTTP-cookies er en gammel mekanisme til lagring på klientsiden med indbyggede risici og begrænsninger. Brug Web Storage, indexedDB eller andre moderne metoder i stedet. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-document-domain | Skrivninger til egenskaben document.domain skal gennemses for at undgå omgåelse af kontrol for samme oprindelse. Brug af domæner på øverste niveau, f.eks. azurewebsites.net er forbudt. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-document-write | Kald til document.write eller document.writeln manipulerer DOM direkte uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-html-method | Direkte kald til metode html() ofte (f.eks. i jQuery framework) manipulereR DOM uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-inner-html | Tildelinger til innerHTML- eller outerHTML-egenskaber manipulerer DOM direkte uden at blive renset og skal undgås. Brug i stedet document.createElement() eller lignende metoder. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-insecure-url | Sikre protokoller, f.eks. HTTP eller FTP, skal erstattes af deres krypterede modparter (HTTPS, FTPS) for at undgå at sende potentielt følsomme data som almindelig tekst via netværk, der ikke er tillid til. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-msapp-exec-unsafe | Kald til MSApp.execUnsymmetriLocalSektion() omgår scriptinjektions-validering og skal undgås. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-postmessage-star-origin | Angiv altid en specifik destinationsoprindelse, ikke * ved afsendelse af data til andre vinduer ved hjælp af postMessage for at undgå, at data anvendes uden for tillidsgrænsen. | Mellem | Sikkerhed |
Webressourcer | web-sdl-no-winjs-html-unsafe | Kald til WinJS.Validation.setInnerHTMLUnudstyr() og lignende metoder udfører ikke inputvalidering og skal undgås. Brug WinJS.Entre.setInnerHTML() i stedet. | Mellem | Sikkerhed |
Lærredapp | app-formula-issues-high | Du kan finde flere oplysninger i Power Apps-formelreferencer. | Alvorlig | Design |
Lærredapp | app-formula-issues-medium | Du kan finde flere oplysninger i Power Apps-formelreferencer. | Mellem | Design |
Lærredapp | app-formula-issues-low | Du kan finde flere oplysninger i Power Apps-formelreferencer. | Lav | Design |
Lærredapp | app-use-delayoutput-text-input | Brug forsinket indlæsning i visse scenarier for at forbedre ydeevnen. | Mellem | Ydeevnen |
Lærredapp | app-reduce-screen-controls | Begræns antallet af app-kontrolelementer for at forbedre ydeevnen. | Mellem | Ydeevnen |
Lærredapp | app-include-accessible-label | Brug eksplicitte navne for at forbedre app-tilgængeligheden. | Mellem | Tilgængelighed |
Lærredapp | app-include-alternative-input | Sørg for, at alle interaktive elementer er tilgængelige for alternative input. | Mellem | Tilgængelighed |
Lærredapp | app-avoid-autostart | Undgå at bruge automatisk start på afspillerne i en app. | Mellem | Tilgængelighed |
Se også
Bedste fremgangsmåder og retningslinjer for Dataverse
Bedste fremgangsmåder og retningslinjer for modelbaserede apps
Almindelige problemer med og løsninger i løsningskontrol
Bemærk
Kan du fortælle os om dine sprogpræferencer for dokumentation? Tag en kort undersøgelse. (bemærk, at denne undersøgelse er på engelsk)
Undersøgelsen tager ca. syv minutter. Der indsamles ingen personlige data (erklæring om beskyttelse af personlige oplysninger).