SharePoint

SharePoint – Desenvolvimento em Camadas

Neste artigo vou demonstrar como desenvolver um aplicativo usando o ambiente SharePoint 2010.

Usarei um exemplo bem simples para ilustrar a questão da arquitetura e como desenvolver de forma nativa, sem necessidade de utilização de banco de dados externo a nossa aplicação.

Vou assumir como premissa que você ja tenha o ambiente SharePoint 2010 assim como o Visual Studio 2010 ou o Visual Studio 2012 instalado e configurado.

Utilizarei uma abordagem simples em 3 camadas para a arquitetura da aplicação.

A aplicação que será desenvolvida, será um “web diário“. A aplicação em si não é relevante (crie a sua própria), o que é importante neste artigo, é entender como desenvolver nativamente em SharePoint.

Então vamos por a mão na massa.

Para baixar o projeto Login to view.

 

A estrutura da nossa aplicação deverá ficar conforme a imagem abaixo:

 

image

Vamos criar nosso projeto. Com o Visual Studio aberto, clicamos em New Project (conforme imagem abaixo).

image

Em seguida será aprestada a tela para criação do projeto. Vamos preencher conforme a imagem a seguir:

image

Depois de preenchido o nome do projeto e clicado em “OK”, o Visual Studio vai iniciar o Wizard de criação de um projeto de Visual Webpart novo.

Neste Wizard, dizemos em qual o servidor do Sharepoint vamos utilizar para desenvolvimento, selecionamos “Deploy as a farm solution” e clicamos em Finish.

image

 

Assim que o Visual Studio terminar de gerar o projeto, teremos a seguinte configuração no nosso projeto:

image

Vamos renomear a Webparte que tem o nome de “VisualWebPart1” para “WPDiario” e dentro da pasta Features vamos renomear a “Feature1” para “FTDiario”. Não vou entrar em detalhes sobre a questão das Features neste artigo.

Agora, vamos criar a estrutura de pastas para a nossa aplicação.

Clique com  o botão direito sobre o projeto “WebDiario” e clique em Add -> New Folder e coloque o nome de “DAL” na pasta criada. Repita este procedimento para criar as pastas “BUS”, “ENT”, “USR”.

Após a criação de todas as pastas, arraste a webpart “WPDiario” para dentro da pasta “USR” conforme a imagem abaixo:

image

Vamos agora criar uma classe Diário para cada uma das camadas envolvidas na nossa aplicação:

Daremos os seguintes nomes para as classes:

Na pasta BUS: DiarioBus.cs

Na pasta DAL: DiarioDal.cs

Na pasta ENT: DiarioEnt.cs

Ficamos com a nossa aplicação da seguinte forma:

image

 

Agora que já temos a estrutura do projeto pronta para codificar, vamos criar a lista no SharePoint, que servirá como uma tabela de banco de dados para a nossa aplicação.

Vamos abrir o site onde estamos trabalhando nossa aplicação SharePoint. No meu caso, estou usando um site criado zerado e com o padrão de layout do sharepoint conforme imagem abaixo.

image

 

Vou partir da premissa que você sabe criar uma lista no sharepoint e já vou apresentar a lista pronta. Só para exclarecer, estou usando um “Custom List” com o nome de “LST_Diario”.

image

Uma vez que já temos nossa lista criada, podemo voltar para o Visual Studio e começar a codificar nosso projeto.Data

Vamos começar a codificar pela classe de entidade, pois precisamos mapear os atributos entre a lista do sharepoint “LST_Diario” e a classe de entidade “DiarioEnt.cs”.

Abrimos então o arquivo DiarioEnt.cs e adicionamos as linhas de código abaixo:

image

 

Após criarmos nossa classe de entidade que mapeia a lista do sharepoint, vamos codificar a classe “DiarioDal” da camada de dados “DAL”.

Implementarei inicialmente um método listar simples sem filtros. Não é uma boa prática, pois trará todos os dados da lista, mas para fins de exemplo está bom.

image

 

Uma vez a camada de dados pronta, podemos então implementar a camada de negócios “BUS”.

No nosso caso abaixo, não farei nenhum tratamento com regra de negócio, mas como manda a regra, eu tenho que sempre passar pela camada de negócio para chegar a camada de usuário, por isso , nosso método de negócio será somente uma chamada a classe de dados e retorno da lista conforme abaixo.

A modelagem mais adequada para a questão das listas seria ter uma classe DiárioEnt e uma classe ItemDiarioEnt, mas para simplificação do exemplo estou adotando a própria classe de DiarioEnt para listar seus itens.

Classe de negócio “DiarioBus” fica da seguinte forma:

image

 

Vamos agora codificar nossa Webpart. Vamos clicar em WPDiario e entrar no modo de design. Vou adicionar um objeto “botão” e um “GridView”.

O Botão tem como objetivo chamar o método da camada de negócio e o GridView exibirá os dados da lista.

O exemplo deverá ficar da seguinte forma:

image

Vamos dar um duplo clique no botão e iniciar a codificação da chamada ao método de negócio.BUS

 

image

Assim que tivermos codificado nosso exemplo, podemos fazer o Deploy para fazer o teste com nossa webpart. Lembre-se de adicionar algums itens na lista do sharepoint, caso contrário, não haverá retorno devido ao fato de não haver registro na lista do sharepoint.

Adicionei 3 linhas de registro para testar a aplicação.

SNAGHTML14c0b24b

Com a nossa webpart publicada, podemos acessar a página do sharepoint para testar nossa aplicação.

A página deverá ficar com a seguinte cara:

SNAGHTML14e0989d

Depois que clicamos no botão “Carregar Grid” nossa aplicação vai na lista do SharePoint buscar as informações da lista conforme a imagem abaixo.

SNAGHTML14e20387

 

Espero que tenha gostado do artigo.

Qualquer consideração que deseje fazer, entre em contato.

Márcio Pulcinelli.