Melhorar o desempenho, a estabilidade e a fiabilidade dos componentes com o verificador de soluções

Para lidar com requisitos de negócio complexos, os criadores acabam, frequentemente, com soluções altamente avançadas que personalizam e expandem a plataforma do Microsoft Dataverse. Com implementações avançadas vem um maior risco em que os problemas de desempenho, estabilidade e fiabilidade são introduzidos, o que pode afetar negativamente a experiência do utilizador final. Identificar e compreender como resolver estes problemas pode ser complicado e demorado. Com a funcionalidade do verificador de soluções pode executar uma análise estática avançada em soluções contra um conjunto de regras de práticas recomendadas e rapidamente identificar estes padrões problemáticos. Quando a verificação estiver concluída, recebe um relatório detalhado que lista os problemas identificados, os componentes e código afetados e ligações para a documentação que descreve como resolvê-los.

O verificador de soluções analisa estes componentes da solução:

  • Atividades de fluxo de trabalho personalizado do Dataverse
  • Recursos Web do Dataverse (HTML e JavaScript)
  • Configurações do Dataverse, como passos de mensagens de SDK
  • Fluxos do Power Automate (através do verificador de fluxos)
  • Expressões do Power Fx (através do verificador de fluxos)

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

Nota

  • Este tópico explica como executar o verificador de soluções a partir do portal de criadores do Power Apps. Também está disponível um módulo do PowerShell que pode ser utilizado para interagir diretamente com o serviço. O módulo Microsoft.PowerApps.Checker.PowerShell pode ser utilizado para análise de soluções não geridas para ambientes do Power Apps, ou para automatizar e integrar o serviço nos seus pipelines de compilação e lançamento. Mais informações: Descrição geral do Microsoft.PowerApps.Checker.PowerShell
  • O verificador de soluções suporta variáveis globais para a sintaxe ECMAScript 2015 (ES6) e até ECMAScript 2018 (ES9). Quando é detetado JavaScript através de variáveis globais posteriores ao ES6, ou com sintaxe posterior ao ES9, é reportado um problema de sintaxe não suportada para o recurso Web.
  • A utilização do verificador de soluções não garante que uma importação da solução seja bem sucedida. As verificações de análise estáticas realizadas contra a solução desconhecem o estado configurado do ambiente de destino e o sucesso das importações pode depender de outras soluções ou configurações no ambiente.

Execute o verificador de soluções

  1. Inicie sessão no Power Apps.

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

  3. Junto da solução não gerida que pretende analisar, selecione ..., aponte para Verificador de soluções e, em seguida, selecione Executar.

    Execute o comando do verificador de soluções.

  4. O botão de comando Verificador de soluções tem um indicador de carregamento e verá uma mensagem Em execução... na coluna Verificador de soluções da lista Solução.

    Estado do verificador de soluções.

    Tenha em atenção o seguinte:

    • O verificador de soluções poderá demorar alguns minutos para concluir a análise.

    • Receberá uma notificação por e-mail e uma notificação na área de Notificações do site do Power Apps quando a verificação estiver concluída.

  5. Ver o relatório quando a verificação estiver concluída.

Cancelar uma verificação

Depois de enviar uma verificação de soluções no ambiente, a verificação pode ser cancelada através do painel de estado na área superior direita da página Soluções.

Quando cancela uma verificação, a verificação de solução pára a execução e o estado da verificação de solução regressa ao estado anterior.

Estados do verificador de soluções

Quando instala o verificador de soluções no ambiente, a coluna Verificação de solução fica disponível na lista Soluções. Esta coluna apresenta os estados de análise da solução para uma solução.

State Descrição
Não foi executada A solução nunca foi analisada.
Em Execução A solução está a ser analisada.
Não foi possível concluir A análise de solução foi solicitada, mas a análise não foi concluída com êxito.
Resultado à data de data e hora A análise de solução foi concluída e os resultados estão disponíveis para transferência.
Não foi possível concluir. Resultado como de data e hora O pedido de análise mais recente não foi concluído com êxito. Podem ser transferidos os últimos resultados com êxito.
Verificado pela Microsoft Esta é uma solução gerida da Microsoft. A análise de solução não é permitida nestas soluções.
Verificado pelo Publisher Esta é uma solução gerida de terceiros. Atualmente, a análise de solução não está disponível para estas soluções.

