O SharePoint (http://sharepoint.microsoft.com/pt-br/pages/default.aspx) é uma solução da Microsoft voltada ao gerenciamento de documentos e outras formas de conteúdo. Tendo surgido ainda no ano de 2001, este produto passou por uma série de evoluções, encontrando-se atualmente na versão 2010.

Em termos práticos, o Microsoft SharePoint é uma tecnologia que permite a implementação de aplicações sob a forma de sites, sendo possível o acesso a estes dentro de uma rede corporativa ou ainda, a partir da própria Internet.

Sistemas dos mais variados tipos podem ser construídos por meio dos recursos disponibilizados pelo SharePoint: dispositivos para o compartilhamento e manipulação de documentos (formulários de uso geral, planilhas com resultados financeiros, dentre outros elementos), sites que compõem o portal de intranet de uma organização, soluções de BI (Business Intelligence) empregadas na obtenção de uma série de análises etc.

Existem ainda no SharePoint mecanismos que possibilitam a integração entre projetos gerados através do mesmo e outros sistemas, além da implementação de workflows. No que se refere a workflows, essas estruturas são formadas por um conjunto de atividades relacionadas, normalmente executadas numa sequência; elementos deste tipo podem contemplar ainda fases de aprovação, em que o processo em questão somente prosseguirá com o aval de algum usuário ou mediante a ocorrência de um determinado evento.

Do ponto de vista arquitetural, aplicações construídas dentro do SharePoint não diferem tanto de sites ASP.NET convencionais (inclusive, esta tecnologia em conjunto com o uso de servidores IIS é utilizada largamente por tais sistemas).

Páginas que constituem um site SharePoint contam com regiões chamadas de Web Parts; estas últimas nada mais são do que áreas customizáveis que herdam da classe WebPart (namespace System.Web.UI.WebControls), com sua implementação mesclando funcionalidades do .NET Framework em conjunto com outros recursos como HTML, CSS e JavaScript.

Basicamente, existem dois tipos principais de Web Parts na versão 2010:

  • Web Parts clássicas (template "Web Part" do Visual Studio): controles visuais são criados dinamicamente e adicionados à Web Part via código (empregando para isto uma versão sobrecarregada do método CreateChildControls, o qual faz parte do tipo básico WebPart);
  • Web Parts visuais (template "Visual Web Part" do Visual Studio): utilizam User Controls (arquivos com a extensão .ascx), ocorrendo a adição de componentes visuais e elementos HTML nessas estruturas, de forma a se gerar com isto a visualização das Web Parts correspondentes. O arquivo .ascx é então carregado dinamicamente, a partir do método CreateChildControls da Web Part ao qual o mesmo se refere.

Considerando a versão 2010, a criação de uma nova Web Part pode ser feita tanto no Visual Studio 2010, quanto a partir do próprio SharePoint. Em ambas as situações será necessária a instalação (que é gratuita) do Microsoft SharePoint Designer 2010, o qual conta com um ambiente para a construção de soluções voltadas especificamente para esta plataforma. Além disso, deverá constar no computador em que serão implementadas Web Parts uma versão do software servidor do SharePoint (Foundation, Standard ou Enterprise), com este último requisito podendo se transformar num grande empecilho.

Nem sempre existirão licenças suficientes para a instalação do software servidor do SharePoint em máquinas de desenvolvedores. Em tais casos, ao se tentar criar um projeto a partir do Visual Studio (Figura 1) ocorrerá um erro (Figura 2).

Criando um projeto do SharePoint a partir do Visual Studio 2010

Figura 1: Criando um projeto do SharePoint a partir do Visual Studio 2010

Erro durante a criação de um projeto em um computador que não possua o servidor do SharePoint

Figura 2: Erro durante a criação de um projeto em um computador que não possua o servidor do SharePoint

O objetivo deste artigo é justamente demonstrar uma forma de se superar tal limitação, permitindo através de alguns ajustes a construção de Web Parts do SharePoint (sem que isto implique na obrigatoriedade da presença do software servidor em um computador de desenvolvimento).

Habilitando o desenvolvimento para SharePoint em uma máquina que não possua o servidor desta ferramenta

Inicialmente, será necessário acessar o Editor do Registro do Windows (utilitário regedit.exe) em um computador que funcione como servidor do SharePoint. Localizar a chave indicada a seguir:

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0

Exportar o conteúdo desta configuração, clicando sobre a mesma com o botão direito do mouse e selecionando no menu de contexto a opção “Exportar” (Figura 3).

Exportando chave com configurações do SharePoint

Figura 3: Exportando chave com configurações do SharePoint

Aparecerá uma janela em que se indicará o nome de um arquivo com a extensão .reg, bem como o local em que este será salvo (Figura 4). Neste exemplo está sendo gerado um arquivo de nome “Config-SharePointServer.reg”.

Gerando um arquivo com a extensão .reg

Figura 4: Gerando um arquivo com a extensão .reg

Copiar o arquivo que foi gerado no servidor para um diretório qualquer da máquina de desenvolvimento. Neste último caso, a chave exportada foi salva na pasta C:\SharePoint\, conforme indicado na Figura 5.

Arquivo de estensão .reg já copiado para uma máquina de desenvolvimento

Figura 5: Arquivo de estensão .reg já copiado para uma máquina de desenvolvimento

A importação das configurações copiadas do servidor é uma tarefa bastante simples, devendo-se apenas clicar duas vezes sobre o arquivo de extensão .reg.

Será exibido um alerta ao usuário, questionando se o mesmo deseja prosseguir com esta ação (Figura 6); pressionar então o botão OK. Um aviso aparecerá, indicando que esta ação foi concluída com sucesso (Figura 7).

Alerta questionando se o usuário deseja prosseguir com a importação das configurações

Figura 6: Alerta questionando se o usuário deseja prosseguir com a importação das configurações

Configurações carregadas com sucesso no Registro do Windows

Figura 7: Configurações carregadas com sucesso no Registro do Windows

Repetir agora o procedimento de criação de um projeto do SharePoint, conforme descrito anteriormente na Figura 1. Neste ponto aparecerá uma janela cujo endereço aponta para o computador local (Figura 8); confirmar isto clicando no botão “Finish”.

Concluindo o processo de geração de um projeto do SharePoint

Figura 8: Concluindo o processo de geração de um projeto do SharePoint

Um último ajuste precisará ser feito, a fim de permitir o desenvolvimento a partir de novos projetos. Copiar as bibliotecas do SharePoint que se encontram no servidor acessado anteriormente; neste exemplo as dlls estavam em C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\ (Figura 9).

Pasta que contém as dlls do SharePoint no servidor

Figura 9: Pasta que contém as dlls do SharePoint no servidor

Remover então as referências às bibliotecas Microsoft.SharePoint.dll e Microsoft.SharePoint.Security.dll, já que as mesmas não existirão num computador de desenvolvimento que não possua o servidor do SharePoint (Figura 10).

Referências de bibliotecas do SharePoint a serem removidas do projeto

Figura 10: Referências de bibliotecas do SharePoint a serem removidas do projeto

Por fim, incluir novas referências que apontem para as bibliotecas do SharePoint, tomando como base os arquivos que foram que foram copiados do servidor (Figura 11).

Referências de bibliotecas do SharePoint já corrigidas no projeto

Figura 11: Referências de bibliotecas do SharePoint já corrigidas no projeto

Após isto, já será possível prosseguir com o desenvolvimento de Web Parts do SharePoint, devendo-se ressaltar que os testes das mesmas exigirão a publicação destas estruturas num servidor apropriado.

Conclusão

Busquei neste artigo apresentar uma alternativa para a configuração de ambientes de desenvolvimento no SharePoint 2010, dispensando com isto a obrigatoriedade de se instalar uma versão do software servidor em tais máquinas. Isto pode se revelar como um procedimento particularmente útil, sobretudo se considerado o fato de que nem sempre se contará com licenças suficientes para toda uma equipe alocada em um projeto. Espero que o conteúdo aqui apresentado possa auxiliá-lo em algum momento. Até uma próxima oportunidade!