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, almost of this time using Microsoft Dynamics CRM/365 as a source of solutions. I graduated in Bachelor of Information Systems at FIAP (Brazil) in 2012. I really love what I do! Technology has been my interest since always. Even in a tool different world of the current. When we didn't have internet, tablets, smartphones e social networks! Although I have worked in some roles, I can't give up "the developer life". Even so far of the greatest developers. Development in general is the thing that I love to work! I started my contributions about Dynamics in 2010. At the beginning, I used to help at MSDN and TechNet forums. But now, I'm dedicating all my time in my personal blog! Currently, I have the enormous honour of being the only Brazilian who got the award for Microsoft MVP (Most Valuable Professional) for Microsoft Dynamics CRM/365 product. I have been receiving 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