Escolha o estilo de desenvolvimento do código gerenciado

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

O SDK do Microsoft Dynamics CRM oferece uma grande variedade de tecnologias e métodos que podem ser usados ao escrever códigos para acessar os serviços da Web de Atualização do Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 ou para estender o aplicativo. Este guia destaca algumas ferramentas e métodos que podem ser usados para realizar diferentes tarefas de codificação e oferece algumas orientações sobre quando usá-los.

Neste tópico

Autenticação com uso de código

Criação e implantação de plug-ins ou atividades de fluxo de trabalho personalizadas

Cria e implementa fluxos de trabalho em XAML

Programação da entidade (early bound X late bound X extensões para desenvolvedores)

Consulta (Fetch X QueryExpressions X LINQ X Extensões para desenvolvedores)

Autenticação com uso de código

A tabela a seguir lista as opções disponíveis para escrever códigos que autenticam o autor da chamada com uma instalação do Microsoft Dynamics 365 no local, para implantação para a Internet (IFD) ou para implantações online.

Classes

Descrição e uso

Mais Informações

Código auxiliar

As classes no código de exemplo demonstram como se conectar aos serviços da Web e autenticar o usuário. É possível usar o código auxiliar como base do seu próprio código de autenticação personalizado.

Este código é fácil de usar e oferece suporte para todos os tipos de implantação do Microsoft Dynamics 365. Ele também oferece suporte ao armazenamento das senhas dos usuários no Gerenciador de Credenciais do Windows para reutilização posterior.

O código-fonte completo será fornecido, para que você possa copiá-lo e personalizá-lo de acordo com as suas necessidades. É uma prática recomendável isolar os programas das alterações a este código auxiliar em versões futuras.

Exemplo: início rápido do Microsoft Dynamics CRM

Usar o código de exemplo e auxiliar

Código auxiliar: Classe ServerConnection

Este código pode ser encontrado nos arquivos SampleCode\CS\HelperCode\CrmServiceHelpers.cs e SampleCode\VB\HelperCode\CrmServiceHelpers.vb no SDK. Baixe o pacote do SDK do Microsoft Dynamics CRM.

Extensões para desenvolvedores

Estes assemblies são fornecidos para simplificar e acelerar o desenvolvimento de aplicativos que interagem com o Microsoft Dynamics 365. As extensões ampliam a funcionalidade do SDK do Microsoft Dynamics CRM principal, especificamente em relação ao uso da classe OrganizationServiceContext.

Para obter um método fácil que realiza o trabalho mais difícil em poucas linhas de código, use a classe CrmConnection.

Este código é fácil de usar e oferece suporte para todos os tipos de implantação do Microsoft Dynamics 365.

Extensões de desenvolvedor do Microsoft Dynamics CRM 2015

Conexão simplificada do Microsoft Dynamics CRM 2015

Cliente do Xrm

Para desenvolvedores avançados que precisam personalizar o gerenciamento do canal de serviço WCF (Windows Communication Foundation) e o processamento de autenticação, use as classes IServiceManagement<TService> e OrganizationServiceProxy no Microsoft.Xrm.Sdk.Client namespace.

Usar diretamente essas classes pode oferecer um melhor desempenho de autenticação e conexão, além de uma maior flexibilidade. Entretanto, elas exigem um conhecimento mais avançado da autenticação do servidor e do canal de serviço do WCF. Além disso, é necessário escrever um maior número de códigos para lidar com todos os tipos de implantação do Microsoft Dynamics 365.

Ativar diretório e autenticação com base em declarações

Exemplo: autenticar os usuários com os serviços web do Microsoft Dynamics CRM

Melhorar o desempenho de alocação do canal de serviço

Uso das ferramentas do XRM

Estes assemblies utilizam as APIs do Dynamics 365 para oferecer um suporte fácil de autenticação com um menor número de linhas de código e com os cmdlets do Windows PowerShell. Todas as chamadas de função nessas classes fornecem segurança aos threads para as ações realizadas no Dynamics 365 em um ambiente com vários threads. Eles fornecem um controle comum de entrada com uma lógica de autenticação integrada e a capacidade de armazenar e reutilizar com segurança as informações de autenticação, a fim de proporcionar uma experiência consistente e integrada de entrada no Dynamics 365 a partir dos aplicativos clientes do Windows.

