Del via


Forbedre ytelsen, stabiliteten og påliteligheten til komponenter med løsningskontrollen

For å overholde komplekse forretningskrav kan utviklere ofte ende opp med svært avanserte løsninger som tilpasser og utvider Microsoft Dataverse-plattformen. Med avanserte implementeringer kommer økt risiko der problemer med ytelse, stabilitet og pålitelighet blir introdusert, som kan ha en negativ innvirkning på brukeropplevelsen. Å identifisere og forstå hvordan du løser disse problemene kan være komplisert og tidkrevende. Med løsningskontrollen kan du utføre en omfattende statisk analysekontroll av løsningene mot et sett med regler for beste fremgangsmåte og raskt finne disse problematiske mønstrene. Når kontrollen er fullført, får du en detaljert rapport som viser en liste over problemene som ble funnet, komponentene og koden som er berørt, og koblinger til dokumentasjon som beskriver hvordan du løser hvert enkelt problem.

Løsningskontrollen analyserer disse løsningskomponentene:

  • Egendefinerte Dataverse-arbeidsflytaktiviteter
  • Dataverse-nettressurser (HTML og JavaScript)
  • Dataverse-konfigurasjoner, for eksempel SDK-meldingstrinn
  • Power Automate-flyter (via flytkontroll)
  • Power Fx-uttrykk (via appkontroll)

Løsningskontroll fungerer sammen med uadministrerte løsninger som kan eksporteres fra et miljø.

Obs!

  • Dette emnet forklarer hvordan du kjører løsningskontroll fra Power Apps-utviklerportalen. En PowerShell-modul er også tilgjengelig og kan brukes til å samhandle direkte med tjenesten. Microsoft.PowerApps.Checker.PowerShell-modulen kan brukes til å analysere uadministrerte løsninger for Power Apps-miljøer, eller for å automatisere og integrere tjenesten i dine egne køer for utvikling og lansering. Mer informasjon: Oversikt over Microsoft.PowerApps.Checker.PowerShell
  • Løsningskontroll støtter globale variabler for ECMAScript 2015-syntaks (ES6) og opptil ECMAScript 2018-syntaks (ES9). Når JavaScript er registrert ved hjelp av globale variabler som er senere enn ES6, eller syntaks som er senere enn ES9, rapporteres det et syntaksproblem om web som ikke støttes for nettressursen.
  • Bruk av løsningskontroll garanterer ikke at en løsningsimport blir vellykket. De statiske analysekontrollene som utføres mot løsningen, kjernner ikke til den konfigurerte tilstanden til målmiljøet, og importsuksess kan være avhengig av andre løsninger eller konfigurasjoner i miljøet.

Kjøre løsningskontrollen

  1. Logg på Power Apps.

  2. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.

  3. Ved siden av den uadministrerte løsningen du vil analysere, velger du ..., peker på Løsningskontroll, og velger deretter Kjør.

    Kjøre løsningskontroll-kommandoen.

  4. Kommandoknappen Løsningskontroll har en innlastingsindikator, og du kan legge merke til Kjører … i Løsningskontroll-kolonnen i Løsning-listen.

    Status for løsningskontroll.

    Legg merke til følgende:

    • Løsningskontrollen kan bruke noen minutter på å fullføre analysen.

    • Du mottar en e-postvarsling og en varsling i Varslinger-området på Power Apps-nettstedet når kontrollen fullføres.

  5. Vis rapporten når kontrollen er fullført.

Avbryte en kontroll

Når du har sendt en løsningskontroll i miljøet, kan kontrollen avbrytes gjennom statusruten i det øvre høyre området på Løsninger-siden.

Når du avbryter en kontroll, slutter løsningskontrollen å kjøre og statusen for løsningskontrollen returnerer til forrige tilstand.

Tilstander for løsningskontroll

Når du installerer løsningskontrollen i miljøet, blir Løsningskontroll-kolonnen tilgjengelig i Løsninger-listen. Denne kolonnen viser løsningsanalysetilstandene for en løsning.

Tilstand Beskrivelse
Er ikke kjørt Løsningen er aldri analysert.
Kjører Løsningen blir analysert.
Kunne ikke fullføres Løsningsanalysen ble forespurt, men analysen ble ikke fullført.
Resultater for dato og klokkeslett Løsningsanalysen er fullført og resultater er tilgjengelig for nedlasting.
Kunne ikke fullføres. Resultat for dato og klokkeslett Den nyeste analyseforespørselen ble ikke fullført. De siste vellykkede resultatene kan lastes ned.
Kontrollert av Microsoft Dette er en Microsoft-administrert løsning. Løsningsanalyse er ikke tillatt i disse løsningene.
Kontrollert av utgiver Dette er en tredjepart-administrert løsning. Løsningsanalyse er for øyeblikket ikke tilgjengelig for disse løsningene.

