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:
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.