Estas classes também fornecem o rastreamento integrado de diagnóstico para auxiliar os relatórios de desempenho e a resolução de problemas das chamadas de ação a partir dos aplicativos clientes do Windows.

Estas classes oferecem suporte para todos os tipos de autenticação e de implantação do Microsoft Dynamics 365 com exceção de OAuth.

Criar aplicativos cliente do Windows usando as ferramentas XRM

Usar a ferramenta XRM para se conectar ao CRM

Usar cmdlets do PowerShell para ferramentas XRM e conectar ao CRM

Exemplo: Início rápido para API de ferramentas XRM

Criação e implantação de plug-ins ou atividades de fluxo de trabalho personalizadas

A tabela a seguir lista as opções disponíveis para escrever e implantar plug-ins e atividades de fluxo de trabalho personalizadas.

Ferramenta

Descrição e uso

Mais Informações

Classes de plug-ins e de atividades de fluxo de trabalho personalizadas

Ferramenta de registro de plug-ins

As classes de plug-ins e de atividades de fluxo de trabalho personalizadas permitem criar manipuladores de eventos para executar uma lógica de negócios personalizada que pode ser integrada com o Microsoft Dynamics 365 para alterar ou aumentar o comportamento padrão da plataforma.

Ao usar diretamente estas classes, o código não conterá nenhum código auxiliar fornecido no Kit de Ferramentas para Desenvolvedores.

Se desejar escrever plug-ins e atividades de fluxo de trabalho personalizadas desde o início, use a Ferramenta de Registro de Plug-ins para registrá-los. Esta ferramenta fornece uma interface gráfica do usuário e oferece suporte ao registro de plug-ins e atividades de fluxo de trabalho personalizadas com o Microsoft Dynamics 365.

Use este método se você:

Sabe como usar as classes de plug-ins e atividades personalizadas.

Não deseja que o código adicional da biblioteca seja gerado automaticamente e inserido nos arquivos de código.

Não se importa em usar uma ferramenta externa e o aplicativo Web para registrar e empacotar assemblies de código personalizados.

Desenvolvimento de plug-in

Atividades personalizadas de fluxo de trabalho (assemblies de fluxo de trabalho)

Registrar e implantar plug-ins

Passo a passo: Registrar um plug-in usando a ferramenta de registro de plug-in

Cria e implementa fluxos de trabalho em XAML

A tabela a seguir lista as opções disponíveis para escrever e implantar fluxos de trabalho em XAML.

Ferramenta

Descrição e uso

Mais Informações

Microsoft Visual Studio Designer de Fluxos de trabalho

O Microsoft Dynamics 365 no local e IFD oferece suporte à capacidade de criar fluxos de trabalho personalizados em XAML. Ao usar o Designer de Fluxos de trabalho do Microsoft Visual Studio, é possível criar fluxos de trabalho personalizados em XAML, também chamados fluxos de trabalho declarativos, arrastando as atividades de fluxo de trabalho da caixa de ferramentas para a superfície de design, criando variáveis e definindo as propriedades dessas atividades para implementar a funcionalidade do fluxo de trabalho. É possível usar as atividades integradas do Windows Workflow Foundation ou as atividades de processos que são específicas para o Microsoft Dynamics 365.

Use este método somente quando desejar escrever fluxos de trabalho personalizados em XAML.

Fluxos de trabalho do XAML personalizados

Gravar fluxos de trabalho para automatizar processos empresariais

Programação da entidade (early bound X late bound X extensões para desenvolvedores)

A tabela a seguir lista as opções disponíveis para escrever códigos que usam entidades em Microsoft Dynamics 365.

Classe

Descrição e uso

Mais Informações

Early Bound

<optional namespace>.Account, <optional namespace>.Contact e assim por diante

A ferramenta de geração de códigos (CrmSvcUtil) cria classes da entidade early bound, derivadas da classe Entity, que podem ser usadas para acessar dados corporativos no Microsoft Dynamics 365. Estas classes incluem uma classe para cada entidade na instalação, incluindo entidades personalizadas.

Use este método quando desejar que o compilador verifique as referências de tipo no momento da compilação. Além disso, como os atributos e relacionamentos são incluídos na classe gerada, eles têm suporte do IntelliSense para nomes de entidade, atributo e relacionamento. Usar tipos fortes é geralmente o método preferencial e é usado na maioria dos exemplos neste documento do SDK.

