Melhorar o desempenho, a estabilidade e a confiabilidade dos componentes com o verificador de solução
Para atender a requisitos comerciais complexos, os criadores de aplicativos podem chegar a soluções altamente avançadas que personalizam e estendem a plataforma do Microsoft Dataverse. Com implementações avançadas, há um risco maior em que problemas de desempenho, estabilidade e confiabilidade são introduzidos, o que pode interferir negativamente na experiência do usuário. Identificar e entender como resolver esses problemas pode ser complicado e demorado. Com o recurso verificador de soluções, é possível executar uma rica verificação de análise estática em suas soluções em relação a um conjunto de regras de práticas recomendadas e identificar rapidamente esses padrões problemáticos. Após concluir a verificação, você receberá um relatório detalhado que lista os problemas identificados, os componentes e o código afetados e links para a documentação que descreve como resolver cada problema.
O verificador de soluções analisa estes componentes da solução:
- Atividades de fluxo de trabalho personalizadas do Dataverse
- Dataverse para recursos da Web de aplicativos (HTML e JavaScript)
- Dataverse para configurações de aplicativos, como etapas das mensagens do SDK
- Fluxos do Power Automate (via verificador de fluxo)
- Expressões do Power Fx (via verificador de aplicativo)
O verificador de soluções funciona com soluções não gerenciadas que podem ser exportadas de um ambiente.
Observação
- Este tópico explica como executar o verificador de soluções no portal do criador do Power Apps. Um módulo do PowerShell também está disponível e pode ser usado para interagir diretamente com o serviço. O módulo Microsoft.PowerApps.Checker.PowerShell pode ser usado para analisar soluções não gerenciadas para ambientes do Power Apps ou automatizar e integrar o serviço aos seus pipelines de build e lançamento. Mais informações: Visão geral de Microsoft.PowerApps.Checker.PowerShell
- O verificador de solução é compatível com variáveis globais para a sintaxe ECMAScript 2015 (ES6) e até ECMAScript 2018 (ES9). Quando o JavaScript é detectado por meio de variáveis globais posteriores a ES6 ou sintaxe posterior a ES9, é relatado um problema de sintaxe sem suporte para o recurso da Web.
- O uso do verificador de solução não garante que a importação de uma solução será bem-sucedida. As verificações de análise estática realizadas com a solução não conhecem o estado configurado do ambiente de destino e o sucesso da importação pode depender de outras soluções ou configurações no ambiente.
Executar o verificador de soluções
Entre no Power Apps.
No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.
Do lado da solução não gerenciada que você deseja analisar, selecione ..., aponte para Verificador de soluções e selecione Executar.
O botão de comando Verificador de soluções tem um indicador de carregamento e você notará uma mensagem Executando... estado na coluna Verificação de soluções da lista Solução.
Observe o seguinte:
O verificador de soluções pode levar alguns minutos para concluir a análise.
Você receberá uma notificação por email e uma notificação na área Notificações do site do Power Apps quando a verificação é concluída.
Exiba o relatório quando a verificação estiver concluída.
Cancelar uma verificação
Depois de apresentar uma verificação de soluções a seu ambiente, a verificação poderá ser cancelada por meio do painel de status na área superior direita da página Soluções.
Ao cancelar uma verificação, a verificação de soluções para de ser executada e o status da verificação de soluções retorna ao estado anterior.
Estados do verificador de soluções
Quando você instala o verificador de soluções em seu ambiente, a coluna Verificação de soluções fica disponível na lista Soluções. Essa coluna exibe os estados de análise da solução para uma solução.
Estado | Descrição |
---|---|
Não foi executado | A solução nunca foi analisada. |
Em Execução | A solução está sendo analisada. |
Não foi possível concluir | A análise da solução foi solicitada, mas não foi concluída com sucesso. |
Resultados a partir de data e hora | A análise da solução foi concluída, e os resultados estão disponíveis para download. |
Não foi possível concluir. Resultado a partir de data e hora | A solicitação de análise mais recente não foi concluída com sucesso. Os resultados bem-sucedidos mais recentes podem ser baixados. |
Verificado pela Microsoft | Esta é uma solução gerenciada pela Microsoft. A análise da solução não é permitida nessas soluções. |
Verificado pelo Fornecedor | Esta é uma solução gerenciada por terceiros. Atualmente, a análise da solução não está disponível para essas soluções. |
Revisar o relatório do verificador de soluções
Quando uma verificação de solução for concluída, você poderá ver o relatório da análise no portal ou poderá baixar o relatório direto do navegador da Web. No portal, você tem as opções para filtrar os resultados por Problema, Local ou Gravidade e exibir as informações detalhadas dos problemas detectados na solução.
No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.
Ao lado da solução não gerenciada onde você deseja ver o relatório do verificador da solução, selecione ..., aponte para Verificador da Solução e, em seguida, selecione Exibir resultados.
Selecione um problema para exibir os detalhes e as orientações sobre como resolvê-lo.
Os resultados da verificação da solução também estão disponíveis para download. O arquivo zip do verificador de soluções é baixado para a pasta especificada pelo seu navegador da Web. O relatório de download está em Excel formato e contém várias visualizações e colunas que ajudam você a identificar o impacto, o tipo e a localização de cada problema detectado em sua solução. Também é fornecido um link para orientações detalhadas sobre como resolver o problema também.
- No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.
- Ao lado da solução não gerenciada onde você deseja baixar o relatório do verificador da solução, selecione ..., aponte para Verificador da Solução e, em seguida, selecione Baixar.
- O arquivo zip do verificador de soluções é baixado para a pasta especificada pelo seu navegador da Web.
Veja um resumo de cada coluna no relatório.
Coluna de relatório | Descrição | Aplica-se ao componente |
---|---|---|
Emitir | O título do problema identificado na solução. | Tudo |
Categoria | A categorização do problema identificado, como Desempenho, Capacidade de Manutenção, Uso, Capacidade de Suporte, Design, Segurança, Acessibilidade ou Upgrade Readiness. | Todos |
Gravidade | Representa o impacto potencial do problema identificado. Os tipos de impacto disponíveis são Crítico, Alto, Médio, Baixo e Informativo. | Todos |
Orientações | Link para um artigo detalhando o problema, o impacto e a ação recomendada. | Tudo |
Componente | O componente da solução em que o problema foi identificado. | Tudo |
Location | O local e/ou arquivo de origem do componente em que o problema identificado ocorreu, como o nome do arquivo de assembly ou JavaScript. | Tudo |
Linha # | A referência do número da linha do problema no componente de recurso da Web afetado. | Recursos da Web |
Módulo | Nome do módulo em que foi detectado o problema identificado no assembly. | Atividade de fluxo de trabalho personalizada |
Tipo | Tipo do problema identificado no assembly. | Atividade de fluxo de trabalho personalizada |
Membro | Membro do problema identificado no assembly. | Atividade de fluxo de trabalho personalizada |
Declaração | A declaração de código ou configuração que resultou no problema. | Tudo |
Comentários | Detalhes sobre o problema que incluem etapas de resolução de alto nível. | Todos |
Executar as regras do verificador da solução localmente
Você pode executar as regras do verificador da solução em seu ambiente de desenvolvimento para detectar problemas muito antes de criar seus recursos de solução. Atualmente, há suporte para recursos da Web (JavaScript e TypeScript). Para obter mais detalhes, vá para o pacote NPM @microsoft/eslint-plugin-power-apps.
Regras de práticas recomendadas usadas pelo verificador de soluções
A tabela a seguir lista o tipo de componente, a descrição da regra, a gravidade e a categoria. Violações críticas são bloqueadas ou avisadas quando configuradas para a aplicação do verificador de soluções com ambientes gerenciados. Mais informações: Usar verificador de solução em Ambientes Gerenciados
Componente da solução | Nome da regra | Descrição da regra | Gravidade | Category |
---|---|---|---|---|
Atividade de plug-in ou fluxo de trabalho | meta-remove-dup-reg | Evitar registros de plug-ins do Dataverse duplicados. | Crítico | Performance |
Atividade de plug-in ou fluxo de trabalho | meta-avoid-reg-no-attribute | Inclui filtragem de atributos com registros de plug-in do Dataverse. | Médio | Performance |
Atividade de plug-in ou fluxo de trabalho | meta-avoid-reg-retrieve | Tenha cuidado com os plug-ins do Dataverse registrados para as mensagens Retrieve e RetrieveMultiple. | Médio | Performance |
Atividade de plug-in ou fluxo de trabalho | meta-remove-inactive | Remover configurações inativas no Dataverse | Baixo | Capacidade de Manutenção |
Atividade de plug-in ou fluxo de trabalho | meta-avoid-crm4-event | Não use o estágio de registro do plug-in do Microsoft Dynamics CRM 4.0. | Médio | Upgrade Readiness |
Atividade de plug-in ou fluxo de trabalho | meta-avoid-retrievemultiple-annotation | Evite registrar um plugin em RetrieveMultiple de anotação. | Alto | Uso |
Aplicativo baseado em modelo | meta-license-sales-entity-operations | A solução contém entidades com mensagens e operações do SDK restrito que exigem uma licença válida do Dynamics 365. | Baixo | Licenciamento |
Aplicativo baseado em modelo | meta-license-fieldservice-customcontrols | A solução contém controles personalizados que exigem uma licença válida do Dynamics 365 Field Service. | Baixo | Licenciamento |
Aplicativo baseado em modelo | meta-license-fieldservice-entity-operations | A solução contém entidades com mensagens e operações restritas do SDK que exigem uma licença válida do Dynamics 365 Field Service. | Baixo | Licenciamento |
Recursos da Web | use-async | Interaja com os recursos HTTP e HTTPS de forma assíncrona. | Crítico | Performance |
Recursos da Web | avoid-modals | Evite usar diálogos modais. | Alto | Capacidade de Suporte |
Recursos da Web | avoid-dom-form | Alto | Capacidade de Suporte | |
Recursos da Web | avoid-dom-form-event | Alto | Capacidade de Suporte | |
Recursos da Web | avoid-crm2011-service-odata | Não direcione o ponto de extremidade do Microsoft Dynamics CRM 2011 OData 2.0. | Crítico | Upgrade Readiness |
Recursos da Web | avoid-crm2011-service-soap | Não direcione os serviços SOAP do Microsoft Dynamics CRM 2011. | Crítico | Upgrade Readiness |
Recursos da Web | avoid-loadtheme | Não use loadTheme Fluent v8 API. |
Baixo | Capacidade de Suporte |
Recursos da Web | avoid-browser-specific-api | Não use plug-ins de navegador ou APIs herdados do Internet Explorer. | Crítico | Upgrade Readiness |
Recursos da Web | evitar-unpub-api | Alto | Capacidade de Suporte | |
Recursos da Web | avoid-window-top | Alto | Capacidade de Suporte | |
Recursos da Web | avoid-2011-api | Não use o modelo de objetos preterido do Microsoft Dynamics CRM 2011. Em vez disso, siga a documentação da API Web do Dataverse. | Alto | Upgrade Readiness |
Recursos da Web | use-relative-uri | Não use URLs absolutos do ponto de extremidade do Dataverse. | Médio | Capacidade de Manutenção |
Recursos da Web | use-cached-webresource | Médio | Performance | |
Recursos da Web | use-client-context | Use contextos de cliente. | Médio | Upgrade Readiness |
Recursos da Web | use-navigation-api | Use os parâmetros da API de navegação. | Médio | Upgrade Readiness |
Recursos da Web | use-offline | Médio | Upgrade Readiness | |
Recursos da Web | do-not-make-parent-assumption | Alto | Projetar | |
Recursos da Web | use-org-setting | Use configurações de organização. | Médio | Upgrade Readiness |
Recursos da Web | use-global-context | Médio | Upgrade Readiness | |
Recursos da Web | use-grid-api | Use as APIs da grade. | Médio | Upgrade Readiness |
Recursos da Web | use-utility-dialogs | Médio | Uso | |
Recursos da Web | avoid-isActivityType | Substitua o método Xrm.Utility.isActivityType pelo novo Xrm.Utility.gettableMetadata e não use nas regras da faixa de opções. | Médio | Upgrade Readiness |
Recursos da Web | meta-avoid-silverlight | O uso de recursos da Web Silverlight é preterido. | Médio | Upgrade Readiness |
Recursos da Web | remove-debug-script | Evite incluir o script de depuração em ambientes que não sejam de desenvolvimento. | Médio | Uso |
Recursos da Web | use-strict-mode | Use o modo estrito quando possível. | Médio | Uso |
Recursos da Web | use-strict-equality-operators | Use operadores de igualdade estritos. | Médio | Uso |
Recursos da Web | avoid-eval | Não use a função "eval" ou seus equivalentes funcionais. | Crítico | Segurança |
Recursos da Web | avoid-with | Não use com o operador 'with'. | Alto | Performance |
Recursos da Web | remove-alert | Não use a função 'alert' ou seus equivalentes funcionais. | Médio | Uso |
Recursos da Web | remove-console | Evite usar métodos no console. | Médio | Uso |
Recursos da Web | avoid-ui-refreshribbon | Evite usar refreshRibbon no onload de formulário e EnableRule. | Crítico | Performance |
Recursos da Web | use-getsecurityroleprivilegesinfo | Avoid userSettings.securityRolePrivileges. Use userSettings.getSecurityRolePrivilegesInfo instead. | Alto | Performance |
Recursos da Web | use-appsidepane-api | Use Xrm.App.sidePanes.createPane em vez de Xrm.Panels.loadPanel. | Médio | Upgrade Readiness |
Recursos da Web | web-sdl-no-cookies | Os cookies HTTP são um antigo mecanismo de armazenamento do lado do cliente com riscos e limitações inerentes. Em vez disso, use o Armazenamento na Web, IndexedDB ou outros métodos modernos. | Médio | Segurança |
Recursos da Web | web-sdl-no-document-domain | As gravações na propriedade document.domain devem ser revisadas para evitar o desvio de verificações de mesma origem. O uso de domínios de nível superior, como azurewebsites.net, é estritamente proibido. | Médio | Segurança |
Recursos da Web | web-sdl-no-document-write | As chamadas para document.write ou document.writeln manipulam o DOM diretamente sem qualquer limpeza e devem ser evitadas. Em vez disso, use o document.createElement() ou métodos semelhantes. | Médio | Segurança |
Recursos da Web | web-sdl-no-html-method | Chamadas diretas para o método html() frequentemente (por exemplo, no framework jQuery) manipulam o DOM sem nenhuma sanitização e devem ser evitadas. Em vez disso, use o document.createElement() ou métodos semelhantes. | Médio | Segurança |
Recursos da Web | web-sdl-no-inner-html | As atribuições às propriedades innerHTML ou outerHTML manipulam o DOM diretamente sem qualquer limpeza e devem ser evitadas. Em vez disso, use o document.createElement() ou métodos semelhantes. | Médio | Segurança |
Recursos da Web | web-sdl-no-insecure-url | Protocolos inseguros, como HTTP ou FTP, devem ser substituídos por seus equivalentes criptografados (HTTPS, FTPS) para evitar o envio de dados potencialmente confidenciais por redes não confiáveis em texto sem formatação. | Médio | Segurança |
Recursos da Web | web-sdl-no-msapp-exec-unsafe | As chamadas para MSApp.execUnsafeLocalFunction() ignoram a validação de injeção de script e devem ser evitadas. | Médio | Segurança |
Recursos da Web | web-sdl-no-postmessage-star-origin | Sempre forneça uma origem de destino específica e não * ao enviar dados para outras janelas usando postMessage para evitar vazamento de dados fora do limite de confiança. | Médio | Segurança |
Recursos da Web | web-sdl-no-winjs-html-unsafe | As chamadas para WinJS.Utilities.setInnerHTMLUnsafe() e métodos semelhantes não executam nenhuma validação de entrada e devem ser evitadas. Em vez disso, use WinJS.Utilities.setInnerHTML(). | Médio | Segurança |
Aplicativo de Tela | app-formula-issues-high | Veja as referências de fórmula do Power Apps para obter mais detalhes. | Crítico | Projetar |
Aplicativo de Tela | app-formula-issues-medium | Veja as referências de fórmula do Power Apps para obter mais detalhes. | Médio | Projetar |
Aplicativo de Tela | app-formula-issues-low | Veja as referências de fórmula do Power Apps para obter mais detalhes. | Baixo | Projetar |
Aplicativo de Tela | app-use-delayoutput-text-input | Use o carregamento atrasado em alguns cenários para melhorar o desempenho. | Médio | Performance |
Aplicativo de Tela | app-reduce-screen-controls | Limite o número de controles de aplicativos para melhorar o desempenho. | Médio | Performance |
Aplicativo de Tela | app-include-accessible-label | Use rótulos explícitos para melhorar a acessibilidade do aplicativo. | Médio | Acessibilidade |
Aplicativo de Tela | app-include-alternative-input | Verifique se todos os elementos interativos são acessíveis a entradas alternativas. | Médio | Acessibilidade |
Aplicativo de Tela | app-avoid-autostart | Evite usar a inicialização automática em jogadores dentro de um aplicativo. | Médio | Acessibilidade |
Confira também
Melhores práticas e orientação para o Dataverse
Práticas recomendadas e orientações para aplicativos controlados por modelos
Problemas comuns e soluções do Verificador de Solução
Observação
Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)
A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).