CRM 2013 – Tipos de Consultas, qual a melhor?

Pessoal,

Um assunto não exaustivo e acredito que possa sempre ser um motivo de conversar entre desenvolvedores de Dynamics CRM. As “benditas” formas de se realizar consultas! rs

Mesmo tendo uma preferência, decidi “começar do zero”, ter o detalhamento de cada tipo e suas características. Assim, fui ao SDK…

Choose your development style for managed code

PS: O material está de ótima valia, apenas senti falta de uma menção ao uso das Views…

Bom, vamos aos tipos de consultas existentes na versão 2013:

  • FetchXML
    • Prós:
      • Baseado em marcações XML;
      • Permite agrupamentos (multi entidades em uma mesma consulta) e agregações (sum, avg, count, etc);
      • O próprio Dynamics CRM pode ser usado para facilitar as construções das queries, através de uma Localização Avançada > Baixar Buscar XML;
      • É a única forma de realizar queries em um relatório (Reporting Services) de um Dynamics CRM Online. Assim, o uso constante no dia-a-dia trás familiaridade com o formato;
      • Podemos recuperar queries salvas no próprio Dynamics e executá-las via codificação;
      • Simples codificação, pois enviamos uma string para o método Execute do OrganizationSevice;
      • Usamos a mesma sintaxe para linguagem Client (JScript) e Server (C#);
    • Contras:
      • Apenas podemos usar fetchXML quando estamos trabalhando com código Late-Bound (não tipado), pois o retorno é uma EntityCollection;
      • Performance prejudicada por conta das conversões internas;
      • Possui algumas limitações quando temos uma grande quantidade de dados ou resultados;
  • Linq
    • Prós:
      • Grande facilidade na codificação, pois usamos linguagem .Net nativa;
    • Contras:
      • Mesmo utilizando linguagem nativa .Net, internamente existe uma conversão para QueryExpression, assim “herda” as limitações;
  • QueryExpression
    • Prós:
      • Possui a maioria das funcionalidades do FetchXML (*);
      • Possui suporte para Early-Bound (tipado) e Late-Bound (não tipado);
      • Performance é potencializada por usarmos linguagem “tipada”;
    • Contras:
      • (*)Não permite agrupamentos (apenas uma única entidade por consulta) e agregações;
      • Não temos uma IDE para acelerar a codificação;
      • Não conseguimos usá-lo em um relatório, devido ser um objeto C#;
      • Codificação complexa, pois temos uma composição de objetos da QueryExpression que precisam ser compreendidos para realizarmos as consultas (ColumnSet, ConditionExpression, FilterExpression, OrderExpression);
      • Possui algumas limitações quando temos uma grande quantidade de dados ou resultados;
  • Views da Base de Dados
    • Prós:
      • Familiaridade para desenvolvedores “não Dynamics CRM”, pois fazemos as consultas vias T-SQL;
      • Trabalha muito bem com grande quantidade de dados e resultados;
      • É altamente recomendado para desenvolvimentos de migrações, integrações em larga escala;
    • Contras:
      • Como qualquer aplicação que precisa acessar um banco de dados diretamente, precisamos fazer uma conexão com o banco do Dynamics CRM, algo não muito indicado;
      • Não são suportadas para o Dynamics CRM Online;

Bom acima temos alguns pontos para ponderar o uso de um o outro tipo de consulta, lembrando que podemos usar todos (ou a maioria) em um mesmo projeto, mesmo que pareça errado. Tudo depende do que precisa ser feito e as políticas de desenvolvimentos adotadas por sua empresa.

Espero ter ajudado na desmitificação dos tipos diferentes que temos.

PS: Caso eu tenha esquecido de algum ponto de indicação ou contra indicação, me ajudem a inserir, por favor!

[]’s,

Tiago Cardoso

Anúncios

Sobre Tiago Michelini Cardoso

I have been working with IT since 2006, much of this period using Microsoft Dynamics CRM as a source of solutions. I graduated in Bachelor of Information Systems at FIAP (University of Informatics and Management Paulista). I participated of different industries projects like Payments, Services, Automotive, Sales, Education, Marketing, Insurances and Manufacture of Glass. Currently, I have the honor of being the only Brazilian who got the award for Microsoft MVP (Most Valuable Professional) for Microsoft Dynamics CRM product. I have received the award since 2012.
Esse post foi publicado em Dynamics CRM e marcado , , , , , , , , . Guardar link permanente.

3 respostas para CRM 2013 – Tipos de Consultas, qual a melhor?

  1. Erick Rezende disse:

    Tiago, qual seria a sua preferência?

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s