Compartilhar via


Melhorar o desempenho, a estabilidade e a confiabilidade da solução

As soluções são usadas para distribuir objetos do Power Platform, como aplicativos, tabelas, fluxos, recursos da Web e plug-ins. Este artigo apresenta o recurso verificador de solução, uma ferramenta avançada que executa uma análise estática abrangente dos seus objetos de solução com base em um conjunto de regras de melhores práticas. Usando o verificador de solução, você pode identificar rapidamente padrões problemáticos em seus componentes e receber relatórios detalhados que destacam problemas, componentes afetados e fornecem links para documentação sobre como resolver cada problema. Isso garante que suas soluções sejam otimizadas para desempenho, estabilidade e confiabilidade.

Resultados e detalhes de exemplo do Verificador de solução

O verificador de soluções funciona com soluções não gerenciadas que podem ser exportadas de um ambiente.

Você pode executar o verificador de solução do Power Apps (make.powerapps.com) ou usando o PowerShell.

Como o verificador de solução ajuda você

Para atender a requisitos comerciais complexos, os criadores geralmente podem chegar a soluções altamente avançadas que personalizam e estendem o Power Platform. 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 verificação em segundos em sua solução que usa um conjunto de regras de melhores práticas para identificar rapidamente esses padrões problemáticos. Após concluir a verificação, você receberá um relatório detalhado no Power Apps, bem como em uma mensagem de email, 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 do fluxo de trabalho personalizadas do Dataverse
  • Recursos da Web do Dataverse (HTML e JavaScript)
  • Configurações do Dataverse, como etapas das mensagens do SDK
  • Fluxos do Power Automate (por meio do verificador de fluxo)
  • Expressões do Power Fx (por meio do verificador de aplicativo)

Nota

  • 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 do Verificador de solução tem um indicador de carregamento e você notará um estado Executando... na coluna Verificação de solução da lista de Soluções.

Status do verificador de soluções

Observação

  • O verificador de solução 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 for concluída.
  1. 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 não gerenciada pela Microsoft. 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.

    Análise de resultados e detalhes de exemplo 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á no formato do Excel 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. Todos
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 nº 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, acesse o pacote NPM @microsoft/eslint-plugin-power-apps.

Executar o verificador de solução usando o PowerShell

Um módulo do PowerShell 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 análise de soluções gerenciadas e não gerenciadas para ambientes do Power Apps ou para automatizar e integrar o serviço em seus pipelines de compilação e versão. Mais informações: Visão geral de Microsoft.PowerApps.Checker.PowerShell

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 Categoria
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 Incluir atributos de filtragem 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 do Dynamics 365 Field Service válida. 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 segmente 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 avoid-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. Em vez disso, use userSettings.getSecurityRolePrivilegesInfo. 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 DOM 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-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 os métodos semelhantes não executam nenhuma validação de entrada e devem ser evitados. Em vez disso, use WinJS.Utilities.setInnerHTML(). Médio Segurança
Aplicativo de Tela app-formula-issues-high Acesse Referência da fórmula do Power Apps para obter detalhes adicionais. 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
Fluxo da área de trabalho desktopflow-avoid-unsafe-password As senhas estão gerenciadas de forma insegura no fluxo. Alto Segurança
Fluxo da área de trabalho desktopflow-avoid-subflow-recursion Chamadas recursivas detectadas entre subfluxos, causando possivelmente um loop infinito. Médio Projetar
Fluxo da área de trabalho desktopflow-avoid-infinite-loop Loop infinito detectado no fluxo, possivelmente fazendo com que ele seja executado indefinidamente. Médio Projetar
Fluxo da área de trabalho desktopflow-avoid-incomplete-if-branch Ação if incompleta detectada, com conteúdo ausente ou que contenha somente ações na ramificação Else. Baixo Projetar
Fluxo da área de trabalho desktopflow-avoid-excessive-nested-ifs As cláusulas if aninhadas excedem cinco níveis. Baixo Capacidade de Manutenção
Fluxo da área de trabalho desktopflow-avoid-empty-on-error-block A ação "Erro no bloco" está vazia e não processa erros. Baixo Projetar
Fluxo da área de trabalho desktopflow-limit-argument-count O total de variáveis de entrada/saída excede o limite de 25 variáveis. Baixo Capacidade de Manutenção
Fluxo da área de trabalho desktopflow-input-argument-default-value As variáveis de entrada/saída não estão usando valores padrão. Baixo Capacidade de Manutenção
Fluxo da área de trabalho desktopflow-limit-variable-name-length O nome da variável excede o limite de 25 caracteres. Baixo Capacidade de Manutenção
Fluxo da área de trabalho desktopflow-avoid-excessive-wait-actions Foi detectado o uso incorreto de ações de espera, com mais de 10 ações de espera causando possíveis gargalos. Baixo Performance
Fluxo da área de trabalho desktopflow-avoid-immense-wait-duration Foi detectado um imenso tempo de espera, excedendo o limite de 600 segundos para ações de espera codificadas. Baixo Performance

Consulte 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