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:
Figura 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:
-
Database – Define o mapeamento de um banco de dados;
-
DotNetAssembly – Define o mapeamento de um assembly .NET;
-
Wcf – Define o mapeamento de um endpoint do serviço WCF;
-
WebService – Define o mapeamento de um Web Service. Considerado “deprecated”, portanto utilize um serviço WCF;
-
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:
-
In – Utilizado para parâmetros de entrada;
-
Out – Utilizado para parâmetros de saída, similar ao parâmetro "out" em C#.
-
InOut – Representa um parâmetro que tem as duas funções (entrada / saída), similar ao parâmetro "ref" em C#.
-
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:
Figura 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.