Desenvolvimento - ASP. NET
ASP.NET 2.0 - Criando urls pra web 2.0
A proposta desse artigo é modificar as urls tradicionais de sua aplicação que passam parâmetros para novas urls que já incluem no caminho da mesma.
por Ramon Durães
Artigo
recomendado para Visual Studio 2005 SP1
A Web 2.0 está modificando
completamente a forma com a qual estávamos acostumados a divulgar nossas
páginas. Antigamente fazíamos um cadastro com palavras chaves nos
principais portais de busca de contéudo, agora os mesmos passaram a
indexar completamente todo conteúdo favorecendo as páginas com muitas
referências. Os novos motores de busca varrem todos os links
relacionados e mesmo que você não cadastre seu site, ele pode ser indexado
porque alguém inseriu seu link no site dele. Essa dinâmica está envolvendo novas
tecnologias e comportamentos como o uso do AJAX. A proposta desse artigo é
modificar as urls tradicionais de sua aplicação que passam parâmetros para novas
urls que já incluem no caminho da mesma. Isso fará com que seu site seja visualizado mais vezes pelos motores de busca por que eles vão entender que seu site possui várias paginas "Url virtuais" conforme Tabela
01.
Na prática o que estaremos fazendo é enganar
os motores de busca usando o httpmodules do asp.net para tratar uma url que não
existe em nosso site (http://localhost/meusite/produtos/75)
e responder com outra url internamente com a
informação solicitada. Com isso uma pagina com 100 parâmetros se comporta
como se fosse 100 paginas. Esse truque pode ser usado para diversas outras
finalidades inclusive para urls temporárias exclusivas para um usuário
logado. using System;using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace ProfessionalComputing{ public class goUrl:IHttpModule{ public virtual void Init(HttpApplication app){ } public void Rewrite_BeginRequest(object s, EventArgs e) { { } catch (Exception exception1) { // throw new Exception("Falha tratando url");} } #region IHttpModule Members public virtual void Dispose(){ } #endregion } } Listagem 01 - Implementando classe goUrl baseada no IHttpModuleAgora que você acabou de construir a classe goUrl o funcionamento dela será muito simples. Ela vai interceptar as requisições de urls em nossa aplicação e para cada requisição que chegar vai executar nossa segunda classe chamada VerificaUrl que contém o método CheckUrl. Responsável pela reescrita da url. Nesse momento adicione um novo arquivo tipo classe e coloque o nome ProfessionalComputing.Util.VerificaUrl.cs codificando conforme a listagem 02. ProfessionalComputing.Util.VerificaUrl.csx using System;using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace ProfessionalComputing.Util{ public class VerificaUrl { public static void CheckUrl(HttpApplication app) { } Conforme você pode observar na listagem 02 nesse simples exemplo o processo é muito simples de ser implementado. Bastar obter a url de origem, verificar se você vai tratar a mesma e caso positivo fazer o ReWritePath() para o novo caminho. Após implementar as classes, o próximo passo é modificar o web.config para que possamos adicionar referência a mesma conforme listagem 03, insira o código dentro do bloco <system.web>. System.Web < httpModules><add type="ProfessionalComputing.goUrl,WebRewrite" name="goUrl" /> </httpModules> Listagem 03 - Alterando web.config para suportar novo httpmodules. Na listagem 03 estamos adicionando referência a classe goUrl e ao assembly que ela se encontra (bin\WebRewrite.dll). É o nome da aplicação web que chamamos de WebRewrite. Com essa implementação basta executar sua aplicação e digitar a url desejada, conforme esse exercício: se digitar a url: http://localhost:1759/produto/10 vai carregar internamente a url: http://localhost:1759/_Produto.aspx?Codigo=10 conforme figura 01. Para o usuário final ou site de busca o acesso é transparente. Figura 01 - UrlRewrite em ação | ||||
Código Fonte: [Download] Esse artigo foi baseado no banco de dados ""NorthWind" para listagem de produtos. |