SharePoint 4 Developers

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

Site Definitions – Um legado

Site Definitions e seu legado. Experiências do Upgrade do MOSS 2007 para o SharePoint 2010.

Oi pessoal,

Nesse post quero falar um pouco sobre Site Definitions e seu legado.

Os Site Definitions estão presentes em todas as instalações do SharePoint, nas suas últimas versões:

  • WSS 3.0 e MOSS 2007 - disponível no diretório %\12\TEMPLATE\SiteTemplates
  • SharePoint Foundation e Server 2010 - podemos identificá-lo no diretório %\14\TEMPLATE\SiteTemplates

Nada mais natural então utilizarmos os templates desse diretório para sua customização e extensão, correto?

Não é bem por aí…sua utilização a princípio parece ser a melhor solução, pois permite a criação de definições dos objetos que farão a composição do Web Site. Além de que podemos disponibilizá-lo em uma Tab diferente na criação de um Web Site, o que facilita sua identificação e dos Site Templates criados a partir dele.

A questão principal é o legado que essa solução traz. Atualmente estou trabalhando com o SharePoint 2010 no Upgrade de Soluções desenvolvidas para o MOSS 2007 e tenho visto a complexidade no Upgrade de Heavy Site Definitions. É rir pra não chorar! :)

Como desenvolvedor procuro sempre criar códigos reutilizáveis e a utilização de Site Definitions nos possibilita isso. Você deve saber que é bem mais produtivo o desenvolvimento com base em algo já existente do que com a criação de algo do zero.

Porém é importante entendermos o legado disso e conseqüências futuras. Isso se aplica a todas as soluções em qualquer tecnologia! Concordo que muito do desenvolvimento em SharePoint vem da experiência, pois a documentação muitas vezes é escassa em determinados assuntos.

A utilização de boas práticas é importante, nesse caso específico seguem algumas dicas:

  • Utilize Light Site Definitions, que contenham poucos objetos (apenas os essenciais).
  • Após a criação do Site Definition, utilize Feature Stapling para adicionar os demais objetos.
  • Se sua solução funcionar sem a utilização de Custom Site Definitions, provavelmente você não precisa dele.

Ao contrário de alguns que venham a abolir tal utilização [nada contra o pessoal de infra-estrutura :)], sou a favor, pois tenho o seguinte pensamento: se a tecnologia permite que utilizemos esse recurso, então significa que podemos utilizá-lo. Claro que sempre com responsabilidade e contanto que estejamos atentos a seu propósito e corretas aplicações nos cenários.

Fiquem à vontade para contribuir com comentários!

Seguem links relacionados ao assunto:

http://support.microsoft.com/default.aspx?scid=kb;EN-US;898631
http://msdn.microsoft.com/en-us/library/aa978512.aspx
http://msdn.microsoft.com/en-us/library/aa979683.aspx
http://msdn.microsoft.com/en-us/library/ms454677.aspx
http://spg.codeplex.com

[]’s

Marcel Medina

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