Há algumas desvantagens nesta abordagem:

As classes devem ser geradas novamente sempre que as entidades são personalizadas para aproveitar as alterações do esquema.

Os custos de serialização aumentam conforme as entidades são convertidas para tipos late bound durante a transmissão pela rede.

Use classes de entidade de limite antecipado no código

Criar classes de entidade associadas precocemente com a ferramenta de geração de código (CrmSvcUtil.exe)

Late Bound

Microsoft.Xrm.Entity

A classe Entity contém o nome lógico de uma entidade e uma matriz do recipiente de propriedades dos atributos da entidade. Isso permite usar a associação recente, para ser possível trabalhar com tipos como entidades personalizadas e atributos personalizados que não estavam presentes durante a compilação do aplicativo.

Outro benefício é que uma menor serialização ocorre conforme os dados da entidade são transmitidos por uma rede, o que significa um desempenho mais alto.

Há algumas desvantagens nesta abordagem:

Os tipos devem ser especificados de forma explícita para prevenir conversões implícitas.

É mais difícil isolar o impacto das alterações ao esquema, já que os nomes dos recursos, como entidades e atributos, são fixados no código.

É mais fácil cometer erros de ortografia durante a codificação, já que os nomes dos atributos são cadeias de caracteres fixadas no código.

Usar a classe de entidade late bound no código

Extensões para desenvolvedores

Microsoft.Xrm.Client.CrmEntity

A classe CrmEntity é derivada da classe Entity. Além de fornecer as mesmas funcionalidades da classe Entity, a classe CrmEntity inclui novos métodos de extensão de obtenção e definição para simplificar tarefas de codificação comuns e dois novos eventos de alteração da propriedade.

Extensões de desenvolvedor do Microsoft Dynamics CRM 2015

Early Bound com o uso das extensões da Ferramenta de Geração de Código

<optional namespace>.Account, <optional namespace>.Account e assim por diante

Ao usar a versão Extensões para desenvolvedores da ferramenta CrmSvcUtil, é possível gerar tipos early bound que são derivados da classe CrmEntity. Use-a quando desejar aproveitar os outros recursos disponíveis nas Extensões para desenvolvedores.

Gerar código com as extensões da ferramenta de geração de código (Dynamics CRM 2015)

Anexar entidades ao contexto (Dynamics CRM 2015)

Extensões de desenvolvedor do Microsoft Dynamics CRM 2015

Consulta (Fetch X QueryExpressions X LINQ X Extensões para desenvolvedores)

A tabela a seguir lista as opções disponíveis para criar consultas que podem ser usadas para recuperar registros do banco de dados do Microsoft Dynamics 365.

Estilo de consulta

Descrição e uso

Mais Informações

FetchXML

Esta é uma linguagem de consulta personalizada baseada em XML, que oferece suporte a todos os recursos do QueryExpression além de agregações e agrupamento. As consultas do tipo Fetch podem retornar registros para várias entidades. Além disso, as consultas podem ser serializadas e salvas no banco de dados. Isso é usado para salvar uma consulta como uma exibição salva de propriedade do usuário na entidade UserQuery e como uma exibição salva de propriedade da organização na entidade SavedQuery.

Use esta linguagem de consulta quando precisar de suporte para agregações e agrupamento ou quando precisar salvar a consulta.

Criar consultas com FetchXML

QueryExpression

Uma expressão de consulta é usada para pesquisar registros de um único tipo de entidade. As consultas são criadas como um modelo de objeto. Esta classe oferece suporta todos os recursos de FetchXML, com exceção das agregações e agrupamento. Ela também pode ser usada com estilos de programação da entidade early bound e late bound.

Criar consultas com QueryExpression

LINQ

As consultas são criadas usando o idioma padrão, mas o .NET LINQ (Language-Integrated Query) usa internamente QueryExpression, por isso são limitadas aos recursos de QueryExpression.LINQ pode ser usada com estilos de programação da entidade early bound e late bound.

Compilação de consultas com o LINQ (Language-Integrated Query do .NET)

Confira Também

Visão geral do desenvolvedor
Tutoriais para aprender sobre o desenvolvimento do Microsoft Dynamics CRM 2015
Crie aplicativos e extensões do servidor
Os módulos de programação para o Microsoft Dynamics CRM 2015

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais