Essa é a primeira parte de um conjunto de artigos com as melhores práticas para montagem de sites e portais com SharePoint.

Durante a construção de um portal, é comum que sejam colocados vários arquivos de layout (por exemplo scripts, estilos e imagens) em bibliotecas de documentos no SharePoint, internamente, todos esses arquivos são armazenados no banco de dados do conjunto de sites e para qualquer requisição ao site esses arquivos são obtidos também do banco de dados.

Dependendo da quantidade de acessos do site, a obtenção do conteúdo desses arquivos do bando de dados pode se tornar bastante lenta, além de aumentar e muito o I/O do banco. É justamente para resolver esse problema (mas não só para ele) que podemos usar o BlobCache do SharePoint.

O BlobCache é o recurso do SharePoint que obtém o conteúdo do banco de dados e armazena uma cópia desse arquivo em disco no servidor, nas requisições seguintes o arquivo é obtido diretamente do disco, sem a necessidade de uma nova consulta ao banco de dados.

Para exemplificar o uso, eu criei um site no SharePoint, habilitei os recursos de publicação e adicionei a imagem Azure.png na página inicial do site, como mostrado abaixo.

Screenshot_4

Ao observar o carregamento do site usando as ferramentas de desenvolvimento do navegador, o arquivo Azure.png vem com as opções de cache desabilitadas (imagem abaixo), ou seja, o navegador também não guarda cópia do arquivo no computador do usuário, fazendo com que seja necessário solicitar uma nova versão ao servidor e por consequência uma nova consulta ao banco de dados do SharePoint.

Screenshot_1

Após habilitar o BlobCache no servidores WFE do SharePoint (vou colocar o processo mais abaixo), e fazer uma nova requisição ao site, o arquivo Azure.png agora contém as instruções de cache habilitadas (imagem abaixo) e então a versão é armazenada tanto no servidor WFE quanto no cache local do navegador.

Screenshot_2

Se olharmos no servidor WFE, foi criada uma cópia local do arquivo e as próximas requisições a esse arquivo não devem consultar novamente o conteúdo no banco de dados do SharePoint (imagem abaixo).

Screenshot_3

Esse é um recurso fundamental para qualquer implantação de Portais Internet no SharePoint, diminui a quantidade de I/O no banco de dados e com certeza vai deixar  o seu site muito mais performático.

Habilitar o BlobCache no SharePoint

O BlobCache é habilitado diretamente nos servidores WFE da Farm, não é possível habilitar o mesmo através da CA do SharePoint, para habilitar o recurso, siga os passos abaixo:

  1. Acesse a pasta do site, você pode acessar a pasta através do IIS Manager, clique no site do SharePoint e em seguida em Explore;
  2. Abra o arquivo web.config e procure pela tag <BlobCache …. />;
  3. Na tag, altere o atributo enabled para true;
  4. Ainda nesse tag, você pode configurar a pasta onde serão armazenadas as cópias dos arquivos, o tempo de cache e as extensões. No final a sua tag deve ser parecida com a abaixo. Salve e feche o arquivo para confirmar.
<BlobCache location="C:\BlobCache" path="\.(gif|jpg|png|css|js)$" max-age="86400" enabled="false"/>

Limpeza do BlobCache no servidores WFE

Para limpar o conteúdo do BlobCache dos servidores do WFE, entre nas configurações do site do SharePoint e acesse o link Site Collection Object Cache, nessa tela, selecione a opção Force this server to reset its disk based cache e clique em OK. Nesse momento será criada uma instrução em cada servidor de WFE para que os arquivos sejam removidos do cache.

Após o processamento, se você olhar a pasta do cache do servidor o arquivo foi removido da pasta (imagem abaixo).

Screenshot_6