|
quinta-feira, 29 de julho de 2010 |
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
 MVP Profile
|
|
| Otimizando a paginação do ASP.NET para SEO usando LINQ |
|
Por: Ramon Durães [Entre em contato com o autor ]
|
|
| Especialista em desenvolvimento de software e Microsoft Most Valuable Professional (MVP) em Visual Studio Team System. Realiza treinamentos de .NET Framework em empresas, consultoria em arquitetura de software e implantação de Visual Studio Team System. Palestrante nos principais eventos da Microsoft no Brasil (Tech-Ed 2005, Tech-Ed 2006, Tech-Ed 2007, Tech-Ed 2008, Tech-ED 2009), Microsoft Innovation Days 2007 (Salvador, Brasília, Recife, Goiânia, Natal, Maringá), Microsoft Innovation Days 2009 (Salvador) , Campus Party Brasil 2009 e eventos regionais relacionados a grupos de usuários e universidades. Conhecido autor de artigos para os principais portais de conteúdo e autor de 10 publicações eletrônicas em CD (Video-Aula) pela editora Linha de Código além dos livros "Desenvolvendo para web usando o Visual Studio 2008" e "Gerenciando projetos de software usando Visual Studio Team System" pela editora Brasport. Pode ser encontrado em seu blog http://www.ramonduraes.net e @ramonduraes no Twitter. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Feed de artigos.
Feed de artigos deste autor.
Gere seu feed personalizado
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Otimizando a paginação do ASP.NET para SEO usando LINQ |
|
| Publicado em: 25/01/2008 |
|
|
|
|
Artigo recomendado para Visual Studio 2008, SQLServer 2005/2008.
A internet não é mais a mesma desde o lançamento dos
primeiros cadastros de sites que deram inicio aos grandes portais de busca
que temos hoje. Em função dos poderosos indexadores precisamos
otimizar o conteúdo e links da aplicação web de forma que ela seja melhor
entendida e indexada. A esse conjunto de técnicas de marketing focado em
indexação de conteúdo que deu-se origem ao termo SEO (Search engine
optimization). Utilizando o ASP.NET temos diversos caminhos a otimizar
fazendo com que a aplicação exposta na web de forma pública seja melhor entendida
e um deles é a paginação de registros que vamos implementar nesse artigo.
Vale ressaltar que essa técnica de paginação utilizara o
LINQ (Language
Integrated Query) para o
melhor desempenho e SQLServer 2005 ou 2008 com numeração de linhas. Você
também pode substituir o LINQ por uma Stored Procedure e adaptar o mesmo
exemplo para uso no Visual Studio 2005 com tableAdapter.
Após criação do novo projeto web o próximo passo é criar o diagrama de
classe do LINQ para o mapeamento da tabela Produtcs do banco de dados
exemplo 'Northwind'
conforme Figura 01. Lembrando que esse banco de dados deve
está rodando no servidor SQLServer.

Figura 01 - Tabela Products mapeada como classe Product no
LINQ.
Agora para completar o projeto adicione um webform Produtos.aspx e um
usercontrol chamado de ucPaginacao.ascx que usaremos para conter a interface
de paginação. Durante a implementação desse exemplo utilizaremos um Repeater
para exibir os dados, porém como o mesmo não possui paginação estamos
justamente desenvolvendo nesse artigo.
Retornando ao nosso formulário adicione um Repeater e configure conforme o
código HTML da Listagem 01.
Listagem 01 - Configurando controle Repeater.
O Próximo passo é arrastar o controle ucPaginacao para pagina
produtos.aspx. Em seguida criaremos o método Carregar() dentro do nosso
WebForm 'Produtos'. Esse método será o
responsável pela consulta no banco de dados usando o LINQ e trará apenas
um bloco especifico de registros otimizando a paginação ao máximo.
Confira na Listagem 02.
Listagem 02 - Implementando método
Carregar().
Conforme você está observando nessa listagem usando a linguagem de
consulta do LINQ estamos obtendo um conjunto especifico de registros que
estão determinados pelo parâmetro Skip() e Take(). Confira na Listagem 03 um
exemplo de código T-SQL gerado automaticamente.
Listagem 03 - Código T-SQL gerado pelo LINQ
A lógica implementada na Listagem 02
tem objetivo de extrair do banco de dados a pagina atual calculada pela
quantidade de registros no banco de dados (Listagem 02 - Linha 09), mais
o tamanho da pagina (padrão 10 registros) e o parâmetro pagina atual que
será usado para determinar os parâmetros do método Skip().
Para criar o link de avançar e retornar pelos registros foi
implementado uma regra dentro do controle ucPaginacao onde configuramos
pelo método ConfiguraPaginacao()
apresentado na Listagem 04.
Listagem 04 - Implementação do método ConfiguraPaginacao().
Conforme Listagem 04 nesse método
estamos usando a classe PaginacaoParametros criada dentro do UserControl
com objetivo de passar parâmetros para o controle por meio do método
Carregar() apresentado na linha 12.
Examinando o controle ucPaginacao na Listagem 05 perceba
que adicionamos dois controles HyperLink justamente para utilizarmos os
links em HTML de forma que as ferramentas de busca possam navegar por todas
as paginas automaticamente. Como elas navegam em todos links html que
encontram vão avançar todas as paginas até o final registrando em suas bases
de dados todo o conteúdo.
Listagem 05 -Código
html do ucPaginacao.
Numa rápida visão dentro do código do controle ucPaginacao apresentado
na Listagem 06 estamos implementando
os métodos necessários para configurar o controle conforme os dados
recebidos e exibir as informações para mostrar os links através do
método UpdateNextPrevLinks. Parte do código fonte foi suprimido por está
disponível para download junto com o código fonte.
Listagem 06 - Implementação do controle ucPaginacao.
A idéia principal de usar
esse UserControl é reutilizar o mesmo em todas as paginas bastando
arrastar e configurar os parâmetros. Confira o mesmo em ação na
Figura 02 e acompanhe também o parâmetro da pagina atual
passado na url.

