Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta lista contém diretrizes e práticas recomendadas para o desenvolvimento de plug-in e fluxo de trabalho no Dataverse.
| Prática recomendada | Descrição |
|---|---|
| Não use tipos de solicitação em lote em plug-ins e atividades de fluxo de trabalho | Não use ExecuteMultipleRequest nem ExecuteTransactionRequest as classes de solicitação de mensagem no contexto de uma atividade de plug-in ou fluxo de trabalho. |
Desenvolver IPlugin implementações como sem estado |
Membros de classes que implementam IPlugin são expostos a possíveis problemas de segurança de thread, o que pode levar à inconsistência de dados ou problemas de desempenho. |
| Não duplique o registro de etapa do plug-in | O registro de etapa de plug-in duplicado faz com que o plug-in seja acionado várias vezes na mesma mensagem ou evento. |
| Não use a execução paralela em plug-ins e atividades de fluxo de trabalho | Não há suporte para threading multi ou paralelo em plug-ins ou atividades de fluxo de trabalho personalizadas. |
Implementar todos os tipos de consultas ao filtrar resultados usando PreOperationRetrieveMultiple |
Para obter melhor desempenho e resultados consistentes para todos os aplicativos, implemente a filtragem para todos os tipos de consultas que podem ser usadas com plug-ins registrados para o estágio de pré-operação de RetrieveMultiple. |
| Incluir atributos de filtragem com registro de plug-in | Se você não definir atributos de filtragem para uma etapa de registro de plug-in, o plug-in será executado sempre que uma mensagem de atualização ocorrer para esse evento. |
| Limitar o registro de plug-ins para as mensagens Retrieve e RetrieveMultiple | A adição da lógica de plug-in síncrona aos eventos de mensagem Retrieve e RetrieveMultiple pode causar lentidão. |
| Gerenciar plug-ins em uma única solução | Mantenha a definição de um assembly de plug-in em uma única solução. |
| Otimize o desenvolvimento de montagem sob medida | Considere mesclar plug-ins separados e atividades de fluxo de trabalho personalizadas em um único assembly personalizado para melhorar o desempenho e a manutenção. Mova plug-ins e atividades de fluxo de trabalho personalizadas para vários conjuntos personalizados se o tamanho de um assembly estiver próximo dos limites de tamanho do assembly de área restrita. |
| Definir KeepAlive como false ao interagir com hosts externos em um plug-in | Definir a propriedade KeepAlive como true no cabeçalho da solicitação HTTP ou não defini-la explicitamente como false pode causar maiores tempos de execução para plug-ins. |
| Definir Tempo limite ao fazer chamadas externas em um plug-in | Limite o período de tempo que as chamadas externas esperam uma resposta nos plug-ins. |
| Usar InvalidPluginExecutionException em plug-ins e atividades de fluxo de trabalho | Use InvalidPluginExecutionException ao gerar erros no contexto de um plug-in ou de uma atividade de fluxo de trabalho. |
| Usar iTracingService em Plug-ins | Use o ITracingService em seus plug-ins para entender o que acontece quando seu código é executado. |
| Verificar as dependências de certificação para plug-ins que fazem chamadas de saída | Verifique se todos os certificados dos quais seu código depende para chamadas de saída têm uma cadeia válida de certificados. |
| Escrever código com eficiência de memória | Recupere apenas os dados necessários no seu plug-in. |
Consulte Também
Aplicar lógica de negócios usando código
Use plug-ins para estender processos corporativos
Extensões de fluxo de trabalho