SharePoint – Module Elements File Type – Ghostable e GhostableInLibrary

A tarefa: Incluir os grandes frameworks javascript JQuery e o SPServices na master page da coleção de sites.
O Projeto: Visual studio sharepoint sandboxed project.

Por se tratar de uma solução sandboxed, ao contrario de uma solução server farm, não tenho acesso aos arquivos físicos do servidor, afinal, se os tivesse, cada deploy causaria um restart do servidor IIS – dado a alteração externa de seus arquivos -. Comportamento inaceitável no escopo do projeto.

Mas então como incluir arquivos no projeto? R.: Módulos;

Após criar um módulo (ex: Scripts), tenho em sua árvore, além do “sample.txt” o famoso “Elements.xml”.

Após incluir meu arquivo jquery.x.y.z.min.js dentro do módulo, vejo o mesmo referenciado no Elements.xml. E é aí que entra a questão de performance entre a escolha do padrão para o atributo Type da tag File: “UnGhostable”, ou as opções específicas “Ghostable” e “GhostableInLibrary”.

UnGhostable, [Ghostable | GhostableInLibrary]

Cada coleção de sites publicado em um servidor da plataforma SharePoint não possui fisicamente os arquivos que aparenta sobre sua estrutura (ex.: default.aspx). Os arquivos são únicos, o que possibilita cache em memória. O que existe nos sites são referencias a este arquivo, e não uma cópia do mesmo. Ter apenas um arquivo físico, em cache, compartilhado entre os sites da coleção significa que o arquivo está [Ghostable | GhostableInLibrary].

Entretanto quando, por exemplo, alguma alteração em um arquivo é feita com escopo de um site específico da coleção, o arquivo deixa de ser comum entre o site em questão e os demais sites da coleção. Uma cópia do arquivo é trazida para este site, assegurando assim a alteração para o mesmo, enquanto que os demais sites da coleção que compartilham do arquivo mantem sua versão inalterada (e única). Ter uma cópia de um arquivo para um site específico, não utilizando a versão de cache do mesmo, significa que o arquivo está UnGhostable.

Ghostable | GhostableInLibrary

Tanto Ghostable, quanto GhostedInLibrary utilização o cache e a deduplicação do arquivo na plataforma SharePoint.
Ghostable implica que o acesso se dará através de uma lista, simples. Enquanto que GhostedInLibrary se dará através de uma lista com base em uma biblioteca de arquivos (Document Library), adicionando ao arquivo em questão peculiaridades como checkin/out, controle de versão e etc.

Módulo "Scripts":
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   <Module Name="Scripts">
      <File Path="Scripts\jquery-x.y.z.min.js" Url="Scripts/jquery-x.y.z.min.js" Type="Ghostable" />
      <File Path="Scripts\jquery.SPServices-2013.01.min.js" Url="Scripts/jquery.SPServices-2013.01.min.js" Type="Ghostable"/>
   </Module>
</Elements>

E como adiciono as referências na master page para os arquivos do módulo? R:

<script type="text/javascript" src="/Scripts/jquery-x.y.z.min.js"/>
<script type="text/javascript" src="/Scripts/jquery.SPServices-2013.01.min.js"/>

T+

Referência:
http://www.davidyardy.com/davidyardy/blog/post/2010/09/15/SharePointe28093-Ghostable-and-GhostableInLibrary.aspx

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s