Migliora le prestazioni, la stabilità e l'affidabilità dei componenti con la verifica della soluzione
Per soddisfare requisiti aziendali complessi, i creatori possono spesso ritrovarsi con soluzioni altamente avanzate che personalizzano ed estendono la piattaforma Microsoft Dataverse. L'utilizzo di implementazioni avanzate implica un rischio accresciuto di problemi relativi a prestazioni, stabilità e affidabilità, che possono influire negativamente sull'esperienza dell'utente. L'identificazione e la comprensione della risoluzione di questi problemi possono risultare complesse e richiedere molto tempo. Con la funzionalità verifica soluzione, è possibile eseguire un controllo di analisi statica completo delle soluzioni rispetto a un set di regole di procedure consigliate e individuare rapidamente gli schemi problematici. Dopo il completamento della verifica, riceverai un report dettagliato che elenca i problemi identificati, i componenti e il codice interessato nonché collegamenti alla documentazione che descrive il modo in cui risolvere i problemi.
La verifica soluzione analizza questi componenti di soluzione:
- Attività flusso di lavoro personalizzate di Dataverse
- Risorse Web di Dataverse (HTML e JavaScript)
- Configurazioni Dataverse, come passaggi di messaggi SDK
- Flussi Power Automate (tramite la verifica flusso)
- Espressioni Power Fx (tramite la verifica app)
La verifica soluzione utilizza soluzioni non gestite che è possibile esportare da un ambiente.
Nota
- In questo argomento viene illustrato come eseguire la verifica della soluzione dal portale per gli autori di Power Apps. Un modulo di PowerShell è inoltre disponibile e utilizzabile per interagire direttamente con il servizio. Il modulo Microsoft.PowerApps.Checker.PowerShell può essere utilizzato per l'analisi delle soluzioni non gestite per gli ambienti Power Apps o per automatizzare e integrare il servizio nelle pipeline di creazione e rilascio. Altre informazioni: Panoramica di Microsoft.PowerApps.Checker.PowerShell
- Il controllo della soluzione supporta le variabili globali per la sintassi ECMAScript 2015 (ES6) e fino a ECMAScript 2018 (ES9). Quando JavaScript viene rilevato utilizzando variabili globali successive a ES6 o una sintassi successiva a ES9, viene segnalato un problema di sintassi Web non supportata per la risorsa Web.
- L'utilizzo della verifica soluzione non garantisce che l'importazione di una soluzione avrà esito positivo. I controlli di analisi statica eseguiti sulla soluzione non conoscono lo stato configurato dell'ambiente di destinazione e il successo dell'importazione può dipendere da altre soluzioni o configurazioni nell'ambiente.
Eseguire la verifica soluzione
Accedi a Power Apps.
Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
Accanto alla soluzione non gestita che intendi analizzare, seleziona ..., punta a Verifica soluzione e quindi seleziona Esegui.
Il pulsante di comando Verifica soluzione ha un indicatore di caricamento e visualizzerai In esecuzione... nella colonna Verifica soluzione dell'elenco Soluzione.
Nota quanto segue:
L'analisi della verifica soluzione può richiedere alcuni minuti.
Al termine della verifica, riceverai una notifica tramite posta elettronica e una notifica nell'area Notifiche del sito di Power Apps.
Visualizza il report al termine della verifica.
Annullare una verifica
Dopo l'avvio di una verifica delle soluzioni nell'ambiente in uso, puoi annullare la verifica nel riquadro dello stato nella parte superiore destra della pagina Soluzioni.
Quando annulli una verifica, l'esecuzione della verifica soluzione viene arrestata e lo stato ritorna allo stato precedente.
Stati della verifica soluzione
Quando installi la verifica soluzione nell'ambiente in uso, la colonna Verifica soluzione diventa disponibile nell'elenco Soluzioni. Questa colonna visualizza gli stati di analisi per una soluzione.
Stato | Descrizione |
---|---|
Non eseguita | La soluzione non è mai stata analizzata. |
In esecuzione | La soluzione è in fase di analisi. |
Non completata | L'analisi della soluzione è stata richiesta ma non è stata completata correttamente. |
Risultati al data e ora | L'analisi della soluzione è stata completata e i risultati sono disponibili per il download. |
Non completata. Risultati al data e ora | L'ultima richiesta di analisi non è stata completata correttamente. Gli ultimi risultati corretti possono essere scaricati. |
Verificata da Microsoft | Una soluzione gestita da Microsoft. L'analisi della soluzione non è autorizzata per queste soluzioni. |
Verificata dall'autore | Una soluzione gestita da terze parti. L'analisi della soluzione non è attualmente disponibile per queste soluzioni. |
Esaminare il report della verifica soluzione
Al termine di una verifica, puoi visualizzare il report di analisi nel portale o puoi scaricare il report dal Web browser. Nel portale, sono disponibili opzioni per ordinare i risultati per Problema, Posizione o Gravità e per visualizzare informazioni dettagliate sui problemi rilevati nella soluzione.
Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
Accanto alla soluzione non gestita in cui si intende visualizzare il report della verifica soluzione, seleziona ..., punta a Verifica soluzione e quindi seleziona Visualizza risultati.
Seleziona un problema per visualizzare i dettagli sullo stesso e le linee guida su come risolverlo.
I risultati di verifica soluzione possono anche essere scaricati. Il file zip della verifica soluzione viene scaricati nella cartella specificata dal Web browser. Il report del download è in formato Excel e contiene varie visualizzazioni e colonne che ti consentono di identificare l'impatto, il tipo e il percorso di ogni problema rilevato nella soluzione. È inoltre fornito un collegamento a istruzioni dettagliate su come risolvere il problema.
- Nel riquadro sinistro seleziona Soluzioni. Se l'elemento non si trova nel riquadro del pannello laterale, seleziona …Altro, quindi l'elemento desiderato.
- Accanto alla soluzione non gestita in cui si intende scaricare il report della verifica soluzione, seleziona ..., punta a Verifica soluzione e quindi seleziona Scarica risultati.
- Il file zip della verifica soluzione viene scaricati nella cartella specificata dal Web browser.
Di seguito è riportato un riepilogo di ogni colonna del report.
Colonna di report | Descrizione | Si applica al componente |
---|---|---|
Problema | Il titolo del problema identificato nella soluzione. | Tutti |
Categorie | La categorizzazione del problema identificato, ad esempio Prestazioni, Manutenibilità, Utilizzo, Supporto, Progettazione, Sicurezza, Accessibilità o Preparazione aggiornamenti. | Tutte le date |
Gravità | Rappresenta l'impatto potenziale del problema identificato. I tipi di impatto disponibili sono Critico, Elevato, Medio, Basso e Informativo. | Tutte le date |
Linee guida | Collegamento all'articolo che descrive in modo dettagliato il problema, l'impatto e le azioni risolutive. | Tutti |
Componente | Il componente di soluzione in cui il problema è stato identificato. | Tutti |
Località | Il percorso e/o il file di origine del componente in cui si è verificato il problema identificato, ad esempio l'assembly o il nome di file JavaScript. | Tutti |
Riga # | Il riferimento al numero di riga del problema nel componente della risorsa Web interessata. | Risorse Web |
Modulo | Il nome del modulo in cui è stato rilevato il problema identificato nell'assembly. | Attività personalizzata dei flussi di lavoro |
Type | Il tipo di problema identificato nell'assembly. | Attività personalizzata dei flussi di lavoro |
Membro | Il membro del problema identificato nell'assembly. | Attività personalizzata dei flussi di lavoro |
Istruzione | L'istruzione o la configurazione del codice che ha causato il problema. | Tutti |
Commenti | I dettagli sul problema tra cui procedure di risoluzione. | Tutte le date |
Eseguire le regole di verifica della soluzione in locale
È possibile eseguire le regole di verifica della soluzione nell'ambiente di sviluppo per rilevare i problemi molto prima durante la creazione delle risorse della soluzione. Questo è attualmente supportato per le risorse Web (JavaScript e TypeScript). Per maggiori dettagli, vai all'Hub di risorse NPM @microsoft/eslint-plugin-power-apps.
Regole di procedure consigliate utilizzate dalla verifica soluzione
La tabella seguente elenca il tipo di componente, la descrizione della regola, la gravità e la categoria. Le violazioni critiche vengono bloccate o avvertite quando configurate per l'applicazione della verifica delle soluzioni con ambienti gestiti. Ulteriori informazioni: Utilizzare la verifica della soluzione negli ambienti gestiti
Componente di soluzione | Nome regola | Descrizione regola | Gravità | Categoria |
---|---|---|---|---|
Plug-in o attività del flusso di lavoro | meta-remove-dup-reg | Evitare le registrazioni duplicate del plug-in Dataverse. | Critico | Prestazioni |
Plug-in o attività del flusso di lavoro | meta-avoid-reg-no-attribute | Includere gli attributi di filtro con le registrazioni del plug-in Dataverse. | Medio | Prestazioni |
Plug-in o attività del flusso di lavoro | meta-avoid-reg-retrieve | Prestare attenzione con i plug-in Dataverse registrati per i messaggi Retrieve e RetrieveMultiple. | Medio | Prestazioni |
Plug-in o attività del flusso di lavoro | meta-remove-inactive | Rimuovere le configurazioni inattive in Dataverse. | Minimo | Manutenibilità |
Plug-in o attività del flusso di lavoro | meta-avoid-crm4-event | Non utilizzare la fase di registrazione del plug-in Microsoft Dynamics CRM 4.0. | Medio | Preparazione aggiornamenti |
Plug-in o attività del flusso di lavoro | meta-avoid-retrievemultiple-annotation | Evita la registrazione di un plug-in su RetrieveMultiple di annotazione. | Alto | Utilizzo |
App basata su modello | meta-license-sales-entity-operations | La soluzione contiene entità con messaggi SDK limitati che richiedono una licenza Dynamics 365 valida. | Basso | Licenze |
App basata su modello | meta-license-fieldservice-customcontrols | La soluzione contiene controlli personalizzati che richiedono una licenza Dynamics 365 Field Service valida. | Basso | Licenze |
App basata su modello | meta-license-fieldservice-entity-operations | La soluzione contiene entità con operazioni e messaggi SDK limitati che richiedono una licenza Dynamics 365 Field Service valida. | Basso | Licenze |
Risorse Web | use-async | Interagisci con le risorse HTTPS e HTTP in modo asincrono. | Critico | Prestazioni |
Risorse Web | avoid-modals | Evita di utilizzare finestre di dialogo modali. | Massimo | Supportabilità |
Risorse Web | avoid-dom-form | Massimo | Supportabilità | |
Risorse Web | avoid-dom-form-event | Massimo | Supportabilità | |
Risorse Web | avoid-crm2011-service-odata | Non utilizzare l'endpoint Microsoft Dynamics CRM 2011 OData 2.0 come destinazione. | Critico | Preparazione aggiornamenti |
Risorse Web | avoid-crm2011-service-soap | Non utilizzare i servizi SOAP di Microsoft Dynamics CRM 2011 come destinazione. | Critico | Preparazione aggiornamenti |
Risorse Web | avoid-loadtheme | Non utilizzare l'API loadTheme Fluent v8. |
Minimo | Supportabilità |
Risorse Web | avoid-browser-specific-api | Non utilizzare le API legacy di Internet Explorer o i plug-in del browser. | Critico | Preparazione aggiornamenti |
Risorse Web | avoid-unpub-api | Massimo | Supportabilità | |
Risorse Web | avoid-window-top | Massimo | Supportabilità | |
Risorse Web | avoid-2011-api | Non utilizzare il modello a oggetti deprecato di Microsoft Dynamics CRM 2011. Segui invece la documentazione sull'API Web Dataverse. | Massimo | Preparazione aggiornamenti |
Risorse Web | use-relative-uri | Non utilizzare URL di endpoint Dataverse per app assoluti. | Medio | Manutenibilità |
Risorse Web | use-cached-webresource | Medio | Prestazioni | |
Risorse Web | use-client-context | Utilizza contesti cliente. | Medio | Preparazione aggiornamenti |
Risorse Web | use-navigation-api | Usa i parametri dell API per l'esplorazione. | Medio | Preparazione aggiornamenti |
Risorse Web | use-offline | Medio | Preparazione aggiornamenti | |
Risorse Web | do-not-make-parent-assumption | Massimo | Progettazione | |
Risorse Web | use-org-setting | Utilizza le impostazioni dell'organizzazione. | Medio | Preparazione aggiornamenti |
Risorse Web | use-global-context | Medio | Preparazione aggiornamenti | |
Risorse Web | use-grid-api | Utilizza le API di griglia. | Medio | Preparazione aggiornamenti |
Risorse Web | use-utility-dialogs | Medio | Utilizzo | |
Risorse Web | avoid-isActivityType | Sostituisci il metodo Xrm.Utility.isActivityType con il nuovo Xrm.Utility.gettableMetadata e non utilizzarlo nelle regole della barra multifunzione. | Medio | Preparazione aggiornamenti |
Risorse Web | meta-avoid-silverlight | L'utilizzo delle risorsa Web Silverlight è deprecato. | Medio | Preparazione aggiornamenti |
Risorse Web | remove-debug-script | Evita di includere gli script di debug in ambienti non di sviluppo. | Medio | Utilizzo |
Risorse Web | use-strict-mode | Utilizza la modalità rigida se possibile. | Medio | Utilizzo |
Risorse Web | use-strict-equality-operators | Utilizza operatori di uguaglianza rigidi | Medio | Utilizzo |
Risorse Web | avoid-eval | Non utilizzare la funzione "eval" o i relativi equivalenti funzionali. | Critico | Sicurezza |
Risorse Web | avoid-with | Non utilizzare l'operatore "with". | Massimo | Prestazioni |
Risorse Web | remove-alert | Non usare la funzione "alert" o i relativi equivalenti funzionali. | Medio | Utilizzo |
Risorse Web | remove-console | Si consiglia di non utilizzare metodi sulla console. | Medio | Utilizzo |
Risorse Web | avoid-ui-refreshribbon | Evita di utilizzare refreshRibbon nel modulo onload e EnableRule. | Critico | Prestazioni |
Risorse Web | use-getsecurityroleprivilegesinfo | Evita userSettings.securityRolePrivileges. Utilizza invece userSettings.getSecurityRolePrivilegesInfo. | Alto | Prestazioni |
Risorse Web | use-appsidepane-api | Utilizza Xrm.App.sidePanes.createPane invece di Xrm.Panels.loadPanel. | Medio | Preparazione aggiornamenti |
Risorse Web | web-sdl-no-cookies | I cookie HTTP sono un vecchio meccanismo di archiviazione lato client con rischi e limitazioni intrinseche. Usa invece Web Storage, IndexedDB o altri metodi moderni. | Medio | Sicurezza |
Risorse Web | web-sdl-no-document-domain | La scrittura sulla proprietà document.domain deve essere rivista per non ignorare i controlli della stessa origine. L'utilizzo di domini di primo livello come azurewebsites.net è severamente vietato. | Medio | Sicurezza |
Risorse Web | web-sdl-no-document-write | Le chiamate a document.write o document.writeln gestiscono il DOM direttamente senza alcuna bonifica e dovrebbero essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
Risorse Web | web-sdl-no-metodo-html | Le chiamate dirette al metodo html() spesso (ad esempio nel framework jQuery) gestiscono il DOM senza alcuna bonifica e dovrebbero essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
Risorse Web | web-sdl-no-inner-html | Le assegnazioni a proprietà innerHTML o outerHTML gestiscono il DOM direttamente senza alcuna bonifica e dovrebbero essere evitate. Utilizzare invece document.createElement() o metodi simili. | Medio | Sicurezza |
Risorse Web | web-sdl-no-insecure-url | I protocolli non sicuri come HTTP o FTP dovrebbero essere sostituiti dalle loro controparti crittografate (HTTPS, FTPS) per evitare l'invio di dati potenzialmente sensibili su reti non attendibili in chiaro. | Medio | Sicurezza |
Risorse Web | web-sdl-no-msapp-exec-unsafe | Le chiamate a MSApp.execUnsafeLocalFunction() ignorano la convalida dell'inserimento di script e devono essere evitate. | Medio | Sicurezza |
Risorse Web | web-sdl-no-postmessage-star-origin | Fornisci sempre un'origine di destinazione specifica, non * quando invii dati ad altre finestre utilizzando postMessage per evitare perdite di dati al di fuori del limite di attendibilità. | Medio | Sicurezza |
Risorse Web | web-sdl-no-winjs-html-unsafe | Le chiamate a WinJS.Utilities.setInnerHTMLUnsafe() e metodi simili non eseguono alcuna convalida dell'input e dovrebbero essere evitate. Utilizza WinJS.Utilities.setInnerHTML() invece. | Medio | Sicurezza |
Canvas App | app-formula-issues-high | Consulta le informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Critico | Progettazione |
Canvas App | app-formula-issues-medium | Consulta le informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Medio | Progettazione |
Canvas App | app-formula-issues-low | Consulta le informazioni di riferimento sulle formule di Power Apps per ulteriori dettagli. | Minimo | Progettazione |
Canvas App | app-use-delayoutput-text-input | Utilizza il caricamento ritardato in alcuni scenari per migliorare le prestazioni. | Medio | Prestazioni |
Canvas App | app-reduce-screen-controls | Limita il numero di controlli delle app per migliorare le prestazioni. | Medio | Prestazioni |
Canvas App | app-include-accessible-label | Usa etichette esplicite per migliorare l'accessibilità delle app. | Medio | Accessibilità |
Canvas App | app-include-alternative-input | Assicurati che tutti gli elementi interattivi siano accessibili agli input alternativi. | Medio | Accessibilità |
Canvas App | app-avoid-autostart | Evita di utilizzare l'avvio automatico sui lettori all'interno di un'app. | Medio | Accessibilità |
Vedi anche
Procedure consigliate e indicazioni per Dataverse
Procedure consigliate e indicazioni per le app basate sul modello
Problemi comuni e risoluzioni per Verifica soluzione
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).