Reveja o relatório do verificador de soluções

Quando uma verificação de solução é concluída, pode ver o relatório de análise no portal ou transferir o relatório a partir do Web browser. No portal, tem opções para ordenar os resultados por Problema, Localização ou Gravidade e ver informações detalhadas sobre os problemas detetados na sua solução.

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

  2. Junto da solução não gerida, onde pretende visualizar o relatório do verificador de soluções, selecione ..., selecione Verificador de soluções e, em seguida, selecione Ver resultados.

  3. Selecione um problema para ver informações e orientações sobre como o resolver.

    Ver resultados do verificador de soluções.

Os resultados da verificação de soluções também estão disponíveis para transferência. O ficheiro zip do verificador de soluções é transferido para a pasta especificada pelo seu browser. O relatório de transferência está no formato Excel e contém várias visualizações e colunas que o ajudam a identificar o impacto, tipo e localização de cada problema detetado na sua solução. Também é fornecida uma ligação para instruções detalhadas sobre como resolver o problema.

  1. No painel esquerdo, selecione Soluções. Se o item não estiver no painel lateral, selecione ...Mais e, em seguida, selecione o item pretendido.
  2. Junto da solução não gerida onde pretende transferir o relatório do verificador de soluções, selecione ..., selecione Verificador de soluções e, em seguida, selecione Transferir resultados.
  3. O ficheiro zip do verificador de soluções é transferido para a pasta especificada pelo seu browser.

Segue-se um resumo de cada coluna no relatório.

Coluna de relatório Descrição Aplica-se ao componente
Problema O título do problema identificado na solução. Tudo
Categoria A categorização do problema identificada, tal como Desempenho, Capacidade de Manutenção, Utilização, Capacidade de Suporte, Estrutura, Segurança, Acessibilidade ou Preparação de Atualizações. Tudo
Gravidade Representa o impacto potencial do problema identificado. Os tipos de impacto disponíveis são Crítico, Alto, Médio, Baixo e Informações. Tudo
Orientação Ligar ao artigo detalhando o problema, o impacto e a ação recomendada. Tudo
Componente O componente da solução onde o problema foi identificado. Tudo
Location A localização e/ou ficheiro de origem do componente onde ocorreu o problema que foi identificado, tal como o nome de ficheiro de JavaScript ou conjunto. Tudo
Linha # A referência de linha de número do problema no componente de recurso web afetados. Recursos Web
Módulo Nome do módulo em que o problema foi identificado no conjunto foi detetado. Atividade de fluxo de trabalho personalizado
Tipo Tipo de problema identificado no conjunto. Atividade de fluxo de trabalho personalizado
Membro Membro do problema identificado no conjunto. Atividade de fluxo de trabalho personalizado
Declaração A declaração de código ou configuração que resultou no problema. Tudo
Comentários Detalhes sobre o problema que inclui passos resolução de problemas de nível elevado. Tudo

Executar regras de verificação de solução localmente

Pode executar regras de verificação de solução no seu ambiente de desenvolvimento para detetar problemas muito mais rapidamente à medida que cria os recursos da solução. Atualmente, isto é suportado para recursos Web (JavaScript e TypeScript). Para obter mais detalhes, aceda ao pacote NPM @microsoft/eslint-plugin-power-apps.

Regras de práticas recomendadas utilizadas pelo verificador de soluções

A tabela a seguir lista o tipo de componente, a descrição da regra, a gravidade e a categoria. As violações críticas são bloqueadas ou avisadas quando configuradas para a imposição do verificador de soluções em ambientes geridos. Mais informações: Utilizar verificador de soluções em Ambientes Geridos

