Revista Active Delphi
quinta-feira, 29 de julho de 2010
Busca  
Porta 80 Web Hosting
 :: Acessibilidade
Ir para conteúdo principal: ALT + 1
 :: Participe
Seja um autor de CD/DVD de Treinamento
Publique um artigo
Publique uma oportunidade
Publique uma notícia
Publique um curso
Publique uma dica
Publique um código
 :: Informativo
Receba nossos informativos por e-mail.
E-mail:   
 
Digite a palavra abaixo:  
 
 
 :: Oportunidades
Cadastrar oportunidades
Gerenciar suas oportunidades
Cadastrar nova empresa
 :: Especiais
Básico de C++
C++ Builder
Curso ASP.NET 3.5 em VB.NET e C#
Guia Prático de HTML
Testes com Visual Studio Team System 2008
 :: Desenvolvimento
ActionScript
ADO.NET
ASP
ASP.NET
Automação Comercial
C#
C/C++
Coldfusion
CSS
Delphi
Disp. Móveis
HTML
Java
Javascript
LSL (Second Life)
Modelagem
PHP
Python
Sharepoint
Silverlight
SQL
VBA (Office)
Visual Basic
Visual Basic .NET
Visual Fox Pro
WCF/WPF
Web Services
XML
 :: Infra
BizTalk Server
CRM
Exchange Server
ForeFront / Antigen / IAG
Interoperabilidade
ISA Server
Linux
MOF
MS Dynamics CRM
Network
OCS / LCS
Outlook
Powershell e Scripts
Redes
Segurança
System Center e Gerenciamento
Virtualização
Windows
Windows Server
 :: Banco de Dados
Access
Caché
Firebird
Interbase
MySQL
Oracle
SQL Server
Sybase
 :: Gerência
Arquitetura
Ciclo de Vida de Desenvolvimento
Controle de Versão
Estimativas
Metodologias
MOF
Qualidade e Testes
 :: Design
Corel
Flash
Photopaint
Photoshop
 :: Livros
Análise Sistemas
Aplicativos
Banco de Dados
Certificação
Design e CAD
Gerência
Hardware
Internet
Programação
Programação Web
Rede
Segurança
Servidores
Sistemas Operacionais
 :: CDs/DVDs
Desenvolvimento
Infra
Design
 :: E-Books
.NET 2.0 (VS 2005)
.NET 1.1 (VS 2003)
SQL Server
Excel 2007
Excel 2003
Access 2003
ASP 3.0
Delphi
Java
Artigos


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.

Produtos.aspx
   1:  <asp:Repeater ID="Repeater1" runat="server">
   2:          <ItemTemplate>
   3:          <%#Eval("Codigo")%>
   4:          <%#Eval("Descricao")%>
   5:          <br />
   6:          
   7:          </ItemTemplate>
   8:  </asp:Repeater>
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.

Carregar()
   1:  /// <summary>
   2:  /// Obter dados do banco de dados
   3:  /// Traz apenas um grupo especifico de registros.
   4:  /// </summary>
   5:  private void Carregar()
   6:  {
   7:              var pagina = 0;
   8:              var db = new PaginacaoDBDataContext();
   9:              var totalRegistros = (from p in db.Products
  10:                           select p).Count();
  11:              if (PaginaAtual != 0)
  12:              { pagina = PaginaAtual * MaximoRegistrosPagina; }
  13:   
  14:   
  15:            var dados = (from p in db.Products
  16:                           orderby p.ProductID 
  17:                           select new
  18:                           {  
  19:                               Codigo = p.ProductID,
  20:                               Descricao = p.ProductName
  21:                           }
  22:   
  23:                    ).Skip(pagina).Take(MaximoRegistrosPagina);
  24:   
  25:              this.Repeater1.DataSource = dados;
  26:              this.Repeater1.DataBind();
  27:              ConfiguraPaginacao(totalRegistros);
  28:  }
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.

