Introdução

Concluído

Um plug-in é uma lógica imperativa que deve ser usada somente quando um processo declarativo, como uma regra de negócios, um fluxo ou um fluxo de trabalho, não atende ao seu requisito. 

Um plug-in é meramente um assembly .NET que implementa uma interface IPlugin, que pode ser encontrada no pacote Microsoft.CrmSdk.CoreAssemblies NuGet. A interface IPlugin expõe um único método, Execute, onde você pode colocar qualquer lógica personalizada que deseja invocar com base no evento que está sendo manipulado. 

Os cenários comuns de quando usar plug-ins são:

  • Cancelar o evento e exibir um erro para o usuário.

  • Fazer alterações nos dados da operação.

  • Iniciar outras ações usando o Serviço da Organização para adicionar automação.

Alternativas para plug-ins

Os plug-ins devem ser considerados um último recurso em muitos casos. Embora os plug-ins sejam poderosos e, se bem escritos, tenham alto desempenho, é importante minimizar o valor da lógica personalizada/imperativa que você coloca no seu sistema, porque isso pode afetar a capacidade de manutenção, upgrade e assim por diante.

As alternativas comuns aos plug-ins são:

  • Fluxos de trabalho

  • Fluxos do Power Automate

  • Campos cumulativos e calculados

  • Ações personalizadas

Considerações sobre plug-ins

Os plug-ins funcionam melhor quando você considera o desempenho, os recursos e a capacidade de serem executados de forma síncrona.

Um plug-in bem escrito será sempre a maneira mais eficiente de aplicar lógica comercial ao Microsoft Dataverse. No entanto, um plug-in mal escrito pode gerar um impacto negativo significativo sobre o desempenho do seu ambiente.

Os plug-ins fornecem vários recursos que não estão disponíveis com a lógica comercial declarativa, como trabalhar de forma eficiente com serviços externos no código. No entanto, o Power Automate aborda rapidamente a paridade com plug-ins.

Se a lógica síncrona for necessária para seu aplicativo, poderão ser necessários plug-ins. No entanto, os fluxos de trabalho sob demanda também podem ser executados de forma síncrona e devem ser considerados, dependendo dos seus requisitos.