Se gjennom løsningskontrollrapporten

Når en løsningskontroll er fullført, kan du vise analyserapporten i portalen, eller du kan laste ned rapporten fra webleseren. I portalen har du alternativer for å sortere resultater etter Problem, Sted eller Alvorlighetsgrad og vise detaljert informasjon om problemer som er oppdaget i løsningen.

  1. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.

  2. Ved siden av den uadministrerte løsningen der du vil vise løsningskontrollrapporten, velger du ..., peker på Løsningskontroll og velger deretter Vis resultater.

  3. Velg et problem for å vise detaljer og veiledning for hvordan du løser problemet.

    Visningsresultater for løsningskontroll.

Løsningskontrollresultatene er også tilgjengelige for nedlasting. Zip-filen for løsningskontroll lastes ned til mappen som er angitt i webleseren. Nedlastingsrapporten er i Excel-format og inneholder flere visualiseringer og kolonner som kan hjelpe deg med å identifisere innvirkningen, typen og plasseringen av hvert problem som er registrert i løsningen. En kobling til detaljert informasjon om hvordan du løser problemet, er også oppgitt.

  1. Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
  2. Ved siden av den uadministrerte løsningen der du vil laste ned løsningskontrollrapporten, velger du ..., peker på Løsningskontroll og velger deretter Last ned resultater.
  3. Zip-filen for løsningskontroll lastes ned til mappen som er angitt i webleseren.

Her er et sammendrag av hver kolonne i rapporten.

Rapport-kolonnen Beskrivelse Gjelder for komponent
Problem Tittelen på problemet som er identifisert i løsningen. Alle
Kategori Kategoriseringen av det identifiserte problemet, for eksempel Ytelse, Vedlikehold, Bruk, Støtte, Utforming, Sikkerhet, Tilgjengelighet eller Oppgraderingsklar. Alle
Alvorsgrad Representerer den potensielle virkningen av problemet som identifiseres. Tilgjengelige innvirkningstyper er Kritisk, Høy, Middels, Lav og Informasjon. Alle
Veiledning Kobling til artikkelen med detaljer om problemet, innvirkning og anbefalt handling. Alle
Komponent Løsningskomponenten der problemet ble identifisert. Alle
Location Plasseringen og/eller kildefilen til komponenten der problemet som ble funnet, oppstod, for eksempel samlingen eller JavaScript-filnavnet. Alle
Linjenr. Linjenummerreferansen til problemet i den berørte nettressurskomponenten. Nettressurser
Modul Navn på modul der problemet som ble identifisert i samlingen, ble oppdaget. Egendefinert arbeidsflytaktivitet
Type Type problem som ble identifisert i samlingen. Egendefinert arbeidsflytaktivitet
Medlem Medlem av problemet som ble identifisert i samlingen. Egendefinert arbeidsflytaktivitet
Setning Kodesetningen eller konfigurasjonen som førte til problemet. Alle
Kommentarer Informasjon om problemet som inkluderer løsningstrinn på høyt nivå. Alle

Kjøre løsningskontrollregler lokalt

Du kan kjøre regler for løsningskontroller i utviklingsmiljøet for å oppdage problemer mye raskere når du oppretter løsningsressursene. Dette støttes for øyeblikket for webressurser (JavaScript og TypeScript). Hvis du vil ha mer informasjon, kan du gå til NPM-pakken @microsoft/eslint-plugin-power-apps.

Regler for anbefalt fremgangsmåte som brukes av løsningskontrollen

Tabellen nedenfor viser komponenttypen, regelbeskrivelsen, alvorsgraden og kategorien. Kritiske brudd blokkeres eller advares mot når de er konfigurert for håndheving av løsningskontrollen i administrerte miljøer. Mer informasjon: Bruke løsningskontroll i administrerte miljøer