T-SQL Paginação
   1:  SELECT [t1].[ProductID] AS [Codigo], [t1].[ProductName] AS
 [Descricao]
   2:  FROM (
   3:      SELECT ROW_NUMBER() OVER (ORDER BY [t0].[ProductID]) AS
 [ROW_NUMBER], [t0].[ProductID], [t0].[ProductName]
   4:      FROM [dbo].[Products] AS [t0]
   5:      ) AS [t1]
   6:  WHERE [t1].[ROW_NUMBER] BETWEEN 10 + 1 AND 10 + 10
   7:  ORDER BY [t1].[ROW_NUMBER]
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.

ConfiguraPaginacao()
   1:  /// <summary>
   2:  /// Configurando controle de paginação
   3:  /// </summary>
   4:  /// <param name="total"></param>
   5:  private void ConfiguraPaginacao(int totalRegistros)
   6:  {
   7:              
   8:       PaginacaoParametros parametros = new PaginacaoParametros();
   9:       parametros.TotalRegistros = totalRegistros;
  10:       parametros.PaginaAtual = PaginaAtual;
  11:       parametros.MaximoRegistrosPagina = MaximoRegistrosPagina;
  12:       ucPaginacao1.Carregar(parametros);
  13:  }
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.

ucPaginacao.ascx
   1:  <%@ Control Language="C#" AutoEventWireup="true"
   2:   CodeBehind="ucPaginacao.ascx.cs"
   3:    Inherits="PaginacaoSEOLinq.ucPaginacao" %>
   4:  <br style="clear: both;" />
   5:  <div id="Navigation" runat="server">
   6:  <div id="navegacao">
   7:  <a id="PreviousPageNav" runat="server"> &lt;&lt; Voltar</a>             
   8:  <asp:Label ID="PagerLocation" runat="server" />
   9:  <asp:HyperLink ID="Link1" runat="server"></asp:HyperLink>
  10:  <a id="NextPageNav" runat="server">Avançar &gt;&gt;</a>
  11:  </div>       
  12:  </div>
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.

ucPaginacao.ascx
   1:  public partial class ucPaginacao : System.Web.UI.UserControl
   2:  {
   3:   private PaginacaoParametros configuracao;
   4:   protected void Page_Load(object sender, EventArgs e)
   5:   {
   6:   }
   7:   public void Carregar(PaginacaoParametros config)
   8:   {
   9:   }
  10:   void UpdatePagerLocation(int pageIndex, int 
pageSize, int productCount)
  11:   {
  12:   }
  13:   void UpdateNextPrevLinks(int pageIndex,
 int pageSize, int productCount)
  14:   {          
  15:   }
  16:  }
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 





MS TechEd 2010



 

Conheça os produtos do autor Ramon Durães

Inclua um comentário sobre o artigo Topo
Elogios e críticas são muito bem vindos, porém o comentário deve ter referência ao artigo em pauta.
O portal e o autor agradecem.
Nome:    
E-mail:      
Comentários:    
Digite a palavra abaixo:  
Para dúvidas técnicas, NÃO UTILIZE ESTE ESPAÇO, utilize nosso fórum de discussão.
http://linhadecodigo.com.br/cs2/forum
 