Componente da solução Nome da regra Descrição da regra Gravidade Categoria
Plug-in ou atividade de fluxo de trabalho meta-remove-dup-reg Evite registos de plug-in duplicados do Dataverse. Crítico Desempenho
Plug-in ou atividade de fluxo de trabalho meta-avoid-reg-no-attribute Inclua atributos de filtragem com registos de plug-in do Dataverse. Meio Desempenho
Plug-in ou atividade de fluxo de trabalho meta-avoid-reg-retrieve Utilize com cautela os plug-ins do Dataverse registados para Obter e Obter Várias mensagens. Meio Desempenho
Plug-in ou atividade de fluxo de trabalho meta-remove-inactive Remova as configurações inativas do Dataverse. Mínimo Capacidade de Manutenção
Plug-in ou atividade de fluxo de trabalho meta-avoid-crm4-event Não utilize a fase de registo de plug-ins do Microsoft Dynamics CRM 4.0. Meio Preparação de atualizações
Plug-in ou atividade de fluxo de trabalho meta-avoid-retrievemultiple-annotation Evite registar um plug-in no RetrieveMultiple de anotação. Máximo Utilização
Plug-in ou atividade de fluxo de trabalho meta-license-sales-sdkmessages A solução contém mensagens e operações do SDK que exigem uma licença válida do Dynamics 365. Mínimo Licenciamento
Aplicação condicionada por modelo meta-license-sales-customcontrols A solução contém controlos personalizados que exigem uma licença válida do Dynamics 365 Sales. Mínimo Licenciamento
Aplicação condicionada por modelo meta-license-sales-entity-operations A solução contém entidades com mensagens restritas do SDK que exigem uma licença válida do Dynamics 365. Mínimo Licenciamento
Recursos Web use-async Interagir com recursos HTTP e HTTPS de forma assíncrona. Crítico Desempenho
Recursos Web avoid-modals Evite utilizar diálogos modais. Máximo Capacidade de Suporte
Recursos Web avoid-dom-form Máximo Capacidade de Suporte
Recursos Web avoid-dom-form-event Máximo Capacidade de Suporte
Recursos Web avoid-crm2011-service-odata Não vise o ponto final Microsoft Dynamics CRM 2011 OData 2.0. Crítico Preparação de atualizações
Recursos Web avoid-crm2011-service-soap Não vise os serviços SOAP do Microsoft Dynamics CRM 2011. Crítico Preparação de atualizações
Recursos Web avoid-loadtheme Não utilize a API loadTheme Fluent v8. Mínimo Capacidade de Suporte
Recursos Web avoid-browser-specific-api Não utilize plug-ins do browser ou APIs legadas do Internet Explorer. Crítico Preparação de atualizações
Recursos Web avoid-unpub-api Máximo Capacidade de Suporte
Recursos Web avoid-window-top Máximo Capacidade de Suporte
Recursos Web avoid-2011-api Não utilize o objeto de modelo preterido do Microsoft Dynamics CRM 2011. Em vez disso, siga a documentação da API Web do Dataverse. Máximo Preparação de atualizações
Recursos Web use-relative-uri Não utilize URLs de ponto final absolutos do Dataverse. Meio Capacidade de Manutenção
Recursos Web use-cached-webresource Meio Desempenho
Recursos Web use-client-context Utilize contextos de cliente. Meio Preparação de atualizações
Recursos Web use-navigation-api Utilizar parâmetros de API de navegação. Meio Preparação de atualizações
Recursos Web use-offline Meio Preparação de atualizações
Recursos Web do-not-make-parent-assumption Máximo Design
Recursos Web use-org-setting Utilize definições da organização. Meio Preparação de atualizações
Recursos Web use-global-context Meio Preparação de atualizações
Recursos Web use-grid-api Utilize as APIs da grelha. Meio Preparação de atualizações
Recursos Web use-utility-dialogs Meio Utilização
Recursos Web avoid-isActivityType Substitua o método Xrm.Utility.isActivityType pelo novo Xrm.Utility.gettableMetadata e não utilize as regras de friso. Meio Preparação de atualizações
Recursos Web meta-avoid-silverlight A utilização do recurso Web Silverlight foi preterida. Meio Preparação de atualizações
Recursos Web remove-debug-script Evite incluir script de depuração em ambientes que não sejam de desenvolvimento. Meio Utilização
Recursos Web use-strict-mode Utilize o modo estrito quando for possível. Meio Utilização
Recursos Web use-strict-equality-operators Utilize operadores de igualdade estrita. Meio Utilização
Recursos Web avoid-eval Não utilize a função 'eval' ou os seus equivalentes funcionais. Crítico Segurança
Recursos Web evitar-with Não use o operador 'with'. Máximo Desempenho
Recursos Web remove-alert Não utilize a função "alerta" ou os respetivos equivalentes funcionais. Meio Utilização
Recursos Web remove-console Evite utilizar métodos na consola. Meio Utilização
Recursos Web avoid-ui-refreshribbon Evite utilizar refreshRibbon em onload e EnableRule do formulário. Crítico Desempenho
Recursos Web use-getsecurityroleprivilegesinfo Evite userSettings.securityRolePrivileges. Em vez disso, utilize userSettings.getSecurityRolePrivilegesInfo. Máximo Desempenho
Recursos Web use-appsidepane-api Utilize Xrm.App.sidePanes.createPane em vez de Xrm.Panels.loadPanel. Meio Preparação de atualizações
Recursos 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, utilize o Armazenamento Web, IndexedDB ou outros métodos modernos. Meio Segurança
Recursos Web web-sdl-no-document-domain A propriedade document.domain tem de ser revista para evitar ignorar verificações de origem iguais. A utilização de domínios de nível superior, como o azurewebsites.net está estritamente proibida. Meio Segurança
Recursos Web web-sdl-no-document-write As chamadas para document.write ou document.writeln manipulam diretamente o DOM sem qualquer sanitização e devem ser evitadas. Em vez disso, utilize document.createElement() ou métodos semelhantes. Meio Segurança
Recursos Web web-sdl-no-html-method As chamadas diretas para o método html() (por ex.: na estrutura jQuery) manipulam frequentemente o DOM sem qualquer sanitização e devem ser evitadas. Em vez disso, utilize document.createElement() ou métodos semelhantes. Meio Segurança
Recursos Web web-sdl-no-inner-html As atribuições para as propriedades innerHTML ou outerHTML manipulam diretamente o DOM sem qualquer sanitização e devem ser evitadas. Em vez disso, utilize document.createElement() ou métodos semelhantes. Meio Segurança
Recursos Web web-sdl-no-insecure-url Os protocolos inseguros, tais como HTTP ou FTP, devem ser substituídos pelas respetivas partes encriptadas (HTTPS, FTPS) para evitar o envio de dados potencialmente sensíveis sobre redes não fidedignas em texto simples. Meio Segurança
Recursos Web web-sdl-no-msapp-exec-unsafe As chamadas para MSApp.execUnsafeLocalFunction() ignoram a validação de injeção do script e devem ser evitadas. Meio Segurança
Recursos Web web-sdl-no-postmessage-star-origin Forneça sempre a origem do alvo específica e não * quando enviar dados para outras janelas utilizando postMessage para evitar a utilização de dados fora do limite da confiança. Meio Segurança
Recursos Web web-sdl-no-winjs-html-unsafe As chamadas para WinJS.Utilities.setInnerHTMLUnsafe() e métodos semelhantes não executam qualquer validação de entrada e devem ser evitadas. Em vez disso, utilize o WinJS.Lamies.setInnerHTML(). Meio Segurança
Canvas App app-formula-issues-high Consulte as referências de fórmula do Power Apps para obter mais detalhes. Crítico Design
Canvas App app-formula-issues-medium Consulte as referências de fórmula do Power Apps para obter mais detalhes. Meio Design
Canvas App app-formula-issues-low Consulte as referências de fórmula do Power Apps para obter mais detalhes. Mínimo Design
Canvas App app-use-delayoutput-text-input Utilize carga atrasada em alguns cenários para melhorar o desempenho. Meio Desempenho
Canvas App app-reduce-screen-controls Limite o número de controlos de aplicações para melhorar o desempenho. Meio Desempenho
Canvas App app-include-accessible-label Use etiquetas explícitas para melhorar a acessibilidade das aplicações. Meio Acessibilidade
Canvas App app-include-alternative-input Certifique-se de que todos os elementos interativos estão acessíveis a entradas alternativas. Meio Acessibilidade
Canvas App app-avoid-autostart Evite utilizar automaticamente os reprodutores dentro de uma aplicação. Meio Acessibilidade

Consulte também

Melhores práticas e orientação para o Dataverse
Melhores práticas e orientação para aplicações orientadas por modelos
Problemas comuns e resoluções para o Verificador de Soluções

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).