Althmann Márcio Fábio - Desenvolvimento web com ASP.NET MVC стр 7.

Шрифт
Фон

Para responder objetivamente a esta pergunta, convido-lhe a considerar a figura 2.2. Perceba que, mesmo adicionando novos parâmetros à URL, a exibição do conteúdo permanece inalterada.

Figura 2.2: Adicionando parâmetros à URL

Não há nada de errado com este comportamento, muito pelo contrário. Na

verdade, este é um dos grandes recursos implementados pelo framework. Gra-

ças a um mecanismo de roteamento de requisições convencionado, o ASP.NET

MVC consegue entender que as três diferentes chamadas ( http://localhost:1153/

,

http://localhost:1153/Home e

http://localhost:1153/Home/Index ) estão na verdade

fazendo referência ao mesmo recurso.

Talvez as perguntas que permeiem sua

mente neste instante são: onde está convencionado o mecanismo de rotas? Consigo visualizar e alterar essa configuração?

A resposta direta e definitiva para esta

pergunta é sim (veja a listagem 1).

Listagem 2.1 - Visualizando a configuração de rotas:

public static void RegisterRoutes(RouteCollection routes)

{

15

2.4. Navegação baseada em rotas

Casa do Código

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home",

action = "Index",

id = UrlParameter.Optional

}

);

}

Se você navegar até o diretório App_Start e expandi-lo através da Solution Ex-

plorer do projeto de exemplo, visualizará algumas classes escritas em C#. Todas elas implementam comportamentos que serão executados na inicialização da aplicação.

Dentre estes arquivos, encontra-se um chamado RouteConfig.cs. Com um du-

plo clique sobre o mesmo você poderá visualizar o método apresentado pela listagem 1.

No código apresentado pela listagem anterior, ficam claros dois aspectos em re-lação ao mecanismo de rotas. O primeiro faz menção ao fato de que se pode registrar novas e personalizadas rotas (vide o nome do método RegisterRoutes) para uma

aplicação. O segundo reside justamente no fato de que o ASP.NET MVC já traz consigo a implementação de uma rota padrão

de navegação e é ela que gera, de fato, o comportamento apresentado pela 2.2.

Note que, para a rota

Default ( name: "Default"), temos a atri-

buição do valor

Home para o atributo

Controller ( controller =

"Home"), do valor

Index para o atributo

Action ( action = "Index")

e do valor

UrlParameter.Optional

para o atributo

id

( id =

UrlParameter.Optional).

Se ligarmos os pontos, concluiremos que a rota apresentada por nossa aplicação de exemplo (ver novamente figura 2.2) atende ao padrão definido pelo framework.

Veja a comparação, padrão implementado:

controller = "Home", action = "Index", id = UrlParameter.Optional Verifique a URL de nossa aplicação de exemplo:

http://localhost:1153/Home/Index

Ou simplesmente:

16

Casa do Código

Capítulo 2. Entendendo a estrutura de uma aplicação ASP.NET MVC

http://localhost:1153/

Vale lembrar mais uma vez que Home e Index são valores padrão na rota pa-

drão do ASP.NET MVC. Opcionalmente, seria possível adicionar à URL um va-

lor chave para identificar algum objeto. Desta forma, poderíamos ter algo como http://localhost:1153/Home/Index/200 por exemplo. Entretanto, muito embora seja possível realizar tal adição, no caso do exemplo discutido não faz sentido fazê-lo, pois não estamos identificando de forma unitária algum elemento (como http://localhost: 1153/Clientes/Perfil/18556 ). Por este motivo, o último parâmetro da rota padrão é definido como opcional ( id = UrlParameter.Optional).

A figura 2.3 apresenta um esquema funcional que ilustra (de forma simplificada) o mecanismo de roteamento implementado pelo ASP.NET MVC.

Figura 2.3: Esquema do mecanismo de rotas do ASP.NET MVC

Modelo de roteamento que gera URLs semânticas"

Considere a seguinte URL: http://seusite.com/Conteudo.aspx?id=987511. A pergunta a ser realizada aqui é: é fácil memorizar uma URL como esta? A resposta, evidentemente, é não.

URLs como essa apresentada no parágrafo anterior são geradas automaticamente

pelos sistemas web para fazer referência de forma dinâmica aos conteúdos da aplicação. Muito embora não haja qualquer problema técnico (isto é, esta URL funciona perfeitamente) relacionado a este tipo de URL, se pensarmos na experiência do 17

2.5. Concluindo e desafiando

Casa do Código

usuário final ao interagir com ela, poderemos encontrar alguns problemas, dentre os quais se destacam: dificuldade de memorização e baixa legibilidade.

Além disso, é importante observar o impacto negativo destas URLs nas técnicas

de Search Engine Optimization (SEO) [2]. Note que os principais robôs de indexa-

ção de conteúdos de sites de busca (Google, Bing etc.), desconsideram URLs que apresentam alguns caracteres especiais, tais como: &, @, % etc.

Levando-se em consideração estes aspectos, ASP.NET MVC implementa através

do mecanismo de rotas o modelo de URLs amigáveis. Assim, além tornar a URL

da aplicação indexável para os robôs de busca, o framework melhora a experiência navegação do usuário, uma vez que é bem mais fácil de interagir com uma URL como http://seusite.com/Conteudos/Artigos/987511.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке