Essa é a segunda parte de um conjunto de artigos que mostra as melhores práticas para a implantação de Portais em SharePoint, nessa parte vamos falar um pouco de endereços amigáveis, a Wikipedia, nesse artigo, define o termo User-Friendly URL da seguinte forma:

Semantic URLs, also sometimes referred to as clean URLs, RESTful URLs, user-friendly URLs, or search engine-friendly URLs, are Uniform Resource Locators (URLs) intended to improve the usability and accessibility of a website or web service by being immediately and intuitively meaningful to non-expert users. Such URL schemes tend to reflect the conceptual structure of a collection of information and decouple the user interface from a server's internal representation of information.

Podemos dizer então que endereços amigáveis (semânticos) representam a disposição da informação na visão do usuário, escondendo a disposição do conteúdo do lado do servidor. No próprio artigo da Wikipedia é possível encontrar exemplos de endereços amigáveis e não amigáveis.

O objetivo desse artigo não é fazer um resumo ou uma explicação longa do conceito de endereços amigáveis, mas sim, como implementar esse modo de navegação no SharePoint.

Vamos precisar de um serviço chamado Manage Metadata Service Application, ele é o responsável por criar o conjunto de termos e definir a estrutura de navegação do Portal, se você ainda não tem esse serviço disponível, crie uma instância dele na Central Admin e vamos começar.

Screenshot_1
Serviço criado a Central Admin do SharePoint

Eu também criei uma nova Web Application e um conjunto de sites do tipo Blog, que vou usar para mostrar como funciona os parâmetros de query string nesse tipo de navegação, observe abaixo o meu novo site.

Screenshot_2
Site do tipo Blog novinho em folha

Antes de configurarmos a navegação por metadados gerenciados, precisamos primeiro ativar as features de publicação nesse novo site, acesse as configurações do site e no grupo Site Collection Administration clique em Site Collection Features. Nessa tela ative o recurso de infraestrutura de publicação chamado SharePoint Server Publishing Infrastructure.

Volte na configurações do site e agora no grupo Site Actions, clique em Manage Site Features. Nessa tela ative o recurso de publicação no site chamado SharePoint Server Publishing.

Se ambos os recursos foram ativados com sucesso, nas configurações do site agora aparece a opção Navigation.

Screenshot_5
A opção “Navigation” é exibida após a ativação dos recursos de publicação

Ainda na configuração do site, acesse as opções de navegação e na área Global Navigation selecione a opção Managed Navigation. Após a seleção, deve ser aberta uma nova opção no final da página chamada Managed Navigation: Term Set, nessa nova área clique em Term Store Management Tool.

Screenshot_7
Clique para acessar as configurações dos termos gerenciados

Será aberta uma nova página com as configurações de termos será aberta, clique no nome do serviço Managed Metadata Service Application e em seguida selecione a opção New Group. Defina o nome do novo grupo para Navigation.

Nesse grupo, crie um novo conjunto de termos chamado Global, observe que no canto superior da tela existem 4 abas, navegue até a aba Intended Use.

Nesse aba, desmarque a opção Available for Tagging e marque a opção Use this Term Set for Site Navigation. Clique em Save para salvar as alterações.

Screenshot_9
Criação do conjunto de termos “Global”

Volte nas configurações de navegação do site e selecione novamente a opção Managed Navigation na área Global Navigation. Na nova área que será aberta, navegue nos conjunto de termos e selecione a opção Global.

Screenshot_10
Selecione a opção “Global” criada um pouco antes 🙂

Clique em OK no final da página de Navegação para confirmar as alterações. Nesse momento as configurações de navegação gerenciada por termos já estão configuradas e funcionando, a partir de agora vamos configurar as entradas de navegação para o primeiro post do Blog.

O primeiro post (criado pelo modelo de site tipo Blog) possui o seguinte endereço de acesso /Lists/Posts/Post.aspx?ID=1, vamos configurar esse endereço nos metadados gerenciados e implementar a URL /Posts/Welcome para essa mesma postagem.

Volte nas configurações de navegação e abra o gerenciador de termos do site, crie um novo termo chamado Posts e abaixo dele um termo chamado Welcome. Na aba Term-Driven Pages selecione a opção Change target page for this term e defina o endereço de acesso ao primeiro post do blog. Clique em Save para confirmar as alterações.

Screenshot_11
Configuração para o primeiro post do Blog

Acesse agora o endereço /Posts/Welcome e você verá o primeiro post com o endereço gerenciado configurado.

Screenshot_12
Detalhe do primeiro post com a endereço amigável

Você pode optar por configurar o endereço de acesso a cada postagem publicada, isso é relativamente tranquilo em um Blog com baixo índice de postagens, agora existem casos em que o uso de query string é necessária, vou mostrar também como acessar os post do blog usando o ID do post também usando endereços amigáveis.

A primeira etapa é remover o termo gerenciado Welcome da navegação, para isso, acesso os termos gerenciados através da navegação do site e remova o termo. Selecione o termo Posts e configure a navegação desse termo para a página /Lists/Posts/Post.aspx.

Screenshot_14
Configuração do termo “Posts”

Com as configurações salvas, acesse o endereço /Posts?ID=1 e você verá o detalhe do primeiro post, isso porque o SharePoint está usando a navegação gerenciada no termo Posts e adicionando ao endereço o parâmetro de query string ID com o valor 1.

Screenshot_15
Navegação usando apenas o termo “Posts”

Para omitir o nome do parâmetro e adicionar o mesmo ao endereço, vamos usar o módulo de URL Rewrite do IIS. Para configurar, acesse o IIS Manager no servidor e no site recém criado, entre no módulo URL Rewrite.

Screenshot_16
Acesso ao módulo URL Rewrite

No módulo URL Rewrite, clique em Add Rule e em seguida, no grupo Inbound and Outbound Rule, clique em User-Friendly URL.

Será aberta uma nova tela para a configuração da regra, coloque na caixa de texto de exemplo (no topo da tela) o endereço /Posts?ID=1 e veja as opções de regra de rewrite no caixa de seleção logo abaixo.

Screenshot_18
Exemplo de regra para URL Amigáveis

Selecione a opção /Posts/1 e clique em OK, esse pattern representa que a regra de rewrite vai adicionar na URL o valor do parâmetro ID. Com essa configuração concluída, acesse a url /Posts/1 e você verá o detalhe do primeiro post.

Screenshot_20
Detalhe do primeiro post com as configurações de URL Amigável + a regra de Rewrite

Para as próximas postagens, basta alterar o valor do ID na URL e tudo vai funcionar! 🙂