Comentários sobre o artigo Ver Todos comentários
Ainda não existem comentários sobre este artigo. Seja o(a) primeiro(a)!
Outros artigos do autor Topo
Administrando o código fonte usando Visual Studio Team System
Primeiros passos no Visual Studio Team System
Editando múltiplas linhas usando o GridView no ASP.NET 3.5
Explorando o IIS 7.0
Explorando o ASP.NET AJAX
Perguntas e respostas sobre Visual Studio Team System
Introdução ao ADO.NET Entity Framework
Explorando o ASP.NET 3.5 Dynamic Data Controls
Gerenciando banco de dados usando Visual Studio Team System
Explorando o Visual Studio Team System
Acessando código fonte do .NET Framework
Introdução ao LINQ to SQL
Explorando Visual Studio 2008
ADO.NET 2.0 - Copiando dados usando Bulk Copy
Explorando o ASP.NET 2.0 RSS Toolkit
Documentando código .NET
Introdução ao Microsoft Silverlight
ASP.NET 2.0 - Criando urls pra web 2.0
ASP.NET 2.0 - Adicionando Atlas no Toolbox
ASP.NET 2.0 - Data Access Layer com TableAdapter
ASP.NET 2.0 - Paginando dados com SQLServer (2000/2005)
ASP.NET 2.0 - Atlas Framework Toolkit
VSTS - Eu Instalei o Visual Studio Team Foundation Server
ASP.NET 2.0 - Criando um PostBack
ASP.NET 2.0 - Atlas FrameWork (Build Janeiro)
ASP.NET 2.0 - AJAX para cá, AJAX para lá. Vá de Atlas Framework
ASP.NET 2.0 - Recursos de localização parte 01
ASP.NET 2.0 - SiteMapPath
ADO.NET 2.0 - Conhecendo as novidades - parte 1
ASP.NET 2.0 - Herança visual com Master Page
ASP.NET 2.0 - Utilizando XmlDataSource
.NET 2.0 - Instalando facilmente SmartClient com ClickOnce
.NET 2.0 - Introdução ao Generics (Whidbey)
ASP.NET 2.0 - Client Callback dando mais inteligência no cliente
ASP.NET 2.0 - Visual Studio 2005 Whidbey - Pré Beta2 (Preview)
ASP.NET 2.0 - Introdução a WebParts
ASP.NET - DataGrid com ordenação
ASP.NET 2.0 - GRIDVIEW (Novo Datagrid) Visual Studio 2005
ASP.NET 2.0 - Visual Studio 2005 (Whidbey)
ASP.NET - WebServices para Iniciantes
ASP.NET - Gráficos Barra e Pizza (System.Drawing)
.NET Class Libary - Expanda as funcionalidades com seu Framework
ASP.NET - Janela Modal com calendário
ASP.NET - DataGrid com CheckBox e Paginação
.NET - Escolhendo VB.NET ou C#
.NET: ADO.NET para iniciantes
.NET Class Libary - Componente Exportador Excel (*.xls)
ASP.NET - Utilizando UserControls
ASP.NET / DataGrid – Master Details com edição do Details (Pai-Filho)
ASP.NET: TreeView IE WebControl com banco de dados
ASP.NET / DataGrid – Adicionando rolagem (Scroll)
ASP.NET / DataGrid – Tornando Linha sensível ao clique do mouse
ASP.NET - Utilizando SSL (Secure Socket Layer)
ASP.NET - Ganhe agilidade em operações com Strings
Artigos relacionados Topo
Acesso a Dados com ASP.NET - Parte 4
Acesso a Dados com ASP.NET - Parte 3
Acesso a Dados com ASP.NET - Parte 2
Acesso a Dados com ASP.NET - Parte 1
Usando DataSet Tipado com ASP.NET
Gerenciador de conteúdo ASP.NET MVC 2 - Kooboo
Criando um Leitor de Arquivos em ASP.NET
Criando um Leitor de RSS em ASP.NET
Trabalhando com Update Panel no ASP.NET
Como fazer Deploy no ASP.NET 4?
Utilizando jQuery para invocar Actions
Enviando Emails com ASP.NET usando System.Net.Mail
Criando editor de texto personalizado em Asp.Net
JQuery auto complete em Asp.Net
Autenticação via Claims no ASP.NET MVC
Detectando erro a todo custo
Explorando os módulos do WIF para o ASP.NET
Autenticação via Claims no ASP.NET WebForms
Uma nova forma de Autenticação/Autorização
Autenticação e Autorização no ASP.NET MVC
Explorando Segurança do ASP.NET - Roles
Explorando Segurança do ASP.NET - Membership e MembershipUser
Programação Assíncrona no ASP.NET MVC
Compactação de ViewState em ASP.NET
Criando e utilizando User Controls no Silverlight
Gerando JavaScript do lado do servidor com ASP.NET
Introdução às Dependency Properties
Efeitos de imagem com ASP.NET e LightBox 2
Marca d´agua em imagens usando System.Drawing
Asp.Net + Twitter sem API de terceiros
Produtos relacionados Topo
Pacote: Promoção C# Básico (válido somente para pagamento via boleto bancário)
CD/DVD: CD de Treinamento Criando Aplicações Asp.Net em Camadas (parte integrante do portal de vídeos .Net)
Pacote: Promoção: Portal de Vídeos .Net + CD Novidades das Linguagens (válido somente para pagamento via boleto bancário)
Pacote: Promoção Linq To SQL (válido somente para pagamento via boleto bancário)
Pacote: Promoção ASP.Net com Banco de Dados (válido somente para pagamento via boleto bancário)
Pacote: Promoção Linq + Asp.Net
CD/DVD: DVD de Treinamento E-Commerce com Visual Web Developer
CD/DVD: CD de Treinamento - Office SharePoint 2007 para Desenvolvedores WEB
CD/DVD: DVD de Treinamento - Crie uma aplicação ASP.NET com LINQ TO SQL
Livro: Desenvolvendo para web usando o Visual Studio 2008
CD/DVD: DVD de Treinamento Explorando o LINQ para SQL
Pacote: Pacote: Desenvolvedor Web Kit III (4 CDs)
Pacote: Pacote: Desenvolvedor Web Kit II (3 CDs)
Pacote: Pacote: Desenvolvedor Web Kit I (2 CDs)
CD/DVD: CD de Treinamento - RAD Studio 2007 e ASP.NET 2.0 (Delphi)
Pacote: Pacote ASP.NET - 4 CDs (Implementando AJAX em páginas ASP.NET 3.5 com o Visual Studio .NET 2008 + ASP.NET 2.0 Básico + Um mergulho no Controle GridView do ASP.NET 2.0 + Explorando as novidades)
CD/DVD: CD de Treinamento – Implementando AJAX em páginas ASP.NET 3.5 com o Visual Studio .NET 2008
CD/DVD: CD de Treinamento ASP.NET para Iniciantes - Visual Studio 2008
CD/DVD: CD de Treinamento sobre ASP.NET 2.0 Básico
CD/DVD: CD de treinamento: Um mergulho no Controle GridView do ASP.NET 2.0
E-Book: ASP.NET Ajax com C# e VB.NET (E-Book com entrega via download)
CD/DVD: CD de Treinamento sobre LINQ to SQL para iniciantes com Visual Studio .Net 2008
CD/DVD: CD de Treinamento Introdução a banco de dados com SQL Server 2005 Express
CD/DVD: CD de Treinamento Novidades das Linguagens C# 3.0 e VB 9 (Visual Basic 9)
CD/DVD: CD ASP.NET 2.0 - Atualização Rápida (Visual Studio .NET 2005)
CD/DVD: CD - Treinamento de ASP.NET 2.0 AJAX Extensions
CD/DVD: CD de Treinamento de ASP.NET 2.0 - Explorando as novidades
Livro: ASP.NET para desenvolvedores de web sites
Livro: ASP.NET Utilizando C# - De Programador para Programador
E-Book: E-Book: Tutorial de GridView no ASP.NET 2.0 (via download)
Livro: Integrando Flash com PHP para Versões MX 2004, MX e 5.0
© Copyright 2001-2010 Codeline Editora, Comércio e Tecnologia Ltda. | Política de privacidade e de uso | Anuncie | Fale conosco

