Forbedre løsningens ytelse, stabilitet og pålitelighet
Løsninger brukes til å distribuere Power Platform objekter, for eksempel apper, tabeller, flyter, nettressurser og plugin-moduler. Denne artikkelen introduserer løsningskontrollfunksjonen, et kraftig verktøy som utfører en omfattende statisk analyse av løsningsobjektene mot et sett med regler for anbefalt fremgangsmåte. Ved hjelp av løsningskontroll kan du raskt identifisere problematiske mønstre i komponentene og motta detaljerte rapporter som fremhever problemer, berørte komponenter og gir koblinger til dokumentasjon om hvordan du løser hvert problem. Dette sikrer at løsningene dine er optimalisert for ytelse, stabilitet og pålitelighet.
Løsningskontroll fungerer sammen med uadministrerte løsninger som kan eksporteres fra et miljø.
Du kan kjøre løsningskontroll enten fra Power Apps (make.powerapps.com) eller ved hjelp av PowerShell.
Slik hjelper løsningskontroll deg
For å levere på komplekse forretningskrav kan utviklere ofte ende opp med svært avanserte løsninger som tilpasser og utvider Power Platform. 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øsningskontrollfunksjonen kan du utføre en kontroll i løpet av sekunder på løsningen, som bruker et sett med regler for anbefalte fremgangsmåter for raskt å identifisere problematiske mønstre. Når kontrollen er fullført, mottar du en detaljert rapport i tillegg til Power Apps i en e-postmelding som viser problemene som er identifisert, komponentene og koden som er berørt, og koblinger til dokumentasjon som beskriver hvordan du løser hvert 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)
Obs!
- 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 vil være vellykket. De statiske analysekontrollene som utføres mot løsningen, kjenner ikke den konfigurerte tilstanden til målmiljøet, og vellykket import kan være avhengig av andre løsninger eller konfigurasjoner i miljøet.
Kjøre løsningskontrollen
Logg på Power Apps.
Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
Ved siden av den uadministrerte løsningen du vil analysere, velger du ..., peker på Løsningskontroll, og velger deretter Kjør.
Kommandoknappen Løsningskontroll har en innlastingsindikator, og du kan legge merke til Kjører … i Løsningskontroll-kolonnen i Løsning-listen.
Obs!
- 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.
- 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 ikke-Microsoft-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.
Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
Ved siden av den uadministrerte løsningen der du vil vise løsningskontrollrapporten, velger du ..., peker på Løsningskontroll og velger deretter Vis resultater.
Velg et problem for å vise detaljer og veiledning for hvordan du løser problemet.
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.
- Velg Løsninger i venstre rute. Hvis elementet ikke finnes i sideruten, velger du ...Mer og deretter elementet du vil ha.
- 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.
- 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.
Kjør løsningskontroll ved hjelp av PowerShell
En PowerShell-modul er tilgjengelig som du kan bruke 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
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 dens funksjonelle ekvivalenter. |
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 Web Storage, IndexedDB eller andre moderne metoder i stedet. | 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 | Direkte kall til metode html() manipulerer ofte (for eksempel i jQuery-rammeverket) DOM uten sanering 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 ingen inndatavalidering og bør unngås. Bruk WinJS.Utilities.setInnerHTML() i stedet. | Middels | Sikkerhet |
Lerretsapp | app-formula-issues-high | Gå til Power Apps formelreferanse for 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).