Desenvolvimento com o SharePoint Server 2007 - Parte III

 

Uma outra forma de acessar o SharePoint de maneira programaticamente é através de web services. Estes web services são fornecidos pelo próprio SharePoint. Existe uma série de vantagens nesta abordagem que são: Não é necessário ter o Visual Studio.NET 2005 instalado na mesma máquina e o modelo de objetos é mais simples. O SharePoint disponibiliza uma lista de 16 web services para que o desenvolvedor possa acessar suas funcionalidades como acessar suas listas, sites e web parts.

 

A lista destes web services esta demostrada na listagem 1.

 

http://servidorSharePoint:PortaAdministrativa/_vti_adm/Admin.asmx

- Métodos para fins de administração como criar sites

 

http://servidorSharePoint/_vti_bin/Alerts.asmx               

- Métodos para manipular alertas

 

http://servidorSharePoint/_vti_bin/DspSts.asmx               

- Métodos para manipular com dados e schemas

 

http://servidorSharePoint/_vti_bin/DWS.asmx                  

- Métodos para manipular workspaces de documentos

 

http://servidorSharePoint/_vti_bin/Forms.asmx                

- Métodos para manipular com formuários

 

http://servidorSharePoint/_vti_bin/Imaging.asmx              

- Métodos para manipular bibliotecas de imagens

 

http://servidorSharePoint/_vti_bin/Lists.asmx                

- Métodos para manipular listas

 

http://servidorSharePoint/_vti_bin/Meetings.asmx             

- Métodos para manipular com Workspaces

 

http://servidorSharePoint/_vti_bin/Permissions.asmx          

- Métodos para manipular segurança

 

http://servidorSharePoint/_vti_bin/SiteData.asmx             

- Métodos utilizados pelo servidor SharePoint

 

http://servidorSharePoint/_vti_bin/Sites.asmx                

- Métodos para manipular templates de sites

 

http://servidorSharePoint/_vti_bin/UserGroup.asmx            

- Métodos para manipular grupos e usuários

 

http://servidorSharePoint/_vti_bin/versions.asmx             

- Métodos para manipular versões de arquivos

 

http://servidorSharePoint/_vti_bin/Views.asmx                

- Métodos para manipular views de listas

 

http://servidorSharePoint/_vti_bin/WebPartPages.asmx

- Métodos para manipular Web Parts

 

http://servidorSharePoint/_vti_bin/Webs.asmx

- Métodos para manipular sites e sub sites

Listagem 1 - Lista dos Web Services disponíveis pelo SharePoint

 

Temos nas figuras 1, figura 2 e figura 3 as listas de métodos dos Web Services Lists, Permissions e Admin.

 

mddspsp3fig01.jpg 

Figura 1 – Lista dos Web Services referentes às listas.

 

mddspsp3fig02.jpg 

Figura 2 – Lista dos Web Services referentes às permissões.

 

mddspsp3fig03.jpg 

Figura 3 – Lista dos Web Services referentes às permissões.

 

Note que o endereço dos Web Services Lists e Permissions, assim como o restante, é direcionado para a porta 8080 do servidor onde esta instalado o SharePoint, e o Web Service Admin é direcionado para outra porta,a porta 20569, esta porta é justamente a porta para acessar o site de configurações mais críticas do SharePoint, este site é de responsabilidade do Administrator. Lembrando que estas portas são configuradas na durante a instalação do SharePoint.

 

mddspsp3fig04.jpg 

Figura 4 – Diferença entre as portas dos Web Services.

 

Iremos agora criar um projeto windows forms simples que irá retornar uma coleção de listas e mostrar seus nomes. No projeto windows forms iremos adicionar um botão e um listbox para fazer a listagem das listas do SharePoint. Antes de tudo, temos que adicionar uma referência web ao projeto para poder ter acesso aos métodos do web service, como mostra a figura 5.

 

mddspsp3fig05.jpg 

Figura 5 - Lists Web Services.

 

A lógica toda do projeto windows forms esta no evento click do botão. Após adicionar uma referência ao namespace do web service ao projeto iremos adicionar o código da listagem no evento do click do botão como mostra a listagem 2.

 

1      using TesteSPWebServices.Listas;

 

...

 

5     private void btnExibirListas_Click(object sender, EventArgs e)

6     {

7

8          Lists servicoListas = new Lists();

9

10         listas.Credentials = System.Net.CredentialCache.DefaultCredentials;

11

12         System.Xml.XmlNode node = listas.GetListCollection();

13

14         foreach (System.Xml.XmlNode xmlnode in node)

15         {

16             lbExibirListas.Items.Add(xmlnode.Attributes["Title"].Value);

17         }

18

19         lbResultado.Text = lbExibirListas.Items.Count.ToString();

20     }

Listagem 2 - Referência ao namespace do web service e lógica da listagem das listas.

 

Na primeira linha temos a referência ao namespace do web service, com isso podemos acessar diretamente as classes deste namespace, classes como a Lists usada no exemplo. Na linha 8 instanciamos um objeto da classe Lists chamado servicoListas. Para acessarmos algumas funcionalidades do SharePoint temos que ter as autorizações necessárias, na linha 10 configuramos a propriedade Credentials do objeto servicoListas para que ela tenha a credencial default do cache do sistema  para que possamos acessar as listas do site do SharePoint. Para termos todas as listas, usaremos o método GetListsCollection() do objeto servicoListas.

 

Este método retornar uma coleção de nós XML como mostra a linha 12. Precisamos realizar uma interação e percorrer estes nós para pode acessá-los, como mostra a linha 14. Na linha 16 acessamos o valor da do campo Title do atributo de cada nó. Por fim na linha 19, informamos a quantidade de listas encontradas no SharePoinit através de um label no formulário.

 

Neste artigo vimos como acessar o SharePoint pelos web services que o próprio SharePoint disponibiliza e como este modelo de programação é mais acessível e mais fácil do que o acesso pela API do SharePoint.

 

Links:

MSDN - http://msdn2.microsoft.com/en-us/ms540023(MSDN.10).aspx