SharePoint 4 Developers

Guia de referência adicional em desenvolvimento .NET / SharePoint

Business Connectivity Services – Parte IV

Entenda a estrutura hierárquica do modelo de metadados do BDC (Business Data Connectivity Model) e as novas ferramentas do Visual Studio 2010 para design de modelos do BDC (Parte IV)

Oi pessoal, tudo bem?

Essa é a quarta parte do artigo sobre as novidades de integração de dados externos com o Business Connectivity Services (BCS) no SharePoint 2010!

Apenas para recapitular, na parte I do artigo tivemos uma introdução ao funcionamento do BCS pela análise de sua arquitetura e componentes, na parte II tivemos a oportunidade de criar External Content Types (ECT) via Database e na parte III trabalhamos na criação de ECTs via Web Service.

A leitura da parte I é extremamente importante para o entendimento desta parte. Nesse artigo vou explicar a estrutura hierárquica do modelo de metadados do BDC (Business Data Connectivity Model) e dar uma introdução às novas ferramentas do Visual Studio 2010 na criação de objetos do BDC.

Boa leitura!

Entendendo o Modelo de Metadados do BDC

No exemplo desse artigo trabalharemos com um novo template do Visual Studio 2010 chamado Business Data Connectivity (BDC) Model, que permite a criação de Entidades (BDC Entities) também conhecidas como External Content Types, que já vimos na parte I.

As entidades são objetos que compõem o modelo de metadados do BDC, que representam o núcleo de funcionamento do BDC. Nessa abordagem quero ir um pouco mais a fundo nesse modelo, vejamos a Figura 1:

BDCModelFigura 1 - Modelo de Metadados do BDC

Agora fica claro onde os ECTs estão dentro do Modelo de Metadados do BDC, mas ainda não conhecemos em detalhes o papel de cada um desses objetos que compõem a Figura 1, apenas podemos notar que os objetos estão em uma estrutura hierárquica.

Para entendimento desses objetos veremos o detalhamento de cada um:

OBS: Esse conteúdo pode ser encontrado na seção referências, porém resolvi detalhar mais do que o conteúdo encontrado no MSDN. :)

  • Model - Esse é objeto principal, núcleo do funcionamento do BDC que mapeia os dados externos. Trata-se do agrupador de todos os objetos que compõem a hierarquia desse modelo.

  • LobSystem - Dentro do modelo figura como sendo a representação de um serviço externo que contém a lógica de negócio, simplesmente pelo fato de definir o tipo da fonte de dados externos que será utilizada, podendo ser:
  1. Database – Define o mapeamento de um banco de dados;
  2. DotNetAssembly – Define o mapeamento de um assembly .NET;
  3. Wcf – Define o mapeamento de um endpoint do serviço WCF;
  4. WebService – Define o mapeamento de um Web Service. Considerado “deprecated”, portanto utilize um serviço WCF;
  5. Custom – Define o mapeamento de um Conector customizado, implementado para gerenciar a conexão e a transferência de dados.
  • LobSystemInstance - Trata-se da implementação de um LobSystem. Contém todos os detalhes de conexão a um serviço externo para a criação da instância de um LobSystem.

  • Entity - Trata-se da representação dentro do modelo de metadados do BDC de um ECT do BCS, que conforme já visto na Parte I determina o schema de dados da entidade, utiliza-se de recursos de acesso a dados e disponibiliza um comportamento dentro do Office e SharePoint através de métodos.

  • Identifier - Um identificador funciona como uma chave primária nas entidades.

  • Method - Os métodos são os comportamentos de uma entidade. Dentro do modelo funciona como um agrupador das configurações (FilterDescriptor, Parameter, MethodInstance) do método que representa.

  • FilterDescriptor - Basicamente um filterdescriptor pode ser criado dentro de um método para selecionar tanto a entrada quanto o retorno de valores do mesmo. Diversos tipos de filtros podem ser utilizados (veja a seção referências).

  • Parameter - Define o tipo de parâmetro que será utilizado dentro do método, sendo:
  1. In – Utilizado para parâmetros de entrada;
  2. Out – Utilizado para parâmetros de saída, similar ao parâmetro "out" em C#.
  3. InOut – Representa um parâmetro que tem as duas funções (entrada / saída), similar ao parâmetro "ref" em C#.
  4. Return – Define o tipo para retorno de um método, no BDC isso é considerado como um parâmetro de retorno.
  • TypeDescriptor - Um typedescriptor é nada mais nada menos do que uma definição do tipo do parâmetro. Ex: Int32, String. É recursivo, pois permite que outro typedescriptor seja referenciado como sendo o tipo de um parâmetro.

  • MethodInstance - Trata-se da implementação de um Method. As operações Create, Update, ReadItem, ReadList e Delete já são pré-definidas para utilização.

  • Action - As ações possibilitam a adição de funcionalidades extras aos ECTs, pois funcionam como um link adicional aos dados externos. Por padrão as ações View Item, Edit Item, e Delete Item são adicionadas na interface do usuário (veja a seção referências) e qualquer nova ação adicionada, como por exemplo um link para abrir uma página, acompanha o ECT em qualquer parte do SharePoint.

  • ActionParameter - Define a URL da ação que se refere para o funcionamento do link criado. Utiliza-se de identificadores ou typedescriptors da entidade para a criação da URL.

  • AssociationGroup - Associações representam os relacionamentos entre as entidades, similar a um relacionamento de tabelas. Um AssociationGroup deve ser utilizado para amarrar métodos de associação que são aplicados em um relacionamento de entidades. Ex: Considerando duas entidades Cliente e Pedido, um AssociationGroup armazenaria métodos como ObterPedidosPorCliente e ObterClientePorPedido.

