Práticas recomendadas e diretrizes para o desenvolvimento de plug-in e fluxo de trabalho para Microsoft Dataverse

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