Figura 02 - Paginação em ação.
Durante esse artigo você observou uma implementação usando LINQ com
objetivo de realizar paginação atendendo aos critérios do SEO (Search
engine optimization) que atingimos pela paginação usando Hyperlink. Esse
artigo foi preparado também de forma que você possa substituir o código
do LINQ por uma paginação usando TableAdapter ou código manual
diretamente usando ADO.NET para ser compatível com Visual Studio 2005.
Código Fonte: [Download] Esse artigo foi baseado no banco de dados ''NorthWind".
Referência:
ASP.NET
2.0 - Paginando dados com SQLServer (2000/2005)
Linq para iniciantes - Visual Studio 2008
Efficient Data Paging with the ASP.NET 2.0 DataList Control and
ObjectDataSource
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Conheça os produtos do autor Ramon Durães
» : CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System (entrega via download - 144 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008 (entrega via download - 471 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Gerenciando projetos de software com Visual Studio Team System (entrega via download - 365 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008 (entrega via download - 242 Mb) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express (entrega via download - 151 Mb) Por: R$ 53,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento sobre ADO.NET para Iniciantes (entrega via download - 126 Mb) Por: R$ 53,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de Treinamento Introdução a .NET com C# - Visual Studio 2005 (entrega via download - 225 Mb) Por: R$ 43,00 (COMPRAR AGORA) Entrega: imediata
| » : CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005) (entrega via download - 188 Mb) Por: R$ 39,00 (COMPRAR AGORA) Entrega: imediata
| » : CD - Treinamento de ASP.NET 2.0 AJAX Extensions (entrega via download - 79,4 Mb) Por: R$ 39,00 (COMPRAR AGORA) Entrega: imediata
| » : CD de treinamento: Qualidade de Software com Visual Studio Team System (entrega via download - 69,90 MB) Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » Livro: Desenvolvendo para web usando o Visual Studio 2008 De: R$ 73,00 Por: R$ 60,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Explorando banco de dados usando .NET II (3 CDs) De: R$ 219,00 Por: R$ 188,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Explorando banco de dados usando .NET I (2 CDs) De: R$ 146,00 Por: R$ 132,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit III (4 CDs) De: R$ 292,00 Por: R$ 236,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit II (3 CDs) De: R$ 219,00 Por: R$ 188,00 (COMPRAR AGORA) Entrega: imediata
| » Pacote: Pacote: Desenvolvedor Web Kit I (2 CDs) De: R$ 146,00 Por: R$ 132,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Gerenciando banco de dados usando Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008 Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Gerenciando projetos de software com Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008 Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express De: R$ 73,00 Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento sobre ADO.NET para Iniciantes De: R$ 73,00 Por: R$ 63,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de Treinamento Introdução a .NET com C# - Visual Studio 2005 De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005) De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD - Treinamento de ASP.NET 2.0 AJAX Extensions De: R$ 73,00 Por: R$ 59,00 (COMPRAR AGORA) Entrega: imediata
| » CD/DVD: CD de treinamento: Qualidade de Software com Visual Studio Team System Por: R$ 73,00 (COMPRAR AGORA) Entrega: imediata
|
|
|
|
|
|
|
|
|
|
|
|
| Inclua um comentário sobre o artigo |
Topo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| | | | | | | | | | Ainda não existem comentários sobre este artigo. Seja o(a) primeiro(a)! | |
| | | | | | | | | |
|
|
|
| Outros artigos do autor |
Topo |
|
|
|
|
|
|
| Artigos relacionados |
Topo |
|
|
|
|
|
|
| Produtos relacionados |
Topo |
|
|
|
|
|
|
|
|
Nossos números |
|
|
|
|
|
|
|
Dicas: 1.314
Códigos/scripts: 279
Funções de VBScript : 90
Funções JScript : 05
Livros: 1.805
Notícias: 2.488
Artigos: 2.972
Cases: 14
Oportunidades: 4.546
|
|
|
|
|
|
|
|
|
| | |