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

  1. Entre no Power Apps.

  2. No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.

  3. Do lado da solução não gerenciada que você deseja analisar, selecione ..., aponte para Verificador de soluções e selecione Executar.

    Executar o comando do verificador de soluções.

  4. 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.

    Status do verificador de soluções.

    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.

  5. 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.

  1. No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.

  2. 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.

  3. Selecione um problema para exibir os detalhes e as orientações sobre como resolvê-lo.

    Resultados da exibição do Verificador de solução.

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.

  1. No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione …Mais e selecione o item desejado.
  2. 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.
  3. 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).