Løsningskomponent Regelnavn Regelbeskrivelse Alvorsgrad Fane
Programtillegg eller arbeidsflytaktivitet meta-remove-dup-reg Unngå registrering av dupliserte Dataverse-programtillegg. Kritisk Ytelse
Programtillegg eller arbeidsflytaktivitet meta-avoid-reg-no-attribute Inkluder filtreringsattributter med Dataverse-programtilleggsregistreringer. Middels Ytelse
Programtillegg eller arbeidsflytaktivitet meta-avoid-reg-retrieve Vær forsiktig med Dataverse-programtillegg som er registrert for Retrieve- og RetrieveMultiple-meldinger. Middels Ytelse
Programtillegg eller arbeidsflytaktivitet meta-remove-inactive Fjern inaktive konfigurasjoner i Dataverse. Lav Vedlikehold
Programtillegg eller arbeidsflytaktivitet meta-avoid-crm4-event Ikke bruk fase for registrering av programtillegg for Microsoft Dynamics CRM 4.0. Middels Oppgraderingsklar
Programtillegg eller arbeidsflytaktivitet meta-avoid-retrievemultiple-annotation Unngå å registrere et programtillegg på RetrieveMultiple av merknader. Høy Bruk
Modelldrevet app meta-license-sales-entity-operations Løsningen inneholder enheter med begrensede SDK-meldinger og -operasjoner som krever en gyldig Dynamics 365-lisens. Lav Lisensiering
Modelldrevet app meta-license-fieldservice-customcontrols Løsningen inneholder egendefinerte kontroller som krever en gyldig Dynamics 365 Field Service-lisens. Lav Lisensiering
Modelldrevet app meta-license-fieldservice-entity-operations Løsningen inneholder enheter med begrensede SDK-meldinger og operasjoner som krever en gyldig Dynamics 365 Field Service-lisens. Lav Lisensiering
Webressurs use-async Samhandle med HTTP- og HTTPS-ressurser asynkront. Kritisk Ytelse
Webressurs avoid-modals Unngå å bruke modale dialogbokser. Høy Støtte
Webressurs avoid-dom-form Høy Støtte
Webressurs avoid-dom-form-event Høy Støtte
Webressurs avoid-crm2011-service-odata Ikke fokuser på endepunktet for Microsoft Dynamics CRM 2011 OData 2.0. Kritisk Oppgraderingsklar
Webressurs avoid-crm2011-service-soap Ikke fokuser på SOAP-tjenestene for Microsoft Dynamics CRM 2011. Kritisk Oppgraderingsklar
Webressurs avoid-loadtheme Ikke bruk API-en loadTheme Fluent v8. Lav Støtte
Webressurs avoid-browser-specific-api Ikke bruk eldre API-er eller nettleser-programtillegg for Internet Explorer. Kritisk Oppgraderingsklar
Webressurs avoid-unpub-api Høy Støtte
Webressurs avoid-window-top Høy Støtte
Webressurs avoid-2011-api Ikke bruk avskrevet Microsoft Dynamics CRM 2011-objektmodell. Følg i stedet dokumentasjonen for Web-API for Dataverse. Høy Oppgraderingsklar
Webressurs use-relative-uri Ikke bruk absolutte URL-adresser for endepunkt for Dataverse. Middels Vedlikehold
Webressurs use-cached-webresource Middels Ytelse
Webressurs use-client-context Bruk klientkontekster. Middels Oppgraderingsklar
Webressurs use-navigation-api Bruke API-paramtere for navigasjon Middels Oppgraderingsklar
Webressurs use-offline Middels Oppgraderingsklar
Webressurs do-not-make-parent-assumption Høy utforming
Webressurs use-org-setting Bruk organisasjonsinnstillinger. Middels Oppgraderingsklar
Webressurs use-global-context Middels Oppgraderingsklar
Webressurs use-grid-api Bruk API-er for rutenett. Middels Oppgraderingsklar
Webressurs use-utility-dialogs Middels Bruk
Webressurs avoid-isActivityType Erstatt Xrm.Utility.isActivityType-metoden med ny Xrm.Utility.gettableMetadata, og ikke bruk i regler på båndet. Middels Oppgraderingsklar
Webressurs meta-avoid-silverlight Bruk av nettressursen Silverlight blir avskrevet. Middels Oppgraderingsklar
Webressurs remove-debug-script Unngå å inkludere feilsøkingsskript i ikke-utviklingsmiljøer. Middels Bruk
Webressurs use-strict-mode Bruk Strict-modus når det er mulig. Middels Bruk
Webressurs use-strict-equality-operators Bruk strenge likhetstegn. Middels Bruk
Webressurs avoid-eval Ikke bruk "eval"-funksjonen eller funksjonsekvivalenter. Kritisk Sikkerhet
Webressurs unngå-with Ikke bruk with-operatoren. Høy Ytelse
Webressurs remove-alert Ikke bruk funksjonen "alert, eller dens funksjonelle ekvivalenter. Middels Bruk
Webressurs remove-console Unngå å bruke metoder i console. Middels Bruk
Webressurs avoid-ui-refreshribbon Unngå å bruke refreshRibbon i skjema onload og EnableRule. Kritisk Ytelse
Webressurs use-getsecurityroleprivilegesinfo Unngå userSettings.securityRolePrivileges. Bruk userSettings.getSecurityRolePrivilegesInfo i stedet. Høy Ytelse
Webressurs use-appsidepane-api Bruk Xrm.App.sidePanes.createPane i stedet for Xrm.Panels.loadPanel. Middels Oppgraderingsklar
Webressurs web-sdl-no-cookies HTTP-informasjonskapsler er en gammel lagringsmekanisme på klientsiden med iboende risiko og begrensninger. Bruk i stedet Weblagring, IndexedDB eller andre moderne metoder. Middels Sikkerhet
Webressurs web-sdl-no-document-domain Skriver til document.domain-egenskap må gjennomgås for å unngå å hoppe over sjekker med samme opprinnelse. Bruk av domener på øverste nivå, for eksempel azurewebsites.net, er strengt forbudt. Middels Sikkerhet
Webressurs web-sdl-no-document-write Kall til document.write eller document.writeln endrer DOM direkte uten noen rensing, og bør unngås. Bruk document.createElement() eller lignende metoder i stedet. Middels Sikkerhet
Webressurs web-sdl-no-html-method Direktekall til metoden html() manipulerer (f.eks. i jQuery-rammeverket) ofte DOM uten rensing, og bør unngås. Bruk document.createElement() eller lignende metoder i stedet. Middels Sikkerhet
Webressurs web-sdl-no-inner-html Tilordninger til egenskapene innerHTML eller outerHTML endrer DOM direkte uten noen rensing, og bør unngås. Bruk document.createElement() eller lignende metoder i stedet. Middels Sikkerhet
Webressurs web-sdl-no-insecure-url Usikre protokoller som HTTP eller FTP må erstattes av de krypterte motpartene (HTTPS, FTPS) for å unngå sending av potensielt sensitive data over ikke-klarerte nettverk i ren tekst. Middels Sikkerhet
Webressurs web-sdl-no-msapp-exec-unsafe Kall til MSApp.execUnsafeLocalFunction() omgår validering av skriptinnsprøytning og bør unngås. Middels Sikkerhet
Webressurs web-sdl-no-postmessage-star-origin Oppgi alltid bestemt målopprinnelse og ikke * når du sender data til andre vinduer ved hjelp av postMessage, for å unngå datalekkasje utenfor klarert grense. Middels Sikkerhet
Webressurs web-sdl-no-winjs-html-unsafe Kall til WinJS.Utilities.setInnerHTMLUnsafe() og lignende metoder utfører ikke noen inndatavalidering, og bør unngås. Bruk WinJS.Utilities.setInnerHTML() i stedet. Middels Sikkerhet
Lerretsapp app-formula-issues-high Se Power Apps-formelreferanser hvis du vil ha mer informasjon. Kritisk utforming
Lerretsapp app-formula-issues-medium Se Power Apps-formelreferanser hvis du vil ha mer informasjon. Middels utforming
Lerretsapp app-formula-issues-low Se Power Apps-formelreferanser hvis du vil ha mer informasjon. Lav utforming
Lerretsapp app-use-delayoutput-text-input Bruk forsinket innlesing i noen scenarioer for å forbedre ytelsen. Middels Ytelse
Lerretsapp app-reduce-screen-controls Begrens antall appkontroller for forbedret ytelse. Middels Ytelse
Lerretsapp app-include-accessible-label Bruk eksplisitte etiketter til å forbedre apptilgjengelighet. Middels Tilgjengelighet
Lerretsapp app-include-alternative-input Kontroller at alle interaktive elementer er tilgjengelige for alternative inndata. Middels Tilgjengelighet
Lerretsapp app-avoid-autostart Unngå å bruke autostart på spillere i en app. Middels Tilgjengelighet

Se også

Gode fremgangsmåter og veiledning for Dataverse
Gode fremgangsmåter og veiledning for modelldrevne apper
Vanlige problemer og løsninger for Løsningskontroll

Obs!

Kan du fortelle oss om språkinnstillingene for dokumentasjonen? Ta en kort undersøkelse. (vær oppmerksom på at denne undersøkelsen er på engelsk)

Undersøkelsen tar rundt sju minutter. Det blir ikke samlet inn noen personopplysninger (personvernerklæring).