OBS: Na próxima parte dessa lição trabalharemos com a maioria desses objetos, e esse overview vai ser consolidado ao colocarmos a mão na massa, principalmente quando trabalharmos com o XML que está por trás dessas definições.

Ferramenta de Design para o Modelo de Metadados do BDC

O Visual Studio 2010 foi turbinado com várias novas ferramentas para design e o BDC não ficou de fora. Agora ficou mais fácil a criação de modelos no BDC, pois o mais trabalhoso (a criação da maioria dos objetos) pode ser feito visualmente e outros pequenos detalhes podem ser feitos manualmente no XML gerado.

A Figura 2 mostra os novos painéis que estão disponíveis no VS2010 para design de modelos no BDC:

NewDesignerFigura 2 - Painéis para design de modelos do BDC

Com exceção do painel de Propriedades, três (3) novos painéis foram incorporados ao VS2010. São eles:

  • BDC Designer - Possibilita a criação e edição de Entidades, Identificadores, Métodos e Associações entre as Entidades. Trata-se de uma área para design que permite a criação dos objetos via drag-and-drop da palheta Toolbox ou mesmo utilizando o menu de contexto (pelo botão direito do mouse).

  • BDC Method Details - Assim como o próprio nome diz, exibe os detalhes de configuração dos métodos. Permite a criação e edição de métodos, parâmetros, typedescriptors e filtros (conforme o modelo de metadados do BDC).

  • BDC Explorer - Organiza e exibe os objetos do modelo de metadados do BDC em uma tree view. Sua principal finalidade é o de apresentar os objetos numa estrutura hierárquica, porém também permite a criação de typedescriptors e validação dos objetos.

Durante o desenvolvimento na próxima parte veremos como manipular os objetos do Modelo de Metadados do BDC por esses painéis. Aguardem!

Referências:
http://msdn.microsoft.com/en-US/library/ee556378.aspx
http://msdn.microsoft.com/en-us/library/ee557835.aspx
http://msdn.microsoft.com/en-us/library/ee559393.aspx

[]’s

Marcel Medina

Clique aqui para ler o mesmo conteúdo em Inglês.

blog comments powered by Disqus