» Site hospedado na Porta 80 Web Hosting «
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
Publicidade

Conheça a loja do Linha de Código.

Microsoft indica Linha de Código.

Assine a Revista Mundo .NET
Portal de Vídeos .NET - os melhores vídeos .NET estão aqui
O que você fará com o Visual Studio 2010?
Revista Codificando .Net

Siga-nos no Twitter

Linha de Código no Orkut
Fórum de discussão do portal Linha de Código
Feeds
Oportunidades
Notícias
Artigos
Artigos personalizado
       (Por assunto)
Artigos personalizado
       (Por autor)
Portal Vídeos .NET
Portal Vídeos Delphi
LC Blog
       (Onde você faz a notícia)
Promoções
Promoção Mobile com entrega via download (válido somente para pagamento via boleto bancário)
Promoção Mobile com entrega via download (válido somente para pagamento via boleto bancário)
De: R$ 189,00
Por: R$ 126,00
Promoção Wordpress + Tabless (válido somente para pagamento via boleto bancário)
De: R$ 149,70
Por: R$ 99,80
Promoção C# Básico (válido somente para pagamento via boleto bancário)
De: R$ 185,90
Por: R$ 136,00
Promoção PHP + MYSQL Intelimax (válido somente para pagamento via boleto bancário)
De: R$ 308,00
Por: R$ 219,00
Promoção Especial Infra
De: R$ 175,95
Por: R$ 136,00
CDs/DVDs
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
DVD Desenvolvimento de Games - Programando Jogos com o 3D Game Studio
Por: R$ 59,00
DVD Curso de CorelDraw X4
Por: R$ 79,90
DVD Curso de Fireworks CS4
Por: R$ 49,90
DVD Curso de Indesign CS4
Por: R$ 55,00
DVD Curso de Efeitos Digitais
Por: R$ 49,90
Livros
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
MSProject 2007 - Metodologia e Critérios de Qualidade para o Gerenciamento de Projetos
De: R$ 129,00
Por: R$ 77,40
Foundation FLASH CS3 para Designers
Ciência Moderna
De: R$ 139,00
Por: R$ 83,40
Recursos Visuais na Web com PHP
Ciência Moderna
De: R$ 49,00
Por: R$ 29,40
Crie um Sistema Web com PHP 5 e AJAX - Controle de Estoque
Erica
De: R$ 99,50
Por: R$ 84,50
Crie Projetos Gráficos com Adobe Photoshop CS4, CorelDRAW X4 e Adobe InDesign CS4 - em Português
Erica
De: R$ 77,50
Por: R$ 65,80
E-Books
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Manual Completo de Estudos MCSE 70-270 - Instalando, Configurando e Administrando o Windows XP (506 páginas) - Entrega via download
Por: R$ 30,00
Manual de Estudos - Exame 70-291 - Windows Server 2003 (606 páginas) - entrega via download
Por: R$ 30,00
Dominando MS – Visio ® em 20 Passos - Melhores Práticas em Gestão de Projetos (entrega via download)
Por: R$ 30,00
MS-Project® 2007 - Melhores Práticas de Gestão de Projetos - Dominando MS – Project ® em 20 Passos (e-book com entrega via download)
Por: R$ 20,00
Banco de dados com C# e Visual Studio .Net 2005 (entrega via download)
Por: R$ 20,00
Os 10+ | Autores do dia
Israel Aéce
Júlio Cesar Fabris Battisti
Anderson Patricio
Alfred Reinold Baudisch
Luiz Felipe de Freitas
Robert Martim
Ramon Durães
Alessandro de Oliveira Faria
José Carlos Macoratti
Eric C M Oliveira
Os 10+ | Artigos do dia
HTML Básico
HTML Avançado
Criando aplicativos para o Orkut
Tutorial de Tabelas Dinâmicas no Excel – Parte 1
Excel: fórmulas matriciais
ASP.NET 2.0 - Explorando o GridView
Iniciando um projeto de Nota Fiscal Eletrônica - NFe
PL/SQL - Procedures e Funções
Excel: Comparando Listas
PHP: Formulários e upload de múltiplos arquivos e fotos