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.

Error occurred in deployment step 'Add Solution': Failed to load receiver assembly

Alguns problemas na integração Visual Studio 2010 x SharePoint Foundation 2010 ainda podem ser encontradas: Error occurred in deployment step 'Add Solution': Failed to load receiver assembly Microsoft.Office.SharePoint.ClientExtensions ou Could not load file or assembly Microsoft.Office.Server

Oi pessoal, tudo bem?

A integração Visual Studio 2010 x SharePoint Foundation 2010 no deploy de soluções do tipo BDC Model ainda apresenta problemas. O problema está no deploy pelo Visual Studio, justamente por não encontrar as DLLs necessárias para realizar a operação. Seguem mensagens de erro encontradas:

Problemas:

Error occurred in deployment step 'Add Solution': Failed to load receiver assembly "Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" for feature "<Sua Feature>: System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Office.SharePoint.ClientExtensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   at Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Error occurred in deployment step 'Add Solution': Could not load file or assembly 'Microsoft.Office.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.

Solução:

Para eliminar esse problema é necessário a cópia de alguns arquivos do SharePoint Server 2010, encontrados no diretório 14\ISAPI:

  • microsoft.office.sharepoint.clientextensions.dll
  • Microsoft.Office.Sharepoint.ClientExtensions.xml
  • Microsoft.Office.Server.dll
  • Microsoft.Office.Server.xml

Registre as DLLs no GAC para eliminar o problema, simplesmente copiando as DLLs para o diretório C:\Windows\assembly.

Reinicie o Visual Studio 2010 e realize o deploy de sua solução do BDC Model sem problemas!

[]’s

Marcel Medina

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

Evento Gratuito CanalSharePoint

Evento Gratuito CanalSharePoint

Oi pessoal,

Gostaria de divulgar um evento gratuito promovido pelo CanalSharePoint:

TechShare ROADSHOW 2010

Parabéns CanalSharePoint por esse evento!

[]'s

Marcel Medina

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