Sumário   CRIANDO SITES   DINÂMICOS COM  ASP 3.0Júlio Battisti                    I
Criando Sites Dinâmicos com ASP 3.0                           Copyright © 2000 by Júlio Battisti                 Copyright...
SumárioCréditos    Produção           Alexandre Ramires           Carlos Alberto Sá Ferreira    Revisão           Vanessa ...
Criando Sites Dinâmicos com ASP 3.0AgradecimentosEmbora este seja o meu segundo livro, a emoção e a satisfação de concluir...
SumárioSobre o AutorJúlio Battisti é profissional certificado da Microsoft, tendo sido aprovado em 16 Exames daMicrosoft, ...
Criando Sites Dinâmicos com ASP 3.0               VI
SumárioSumárioIntrodução ....................................................................................................
Criando Sites Dinâmicos com ASP 3.0        Criando um Conjunto de “Radio Buttons” – a tag <INPUT TYPE=“RADIO”> ..............
Sumário        Função CSng ..................................................................................................
Criando Sites Dinâmicos com ASP 3.0        Alguns Campos que Merecem Considerações Especiais ................................
Sumário        Etapas na Estruturação de um Banco de Dados ............................................................ 26...
Criando Sites Dinâmicos com ASP 3.0    A Página ASP Para Excluir o Produto Selecionado – Exclui.asp .........................
Sumário       A Coleção Contents ............................................................................................
Criando Sites Dinâmicos com ASP 3.0     URL .................................................................................
Sumário     Colocando uma Página ASP no Contexto de uma Transação .............................................. 665     E...
Criando Sites Dinâmicos com ASP 3.0        Oct(expressão) ...................................................................
Sumário        String(número,caractere) .....................................................................................
Introdução – Sites Dinâmicos com ASP 3.0Introdução Sites Dinâmicos  com ASP 3.0                    1
Criando Sites Dinâmicos com ASP 3.0Neste livro vamos abordar diversos assuntos relacionados com a criação de sites dinâmic...
Introdução – Sites Dinâmicos com ASP 3.0Observe que o Server foi substituído por Services. No tópico sobre as novidades do...
Criando Sites Dinâmicos com ASP 3.0       estimados. Alguns sites famosos já enfrentaram problemas de crescimento além do ...
Introdução – Sites Dinâmicos com ASP 3.0Para instalar o IIS 5.0:   1. Faça o logon no Windows 2000 Server.   2. Abra o Pai...
Criando Sites Dinâmicos com ASP 3.0   7. Dê um clique no botão Componentes.   8. Será exibida, por breves instantes, uma m...
Introdução – Sites Dinâmicos com ASP 3.0                        Figura I.4: O serviço Internet Information Services (IIS)....
Criando Sites Dinâmicos com ASP 3.0                   Figura I.5: Indicação do espaço necessário no disco rígido.14. Dê um...
Introdução – Sites Dinâmicos com ASP 3.0  17. Caso o Windows 2000 Server não encontre os arquivos necessários à instalação...
Criando Sites Dinâmicos com ASP 3.0Deve surgir uma janela conforme indicado na Figura 1.8.                      Figura I.8...
Introdução – Sites Dinâmicos com ASP 3.0   ➥ Administração e serviços (FTP e HTTP).   ➥ Desenvolvimento de aplicações Inte...
Criando Sites Dinâmicos com ASP 3.0       limitadas a determinadas tarefas, por exemplo, criar diretórios virtuais. Com is...
Introdução – Sites Dinâmicos com ASP 3.0É Hora de ComeçarBem, já estamos com o IIS instalado e funcionando, conhecemos as ...
Criando Sites Dinâmicos com ASP 3.0      drivers ODBC, até métodos mais atuais, como a utilização de ADO (ActiveX Data Ob-...
Capítulo 1 – Uma Introdução à Tecnologia ASPCapítulo 1Uma Introdução à Tecnologia ASP                    15
Criando Sites Dinâmicos com ASP 3.0A Internet faz parte da vida de um número cada vez maior de pessoas. Fazer compras, sem...
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Próximos SlideShares
Carregando em…5
×

Asp julio battisti - criando sites dinamicos com asp 3.0

15.804 visualizações

Publicada em

1 comentário
2 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
15.804
No SlideShare
0
A partir de incorporações
0
Número de incorporações
22
Ações
Compartilhamentos
0
Downloads
312
Comentários
1
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Asp julio battisti - criando sites dinamicos com asp 3.0

  1. 1. Sumário CRIANDO SITES DINÂMICOS COM ASP 3.0Júlio Battisti I
  2. 2. Criando Sites Dinâmicos com ASP 3.0 Copyright © 2000 by Júlio Battisti Copyright © 2000 by Axcel Books do Brasil Editora Ltda. Nenhuma parte desta publicação poderá ser reproduzida sem autorização prévia e escrita de Axcel Books do Brasil Editora.Editora de Produção: Gisella NarcisiEditor Responsável: Ricardo Reinprecht Criando Sites Dinâmicos com ASP 3.0 Júlio Battisti ISBN: 85-7323-141-6 Suporte Técnico ao Leitor Limite de garantia: Nosso suporte técnico limita-se ao conteúdo específico do livro, e não a questões gerais referentes ao(s) software(s) descrito(s), cessando caso esta publicação tenha sido esgotada. Para obter esse suporte técnico específico, o leitor deve informar título, autor e página, somente via e-mail. Todos os originais de livros enviados para avaliação pela Editora serão destruídos, caso não sejam aprovados. Não será feita sua devolução em nenhuma hipótese. Os conceitos emitidos nesta obra são de inteira responsabilidade do Autor. E-mail: editora@axcel.com.br Visite nossa Home Page http://www.axcel.com.br Axcel Books do Brasil Editora Av. Paris, 571 – Bonsucesso 21041-020 – Rio de Janeiro – RJ Tel. (21) 2564-0085 II
  3. 3. SumárioCréditos Produção Alexandre Ramires Carlos Alberto Sá Ferreira Revisão Vanessa Garcia Arte e Diagramação Ingo Bertelli Supervisor de Produção Carlos Alberto Sá Ferreira Capa Ingo Bertelli Editora de Produção Gisella Narcisi Editor Responsável Ricardo Reinprecht III
  4. 4. Criando Sites Dinâmicos com ASP 3.0AgradecimentosEmbora este seja o meu segundo livro, a emoção e a satisfação de concluir mais esse trabalhoé talvez até maior do que no lançamento do primeiro. Foram meses de trabalho árduo,escrevendo capítulos entre uma viagem e outra. Felizmente conseguimos concluir esse livrono tempo estimado. E o principal é que saiu conforme o planejado. Penso que esse livro podeajudar bastante aqueles que querem aprender a tecnologia ASP, e até mesmo programadoresmais experientes.No entanto, um trabalho como este não pode ser realizado sem que várias pessoas contribuam,formando uma verdadeira equipe. Devo citar e agradecer, mais uma vez, a paciência, o amor, adedicação e o apoio de minha esposa Lu, diante de mais este desafio. Sei que não foi fácil ficar aomeu lado, um final de semana após o outro, apenas escutando o barulho das teclas do computador.Sem o seu apoio e compreensão, tudo seria muito mais difícil, para não dizer impossível. Prometoque o próximo trabalho terá somente umas 200 páginas.Gostaria também de agradecer o amor e apoio da minha mãe – Dona Lucy. Pessoa que sempreme incentivou, apoiou, acreditou no meu trabalho e fez despertar em mim o amor peloslivros. Mãe, mais uma vez agradeço por tudo o que fizestes e continuas fazendo por mim.Agradeço mais do que tudo, o amor que sempre me deste, fazendo com que eu crescesse coma certeza de estar sendo amado e querido.Também quero agradecer a equipe da Axcel Books, pela sua paciência em corrigir e revisarmais este trabalho, sempre com sugestões para a melhoria do mesmo, de tal forma que oamigo leitor possa obter uma obra de qualidade.Devo citar ainda minhas irmãs: Rose, Lacy e Sandra que sempre renovam minhas forças comseus elogios sinceros e verdadeiros. Os momentos que passamos juntos, embora poucos, sãoverdadeiros e profundos. Uma simples conversa, um almoço, um passeio; são momentos deparada e reflexão. Momentos que nos mostram o quanto a vida vale a pena. Espero podermospassar mais tempo juntos. IV
  5. 5. SumárioSobre o AutorJúlio Battisti é profissional certificado da Microsoft, tendo sido aprovado em 16 Exames daMicrosoft, com os quais obteve certificações como: MCP, MCP+I, MCSE, MCSE+I e MCDBA.É Gerente de rede na Secretaria da Receita Federal, e conhece a tecnologia ASP desde suaprimeira versão. Também é autor de artigos de informática e trabalha com o desenvolvimentoe administração de Web sites. Autor do livro: “Série Curso Básico & Rápido Microsoft Windows2000 Server”, publicado pela Editora Axcel Books. Atua como instrutor de cursos deinformática na Secretaria da Receita Federal, em outros cursos particulares e também paraturmas em Universidades. V
  6. 6. Criando Sites Dinâmicos com ASP 3.0 VI
  7. 7. SumárioSumárioIntrodução ........................................................................................................................................ 1Sites Dinâmicos com ASP 3.0 ......................................................................................................... 1Equipamento e Software Necessário ............................................................................................... 3Instalando e Testando o IIS 5.0 ........................................................................................................ 4Novidades e Melhorias do IIS 5.0 .................................................................................................. 10Administração e Serviços .............................................................................................................. 11 Desenvolvimento de Aplicações Internet/Intranet ................................................................. 12É Hora de Começar ......................................................................................................................... 13 Visão Geral dos Capítulos do Livro ........................................................................................ 13 Então, “Mãos à obra” ............................................................................................................... 14Capítulo 1 – Uma Introdução à Tecnologia ASP ......................................................................... 15Era uma Vez uma Internet com Conteúdo Estático ....................................................................... 16 Um Começo Quase sem Querer .............................................................................................. 16 Uma Visão Geral da Internet e de Seus Elementos ................................................................ 17Conteúdo Dinâmico na Internet .................................................................................................... 19A Era do Comércio Eletrônico ....................................................................................................... 23Aplicações Para a Web ................................................................................................................... 29 A Complexidade de Gerenciamento do Modelo Cliente/Servidor e Aplicações em Duas Camadas .................................................................. 29 Aplicações em Duas Camadas ................................................................................................ 30 Aplicações em Três Camadas ................................................................................................. 31 Aplicações em Quatro Camadas ............................................................................................. 33 Questões a Considerarmos nos Modelos em Três ou Mais Camadas .................................... 34O que é ASP? .................................................................................................................................. 35Preparando o Servidor Para Acompanhar os Exemplos ................................................................ 37 Criando a Estrutura de Pastas e Subpastas ............................................................................. 37 Tornando a Pasta Livro Parte dos Servidor IIS ....................................................................... 38 Alguns Exemplos Práticos ...................................................................................................... 44 O Tradicional “Hello World” ................................................................................................... 44 Um Exemplo de Página Dinâmica .......................................................................................... 48Capítulo 2 – Uma Introdução ao VBScript .................................................................................. 53Introdução ...................................................................................................................................... 54O que é VBScript ............................................................................................................................ 54Uma Revisão Rápida de HTML...................................................................................................... 56 Estrutura Básica de uma Página HTML .................................................................................. 56 Tags Para a Criação de Formulários HTML ............................................................................. 60 Criando o Formulário – a tag <FORM> </FORM> ....................................................... 60 Criando uma Caixa de Texto – a Tag <INPUT TYPE=“TEXT”> ................................... 62 Criando uma Caixa de Texto Para a Digitação de Senhas – a tag <INPUT TYPE=“PASSWORD”> ....................................................... 64 Criando um “Check Box” – a tag <INPUT TYPE=“CHECKBOX”> ............................... 66 VII
  8. 8. Criando Sites Dinâmicos com ASP 3.0 Criando um Conjunto de “Radio Buttons” – a tag <INPUT TYPE=“RADIO”> ............ 68 Criando um Campo Para Digitação de Comentários e Textos Maiores – a tag <TEXTAREA> </TEXTAREA> .............................................. 70 Criando uma Lista de Opções (Caixa de Combinação) – a tag <SELECT></SELECT> em Combinação com <OPTION></OPTION> .................... 72 Finalizando o Formulário com os Botões Enviar Dados e Limpar Dados – as Tags <INPUT TYPE=“SUBMIT”> e <INPUT TYPE=“CLEAR”> ......................... 75Declaração e Utilização de Variáveis no VBScript ........................................................................ 78 O que é uma Variável ? ........................................................................................................... 78 Inserindo Código VBScript ..................................................................................................... 78 Declaração e “Tipo” de Variável .............................................................................................. 79Fazendo Cálculos e Comparações com o VBScript – Operadores ................................................ 83 Fazendo Cálculos com os Operadores Aritméticos ................................................................ 83 Comparando Valores com os Operadores de Comparação .................................................... 87O Escopo das Variáveis, no VBScript ............................................................................................ 91Estruturas Para Controle de Fluxo em VBScript ........................................................................... 95 Estruturas de Decisão .............................................................................................................. 95 A Estrutura If...Then ........................................................................................................ 96 A Estrutura If...Then...Else ............................................................................................... 96 A Estrutura If...Then...ElseIf...Else ................................................................................... 97 A Estrutura Select...Case .................................................................................................. 99 Estruturas de Repetição ........................................................................................................ 100 A Estrutura For...Next ..................................................................................................... 100 A Estrutura Do...Loop ..................................................................................................... 102 A Estrutura Do While Condição...Loop ......................................................................... 102 A Estrutura Do... Loop While Condição ........................................................................ 103 A Estrutura Do Until Condição...Loop .......................................................................... 106 A Estrutura Do... Loop Until Condição ......................................................................... 107Conclusão ..................................................................................................................................... 110Capítulo 3 – Funções, Procedimentos e Eventos com VBScript ................................................ 111Tipos de Dados e Funções Para Conversão de Tipos ................................................................... 112 Determinando o Tipo de Dados Contido em uma Variável .................................................. 112 A Função IsArray ............................................................................................................ 113 A Função VarType ........................................................................................................... 115 A Função IsDate .............................................................................................................. 118 A Função IsEmpty .......................................................................................................... 121 A Função IsNull .............................................................................................................. 122 A Função IsNumeric ....................................................................................................... 124 A Função IsObject .......................................................................................................... 125 Funções Para Conversão de Tipos ......................................................................................... 127 Função Cbool .................................................................................................................. 127 Função CByte .................................................................................................................. 128 Função CCur ................................................................................................................... 129 Função CDate .................................................................................................................. 130 Função CDbl ................................................................................................................... 131 Função CInt .................................................................................................................... 132 Função CLng ................................................................................................................... 133 VIII
  9. 9. Sumário Função CSng ................................................................................................................... 134 Função CStr .................................................................................................................... 135 Funções Int e Fix ............................................................................................................ 135Outras Funções do VBScript – Tratamentode String, Datas e Funções Matemáticas ..................................................................................... 136 Funções Para Tratamento de String ...................................................................................... 136 Função Asc ..................................................................................................................... 136 Função Chr ..................................................................................................................... 136 Função Len ..................................................................................................................... 137 Função LCase .................................................................................................................. 137 Função UCase ................................................................................................................. 138 Função Left ..................................................................................................................... 138 Função Right ................................................................................................................... 138 Função Mid ..................................................................................................................... 139 Função String .................................................................................................................. 140 Funções Para Tratamento de Data e Hora ............................................................................. 140 Função Date .................................................................................................................... 140 Função Time ................................................................................................................... 141 Função Day ..................................................................................................................... 141 Função Month ................................................................................................................. 142 Função Now .................................................................................................................... 142 Função MonthName ....................................................................................................... 143 Função Hour ................................................................................................................... 143 A função DateDiff ........................................................................................................... 144 A Função DateAdd ......................................................................................................... 145 Função Year ..................................................................................................................... 147 Função WeekDay ............................................................................................................ 147 Função WeekDayName ................................................................................................... 148 Funções Para Cálculos Matemáticos ..................................................................................... 149Criando Suas Próprias Funções e Procedimentos ....................................................................... 151 Criando e Utilizando Sub-rotinas ......................................................................................... 151 Criando e Utilizando Funções ............................................................................................... 154Trabalhando com Eventos no VBScript ...................................................................................... 157 Principais Eventos dos Objetos do Internet Explorer .......................................................... 159Conclusão ..................................................................................................................................... 167Capítulo 4 – A Tecnologia ASP e o Modelo de Objetos do ASP 3.0 .......................................... 169Introdução .................................................................................................................................... 170Entendendo e Utilizando ASP ..................................................................................................... 170 Como e Onde uma Página ASP é Processada? ..................................................................... 171 O que uma Página ASP Retorna Para o Navegador do Cliente? ........................................... 172 O que é Preciso Para Criar e Acessar Páginas ASP? ............................................................. 175Objetos do ASP 3.0 ....................................................................................................................... 176 Uma Visão Geral do Modelo de Objetos do ASP 3.0 ............................................................ 177O Objeto Request.......................................................................................................................... 179 Coleções do Objeto Request .................................................................................................. 179 A Coleção Form do Objeto Request .............................................................................. 179 A Coleção QueryString do Objeto Request.................................................................... 186 IX
  10. 10. Criando Sites Dinâmicos com ASP 3.0 Alguns Campos que Merecem Considerações Especiais .............................................. 189 A Coleção ServerVariables do Objeto Request .............................................................. 193 A Coleção Cookies do Objeto Request ........................................................................... 199 A Coleção ClientCertificate do Objeto Request ............................................................. 203 Propriedade do Objeto Request ............................................................................................ 203 Método do Objeto Request .................................................................................................... 204O Objeto Response ....................................................................................................................... 206 Coleção do Objeto Response ................................................................................................. 206 Propriedades do Objeto Response ........................................................................................ 211 A Propriedade Buffer do Objeto Response .................................................................... 211 A Propriedade CacheControl do Objeto Response ........................................................ 212 A Propriedade CharSet do Objeto Response ................................................................. 213 A Propriedade ContentType do Objeto Response ......................................................... 214 A Propriedade Expires do Objeto Response .................................................................. 215 A Propriedade ExpiresAbsolute do Objeto Response ................................................... 216 A Propriedade IsClientConnected do Objeto Response ................................................ 217 A Propriedade PICS do Objeto Response ...................................................................... 218 A Propriedade Status do Objeto Response .................................................................... 219 Métodos do Objeto Response ................................................................................................ 219 O Método AddHeader do Objeto Response ................................................................... 220 O Método AppendToLog do Objeto Response ............................................................... 220 O Método BinaryWrite do Objeto Response .................................................................. 221 O Método Clear do Objeto Response ............................................................................. 222 O método End do Objeto Response ............................................................................... 223 Comentários ................................................................................................................... 223 O Método Flush do Objeto Response ............................................................................ 224 O Método Redirect do Objeto Response ........................................................................ 225 O Método Write do Objeto Response ............................................................................. 226Alguns Exemplos Práticos de Aplicação ..................................................................................... 227 Exemplo 1: Validação dos Dados de um Formulário ............................................................ 227 Exemplo 2: Formulário Para Cálculo de Imposto ................................................................. 239Conclusão ..................................................................................................................................... 248Capítulo 5 – Conectando Páginas ASP com Bancos de Dados .................................................. 249Uma Revisão dos Conceitos Básicos de Banco de Dados ........................................................... 251 Entidades e Atributos ............................................................................................................ 251 Chave Primária ...................................................................................................................... 252 Relacionamentos Entre Tabelas ............................................................................................ 253 Relacionamento do Tipo Um Para Um .......................................................................... 254 Relacionamento do Tipo Um Para Vários ...................................................................... 255 Relacionamento do Tipo Vários para Vários ................................................................. 255 Integridade Referencial .................................................................................................. 256 Normalização de Tabelas ...................................................................................................... 257 Primeira Forma Normal .................................................................................................. 258 Segunda Forma Normal .................................................................................................. 259 Terceira Forma Normal ................................................................................................... 260 Passos Para Projetar um Banco de Dados .............................................................................. 261 X
  11. 11. Sumário Etapas na Estruturação de um Banco de Dados ............................................................ 261 Dicas Para Determinação dos Campos em uma Tabela ................................................. 262 Como Escolher o Campo que Será a Chave Primária? .................................................. 262Noções Básicas da Linguagem SQL – Structured Query Language ............................................ 263 Introdução ............................................................................................................................. 263 A Instrução SELECT ............................................................................................................. 264 A Instrução UPDATE ............................................................................................................. 272 A Instrução INSERT .............................................................................................................. 273 A Instrução Delete ................................................................................................................. 274Uma Visão Geral de ADO e OLE DB ............................................................................................ 275 Um Pouco Sobre ODBC – Open Database Conectivity ........................................................ 275 Criando uma Fonte ODBC Para um Banco de Dados do Microsoft Access 97 ............. 276 Criando uma Fonte ODBC Para um Banco de Dados do Microsoft SQL Server 2000 ....... 282 Um Pouco Sobre OLE DB e ADO .......................................................................................... 288Uma Visão Geral do Modelo de Objetos ADO ............................................................................ 290O Objeto Connection ................................................................................................................... 292 O Primeiro Exemplo .............................................................................................................. 295 Modificando um Pouco o Nosso Exemplo ............................................................................ 304Um Pouco Mais Sobre o Objeto Connection ............................................................................... 306Criando um Formulário Para Pesquisa ......................................................................................... 311 Criando a Página HTML com o Formulário de Pesquisa ...................................................... 312 Criando a Página ASP Para Pesquisar no Banco de Dados .................................................. 313Conclusão ..................................................................................................................................... 318Capítulo 6 – Bancos de Dados com ASP – Conceitos Avançados Parte I ................................. 321Introdução .................................................................................................................................... 322Estabelecendo Conexões sem a Utilização de ODBC .................................................................. 323A Propriedade ConnectionString ................................................................................................. 324 Configurando Conexões com Bancos de Dados do Microsoft Access .......................... 324 Configurando Conexões com Bancos de Dados do Microsoft SQL Server ................... 326 Configurando Conexões com Bancos de Dados ORACLE ............................................. 331Alguns Detalhes Finais Sobre o Objeto Connection ................................................................... 333 O Método Close ..................................................................................................................... 333 “Pool” de Conexões ............................................................................................................... 334O Objeto RecordSet ...................................................................................................................... 335 Cursores .......................................................................................................................... 336 Localização do Cursor .................................................................................................... 339 Lock de Registros ............................................................................................................ 341 Propriedades do Objeto RecordSet ................................................................................ 343 Métodos do Objeto RecordSet ........................................................................................ 345Uma Página ASP Para Inserir Informações no Banco de Dados ................................................. 347Editando Registros em um Banco de Dados ................................................................................ 361 A Página ASP Para Selecionar o Produto a ser Alterado – produto.asp .............................. 362A Página que Localiza o Registro do Produto a ser Atualizado – localiza.asp ........................... 365 A Página que Atualiza os Dados na Tabela Produtos do Banco de Dados Nwind.mdb – Atualiza.asp ........................................................................................ 370 Utilizando o Nosso Exemplo de Alteração de Registro ........................................................ 372Eliminando Registros de um Banco de Dados ............................................................................ 375 XI
  12. 12. Criando Sites Dinâmicos com ASP 3.0 A Página ASP Para Excluir o Produto Selecionado – Exclui.asp ......................................... 375 Utilizando o Nosso Exemplo de Exclusão de Registro ......................................................... 377A Propriedade Filter do Objeto RecordSet .................................................................................. 380Conclusão ..................................................................................................................................... 385Capítulo 7 – Bancos de Dados com ASP – Conceitos Avançados Parte II ................................ 387O Objeto Command ..................................................................................................................... 389 Um Breve Introdução ao Objeto Command ......................................................................... 389 Os Métodos do Objeto Command ......................................................................................... 393 As Propriedades do Objeto Command ................................................................................. 393 Consultas Parametrizadas no Microsoft Access ................................................................... 397O Objeto Parameter ...................................................................................................................... 402Utilizando o Objeto Command Para Passar Parâmetros Para uma Consulta Parametrizada ...... 403 Utilizando o Nosso Exemplo ................................................................................................ 414 Um Desafio Para o Amigo Leitor ........................................................................................... 415Um Pouco Mais Sobre Pesquisas em Banco de Dados ................................................................ 417 A Utilização do Operador Like ............................................................................................. 418 A Utilização de Múltiplos Critérios ...................................................................................... 423 O Operador And ............................................................................................................. 423 O Operador Or ................................................................................................................ 424 Alguns Exemplos de Utilização de Múltiplos Critérios ....................................................... 424 Utilizando Funções de Agregação ......................................................................................... 426 Alguns Exemplos de Utilização de Funções de Agregação .................................................. 427Um Formulário Genérico Para Pesquisas ..................................................................................... 437 Utilizando o Nosso Formulário de Pesquisa ......................................................................... 446Conclusão ..................................................................................................................................... 450Capítulo 8 – Aplicativos Web e Componentes .......................................................................... 453Introdução .................................................................................................................................... 454O que é uma Aplicação Web no IIS? ........................................................................................... 454 Uma Aplicação Cliente/Servidor Tradicional ...................................................................... 455 Aplicações Web – um Novo Paradigma ................................................................................ 456 Aplicações Web no IIS .......................................................................................................... 457O Arquivo Global.asa ................................................................................................................... 465 Um Aplicativo só Pode ter um Arquivo Global.asa ...................................................... 466O Objeto Application ................................................................................................................... 468 Eventos do Objeto Application ............................................................................................. 469 Evento Application_OnStart .......................................................................................... 469 Evento Application_OnEnd ........................................................................................... 478 Coleções do Objeto Application ........................................................................................... 478 A Coleção Contents ........................................................................................................ 479 A Coleção StaticObjects ................................................................................................. 483 Métodos do Objeto Application ............................................................................................ 483O Objeto Session .......................................................................................................................... 486 Eventos do Objeto Session .................................................................................................... 487 O Evento Session_OnStart ............................................................................................. 488 Evento Session_OnEnd .................................................................................................. 496 Coleções do Objeto Session .................................................................................................. 496 XII
  13. 13. Sumário A Coleção Contents ........................................................................................................ 497 A Coleção StaticObjects ................................................................................................. 501 Métodos do objeto Session ................................................................................................... 501 Propriedades do Objeto Session ........................................................................................... 503Conclusão ..................................................................................................................................... 506Capítulo 9 – Segurança de Aplicações Web com IIS e ASP ...................................................... 509Autenticação de Usuários com o IIS 5.0 ..................................................................................... 512O Acesso Anônimo ...................................................................................................................... 512 Como Definir a Conta Para Acesso Anônimo no IIS 5.0 ...................................................... 515 Verificando as Configurações da Conta Para Acesso Anônimo no Windows 2000 Server ......................................................................... 519 Configurando Permissões NTFS em Pastas do Servidor Web .............................................. 525 Sistemas de Arquivos no Windows 2000 e Permissões NTFS ............................................. 526 Definindo Permissões NTFS .......................................................................................... 529Autenticação Básica ..................................................................................................................... 539Autenticação Integrada do Windows ........................................................................................... 540Autenticação Utilizando Certificados ......................................................................................... 541 Mapeamento do Certificado Cliente ..................................................................................... 541Configurando o Tipo de Autenticação no IIS .............................................................................. 542Mais Configurações de Segurança do IIS .................................................................................... 546 Configurando Opções Gerais de Segurança ......................................................................... 546 Configuração de Segurança Para Aplicativos Web no IIS .................................................... 550Definindo Restrições de Acesso a Nível de Endereço IP ............................................................ 552Mecanismos de Segurança do Banco de Dados .......................................................................... 557Conclusão ..................................................................................................................................... 561Capítulo 10 – Utilizando Componentes do IIS .......................................................................... 563Introdução .................................................................................................................................... 564O Objeto Server ............................................................................................................................ 564 Propriedade do Objeto Server ............................................................................................... 565 Métodos do Objeto Server ..................................................................................................... 566 O Método CreateObject .................................................................................................. 566 O Método Execute(“url”) ................................................................................................ 568 Exemplo .............................................................................................................................. 569 O Método GetLastError( ) ............................................................................................... 570 O Método URLEncode(“texto”) ...................................................................................... 571 O Método MapPath(“url”) .............................................................................................. 573 O Método Transfer(“url”) ............................................................................................... 574 O Método HTMLEncode(“texto”) ................................................................................... 575Um Exemplo Prático de Utilização do Objeto Server ................................................................. 576Utilizando Componentes do Servidor em Páginas ASP ............................................................. 586 O Componente Content Link ................................................................................................ 586 Criando um Objeto do Tipo Content Link ..................................................................... 588 Métodos do Objeto Content Link ................................................................................... 588 Um Exemplo que Utiliza o Componente Content Link ................................................ 591 O Componente Ad Rotator .................................................................................................... 596 O Arquivo de Programação da Rotatória ....................................................................... 597 XIII
  14. 14. Criando Sites Dinâmicos com ASP 3.0 URL ..................................................................................................................................... 598 Largura ................................................................................................................................ 598 Altura .................................................................................................................................. 598 Borda ................................................................................................................................... 599 URL_anúncio ...................................................................................................................... 599 URL_home_page_anúncio .................................................................................................. 599 Texto .................................................................................................................................... 599 Impressões .......................................................................................................................... 599 Exemplo .............................................................................................................................. 600 O Arquivo de Redirecionamento ................................................................................... 600 Exemplo .............................................................................................................................. 600 Propriedades do Objeto Ad Rotator ............................................................................... 601 Método do Objeto Ad Rotator ........................................................................................ 602 O Componente Page Counter ................................................................................................ 605 Os Métodos do Componente Page Counter ................................................................... 606 O Componente Browser Capabilities – Capacidades do Navegador ................................... 609Conclusão ..................................................................................................................................... 615Capítulo 11 – Os Objetos FileSystemObject, Drive, Folder e File ............................................. 617Introdução .................................................................................................................................... 618O Objeto FileSystemObject .......................................................................................................... 618 Propriedade do Objeto FileSystemObject ............................................................................. 619 Métodos do Objeto FileSystemObject .................................................................................. 620 Métodos do Objeto FileSystemObject Para Trabalho com Drives ................................. 620 Métodos do Objeto FileSystemObject Para Trabalho com Pastas ................................. 621 Métodos do Objeto FileSystemObject Para Trabalho com Arquivos ............................ 628O Objeto Drive .............................................................................................................................. 634 Propriedades do Objeto Drive ............................................................................................... 634O Objeto Folder ............................................................................................................................ 637 Propriedades do Objeto Folder .............................................................................................. 638 Métodos do Objeto Folder ..................................................................................................... 642O Objeto File ................................................................................................................................ 644 Propriedades do Objeto File .................................................................................................. 644 Métodos do Objeto File ......................................................................................................... 647Exemplo Prático ........................................................................................................................... 649Conclusão ..................................................................................................................................... 652Capítulo 12 – Tratamento de Erros, Transações e Outros Assuntos ......................................... 655O Objeto ASPError ....................................................................................................................... 657 Propriedades do Objeto ASPError ........................................................................................ 657Algumas Dicas Para Minimizar Erros .......................................................................................... 658 Erros de Sintaxe .................................................................................................................... 658 Erros de Semântica ou de Tempo de Execução .................................................................... 659 Erros Lógicos ......................................................................................................................... 661 Algumas Dicas Para Reduzir a Ocorrência de Erros ............................................................ 662O Conceito de Transações e a Utilização de Transações em Páginas ASP ................................. 663 O Conceito de Transação ...................................................................................................... 664 XIV
  15. 15. Sumário Colocando uma Página ASP no Contexto de uma Transação .............................................. 665 Estabelecendo um Script Transacional ................................................................................ 666 Restabelecendo ou Abortando um Script ............................................................................. 667 Gravando Eventos de Transação ........................................................................................... 667 Registrando um Componente no Gerenciador de Serviços de Componente ...................... 669 Escopo de Objeto ................................................................................................................... 672 Colocando Transações em Fila ............................................................................................. 672Utilizando a Diretiva #include .................................................................................................... 673As Diretivas @ ............................................................................................................................. 675 A Diretiva de Processamento @CODEPAGE ........................................................................ 676 A Diretiva de Processamento @ENABLESESSIONSTATE .................................................. 677 A Diretiva de Processamento @LANGUAGE ....................................................................... 678 A Diretiva de Processamento @LCID ................................................................................... 678 A Diretiva de Processamento @TRANSACTION ................................................................. 679Conclusão ..................................................................................................................................... 680Apêndice – Referência Rápida da Linguagem VBScript ........................................................... 681Declarando Variáveis com VBScript ............................................................................................ 683Operadores ................................................................................................................................... 684Estruturas de Decisão e Laços de Controle em VBScript ............................................................ 685 Estrutura de Decisão If Then Else ........................................................................................ 685 Estrutura de decisão If Then ElseIf ....................................................................................... 686 O Laço For...Next ................................................................................................................... 686 O Laço For Each...Next .......................................................................................................... 686 A Estrutura Select Case...End Select .................................................................................... 686 A Estrutura Do While Condição...Loop ................................................................................ 687 Loop ....................................................................................................................................... 687 A Estrutura Do... Loop While Condição ............................................................................... 688 A Estrutura Do Until Condição...Loop ................................................................................. 689 A Estrutura Do... Loop Until Condição ................................................................................ 690Comentários em VBScript ........................................................................................................... 691Funções no VBScript .................................................................................................................... 692Funções Para Conversão de Valores ............................................................................................. 692 ASC(String) .................................................................................................................... 692 Chr(número) ................................................................................................................... 692 CBool(expressão) ............................................................................................................ 692 CByte(expressão) ............................................................................................................ 693 CCur(expressão) ............................................................................................................. 693 CDate(data) ..................................................................................................................... 693 CDbl(data) ....................................................................................................................... 694 CInt(expressão) ............................................................................................................... 694 CLng(expressão) ............................................................................................................. 694 CSng(expressão) ............................................................................................................. 694 CStr(expressão) ............................................................................................................... 695 Fix(expressão) ................................................................................................................. 695 Hex(expressão) ............................................................................................................... 695 Int(expressão) ................................................................................................................. 695 XV
  16. 16. Criando Sites Dinâmicos com ASP 3.0 Oct(expressão) ................................................................................................................ 695 Round(expressão,numcasasdecimais) ........................................................................... 695 Sgn(expressão) ................................................................................................................ 696Funções Para Trabalho com Datas ............................................................................................... 696 Date( ) ............................................................................................................................. 696 DateAdd(intervalo,numerodeintervalos,data) ............................................................... 696 DatePart(intervalo,data) ................................................................................................. 697 DateSerial(ano,mês,dia) ................................................................................................. 698 DateValue(String) ........................................................................................................... 698 Day(data) ........................................................................................................................ 698 Hour(tempo) ................................................................................................................... 698 Minute(tempo) ................................................................................................................ 698 Month(data) .................................................................................................................... 698 MonthName(data) .......................................................................................................... 699 Now( ) ............................................................................................................................. 699 Second(tempo) ............................................................................................................... 699 Time( )............................................................................................................................. 699 TimeSerial(hora,minuto,segundo) ................................................................................. 699 TimeValue(String) .......................................................................................................... 700 WeekDay(data) ................................................................................................................ 700 WeekDayName(número) ................................................................................................ 700 Year(data) ........................................................................................................................ 700Funções Matemáticas ................................................................................................................... 700 Atn(número) ................................................................................................................... 701 Cos(número) ................................................................................................................... 701 Exp(número) ................................................................................................................... 701 Log(número) ................................................................................................................... 701 Randomize( ) .................................................................................................................. 701 Rnd(número) .................................................................................................................. 701 Sin(número) ................................................................................................................... 702 Sqr(número) ................................................................................................................... 702 Tan(número) ................................................................................................................... 702Funções Para Manipulação de Strings ......................................................................................... 702 FormatCurrency(expressão) ........................................................................................... 702 FormatDateTime(expressão,opção) ................................................................................ 702 FormatNumber(expressão,numdigitos) ......................................................................... 703 FormatPercent(expressão,numdigitos) ........................................................................... 703 InStr(String1,String2) ..................................................................................................... 703 LCase(string) ................................................................................................................... 704 Left(string,número) ........................................................................................................ 704 Len(string) ...................................................................................................................... 704 LTrim(string) ................................................................................................................... 704 Mid(string,start,número) ................................................................................................ 704 Replace(string,ocorrência,substituição) ........................................................................ 705 Right(string,número) ...................................................................................................... 705 RTrim(string) .................................................................................................................. 705 Space(número) ............................................................................................................... 705 StrComp(String1,String2) .............................................................................................. 705 XVI
  17. 17. Sumário String(número,caractere) ............................................................................................... 706 StrReverse(string) ........................................................................................................... 706 Trim(string) ..................................................................................................................... 706 UCase(string) .................................................................................................................. 706Índice Remissivo .......................................................................................................................... 707 XVII
  18. 18. Introdução – Sites Dinâmicos com ASP 3.0Introdução Sites Dinâmicos com ASP 3.0 1
  19. 19. Criando Sites Dinâmicos com ASP 3.0Neste livro vamos abordar diversos assuntos relacionados com a criação de sites dinâmicos.Desta forma, o leitor terá condições de aprofundar os seus conhecimentos em conteúdos degrande importância para a criação de aplicativos para a Web. Iremos apresentar, juntamentecom conceitos teóricos, um grande número de exemplos e aplicações práticas em detalhes,para que o leitor tenha condições de entender com clareza os assuntos abordados.O trabalho de criar sites e aplicações para Intranet/Internet tornou-se bastante complexo. Oprofissional da Web precisa conhecer um número cada vez maior de ferramentas e tecnologias.A criação de sites, simplesmente através da utilização de páginas HTML, já não é capaz degerar os resultados necessários. Hoje, um site na Internet ou na Intranet de uma empresa,deve apresentar as características destacadas a seguir: ➥ Geração dinâmica de conteúdo. ➥ Conexão de páginas com banco de dados. ➥ Personalização do conteúdo, de acordo com as preferências de cada usuário. ➥ Segurança no acesso a áreas restritas do site, somente para usuários autorizados e com nível de acesso adequado. ➥ Criptografia dos dados transmitidos, ofererecendo garantia de autenticidade e integridade das informações, principalmente para sites de Comércio Eletrônico, onde o usuário deve digitar informações importantes, tais como o número do cartão de crédito. ➥ Serviços como envio de mensagens ou grupos de discussão, diretamente através do site. ➥ Mecanismos de pesquisa rápidos e precisos. ➥ Layout atraente e funcional, de tal forma que o internauta possa, rapidamente, localizar o conteúdo desejado. ➥ Bom conteúdo e atualização constante.Desenvolver um site, que contenha essas características, não é uma tarefa simples. Exige ouso de diversas tecnologias e ferramentas de apoio, além, é claro, de profissionais competentese adequadamente treinados.Com a utilização da tecnologia ASP 3.0 – Active Server Pages – podemos obter bons resultadosna criação de sites com este nível de complexidade. Ao estudar os capítulos deste livro, oleitor aprenderá a utilizar essa tecnologia. O aprendizado de ASP é simples, principalmentepara quem já conhece o Visual Basic ou o Visual Basic for Applications (linguagem de desenvol-vimento para o Microsoft Office). Em várias situações, o código é bastante semelhante.A tecnologia está disponível através da utilização do Internet Information Services 5.0, comoservidor Web, o qual pode ser instalado juntamente com o Windows 2000 Server. Podemosnotar uma mudança no nome do servidor Web da Microsoft. A versão anterior era denominadaInternet Information Server 4.0 – IIS 4.0; e a nova, Internet Information Services 5.0 – IIS 5.0. 2
  20. 20. Introdução – Sites Dinâmicos com ASP 3.0Observe que o Server foi substituído por Services. No tópico sobre as novidades do IIS 5.0,irei explicar o que significa, na prática, esta mudança.Durante a instalação do Windows 2000 Server, podemos optar por instalar, ou não, o InternetInformation Services 5.0. Ao longo deste livro estarei utilizando a abreviatura IIS 5.0 (paramanter coerência com o padrão utilizado pela Microsoft no Resource Kit do Windows 2000Server), ao fazer referência ao Internet Information Services 5.0. Caso não tenhamos instaladoo IIS 5.0 na instalação do Windows 2000 Server, podemos adicioná-lo quando for necessário.Para isso, utilizamos o ícone Adicionar ou remover programas, no Painel de controle. Nopróximo tópico desta introdução, veremos como instalar o IIS 5.0.É importante salientar que o IIS 5.0, somente está disponível no Windows 2000 Server. Issosignifica que não é possível você continuar utilizando o Windows NT Server 4.0 (com o qualestá disponível o IIS 4, através da instalação do Option Pack 4.0) e apenas fazer o upgrade doIIS 4.0 para o IIS 5.0. Também é importante destacar que as novas características do ASP 3.0,somente estão disponíveis no IIS 5.0. Em outro tópico desta introdução estarei abordandoessas novas características.Equipamento e Software NecessárioPara acompanhar todos os exemplos propostos no livro, precisamos de um computador comWindows 2000 Server instalado. Também faz-se necessário que o IIS 5.0 esteja instalado ecorretamente configurado.A configuração mínima necessária depende de uma série de fatores.Se o equipamento vai ser utilizado como um servidor Web na Internet, vários são os aspectosa serem considerados, tais como: ➥ Aplicações implementadas e recursos de hardware necessários, como memória, disco e processador. ➥ Número estimado de acessos simultâneos e diários, sendo esta uma das estimativas mais difíceis de se obter, uma vez que o sucesso de um site pode ser determinado por um número muito grande de fatores, nem todos de fácil mensuração. ➥ Grau de segurança necessário desejável. Neste caso, entram questões como criptografia, uso de certificados digitais, criação de VPN – Virtual Private Networks (Redes Privadas Virtuais) –, procedimentos de recuperação de falha, plano de contingência, etc. ➥ Percentual de “folga” desejado para recursos tais como: memória, processador, disco. Ao projetar um site, é bastante comum utilizar hardware que atenda as necessidades atuais com uma certa folga, para que seja possível suportar crescimentos maiores do que os 3
  21. 21. Criando Sites Dinâmicos com ASP 3.0 estimados. Alguns sites famosos já enfrentaram problemas de crescimento além do esperado. Quando isso acontece, mais recursos de hardware precisam ser adicionados com o site em funcionamento. É a bem conhecida situação de “trocar o pneu com o carro andando”. Eu diria que hoje, na velocidade em que as mudanças acontecem, seria um pouco pior, algo como “trocar a turbina com o avião em pleno vôo”.Para maiores informações sobre como planejar a capacidade de hardware para um servidorWeb com o IIS 5.0, consulte o capítulo “Capacity Planning” do livro “Internet InformationServices Resource Guide”, parte integrante do Windows 2000 Server Resource Kit.Como equipamento para ser utilizado em casa, ou em um laboratório de teste na sua empresa,aconselho a seguinte configuração: ➥ Processador Pentium 200 ou superior. ➥ 64 MB de RAM, sendo 128 MB, altamente recomendável. ➥ 2 GB de disco rígido.Com menos de 64 MB de RAM, o Windows 2000 Server não pode ser instalado. Sendo detectadamemória inferior a 64 MB durante o processo de instalação, o mesmo será suspenso.Além do Windows 2000 Server e do IIS 5.0, também precisaremos ter os seguintes programase serviços instalados, para que possamos acompanhar os exemplos deste livro: ➥ Internet Explorer 4.x (ou superior) ou Netscape Navigator 4.x. ➥ Microsoft Transaction Services (vem junto com o Windows 2000 Server). ➥ Microsoft Index Services (vem junto com o Windows 2000 Server).Em cada um dos capítulos, estaremos apresentando vários exemplos práticos. Através destesexemplos, você poderá entender melhor a aplicação dos conceitos teóricos apresentados. Emmuitas situações, a melhor maneira de entender um determinado assunto, é através dautilização do mesmo para resolução de um problema prático do dia-a-dia. Muitos dos exemplosapresentados, podem ser facilmente adaptados para uso em aplicações que você estejadesenvolvendo. Situações como acesso a banco de dados através de páginas Web, indexaçãoe pesquisa de conteúdos, implementação de mecanismos de segurança, etc., são comuns amaioria das aplicações Web atuais. Agora vamos aprender a instalar o IIS 5.0.Instalando e Testando o IIS 5.0Caso você não tenha instalado o IIS 5.0, quando da instalação do Windows 2000 Server, épossível fazer a instalação quando for necessário. Agora aprenderemos, passo a passo, a instalaro IIS 5.0. Nunca é demais lembrar que sem o IIS 5.0, não será possível testar os exemplospráticos, propostos neste livro. 4
  22. 22. Introdução – Sites Dinâmicos com ASP 3.0Para instalar o IIS 5.0: 1. Faça o logon no Windows 2000 Server. 2. Abra o Painel de controle (Iniciar/Configurações/Painel de controle). 3. Abra a opção Adicionar ou remover programas. 4. Surgirá a janela indicada na Figura 1.1. Figura I.1: Janela Adicionar ou remover programas. 5. No lado esquerdo da janela, dê um clique na opção Adicionar ou remover componentes do Windows. 6. Surgirá a janela indicada na Figura 1.2. Figura I.2: Janela para alterar a instalação do Windows. 5
  23. 23. Criando Sites Dinâmicos com ASP 3.0 7. Dê um clique no botão Componentes. 8. Será exibida, por breves instantes, uma mensagem “Aguarde...”. Depois surge a janela Assistente de componentes do Windows, conforme indicado na Figura 1.3. Figura I.3: Janela Assistente de componentes do Windows. 9. Utilizando o Assistente de componentes do Windows podemos adicionar novos serviços, ou remover serviços que não sejam mais necessários. 10. Vá descendo com a barra de rolagem vertical, até localizar o item Internet Information Services (IIS), conforme indicado na Figura 1.4.Se esta opção estiver marcada, o IIS 5.0 já está instalado. Neste caso clique no botão Cancelar.Depois é só fechar a janela Adicionar ou remover programas e o Painel de controle.Se esta opção estiver desmarcada, significa que o IIS 5.0 ainda não foi instalado. Marque estaopção para instalar este serviço.Observe que ao marcar a opção, o botão Detalhes é habilitado. O IIS 5.0 é formado por umasérie de componentes e funcionalidades. Existe um servidor de páginas (servidor HTTP), umservidor de FTP, um servidor de notícias (NNTP), etc.Ao instalarmos o IIS 5.0, podemos escolher um ou mais dos seus componentes, dependendodas necessidades do nosso site. Não é necessários que todos os componentes do IIS 5.0 sejaminstalados. Por exemplo, se o serviço de cópia de arquivos não for necessário, não temosporque instalar o serviço de FTP. 6
  24. 24. Introdução – Sites Dinâmicos com ASP 3.0 Figura I.4: O serviço Internet Information Services (IIS).DICAInstale somente os serviços realmente necessários. Não é uma boa idéia instalar todos os serviçosdisponíveis, já que somente alguns serão utilizados. Quanto mais serviços instalados, maioresas possibilidades de ataque e quebra da segurança do site, por parte de um hacker. 11. Clique no botão Detalhes. 12. Na lista de opções disponíveis, certifique-se de que somente as seguintes estão marcadas: ➥ Arquivos comuns. ➥ Documentação. ➥ Extensões de servidor do FrontPage 2000. ➥ Gerenciador de Internet Services (HTML). ➥ Servidor File Transfer Protocol (FTP). ➥ Servidor World Wide Web. ➥ Snap-In do Internet Information Services. 13. Observe que, após ter selecionado os componentes a serem instalados, o Windows 2000 Server, exibe o espaço em disco necessário, conforme indicado pela Figura 1.5. 7
  25. 25. Criando Sites Dinâmicos com ASP 3.0 Figura I.5: Indicação do espaço necessário no disco rígido.14. Dê um clique em OK. Você estará de volta ao Assistente de componentes do Windows.15. Dê um clique no botão Avançar para ir para a próxima etapa do assistente.16. O Windows 2000 Server exibe uma janela indicando o progresso da Instalação, como na Figura 1.6. Figura I.6: Progresso da instalação do IIS 5.0. 8
  26. 26. Introdução – Sites Dinâmicos com ASP 3.0 17. Caso o Windows 2000 Server não encontre os arquivos necessários à instalação no disco rígido, você será solicitado a inserir o CD de instalação do Windows, conforme indicado pela Figura 1.7. Figura I.7: Mensagem solicitando o CD de instalação do Windows. 18. Insira o CD e dê um clique em OK. O Windows 2000 Server inicia o processo de cópia dos arquivos. 19. Após finalizada a cópia dos arquivos, o Assistente emite uma mensagem dizendo que o processo foi concluído com sucesso. 20. Dê um clique no botão Concluir para encerrar o Assistente. 21. Você estará de volta à janela Adicionar ou remover programas. Dê um clique no botão Fechar para sair desta janela. 22. Você estará de volta ao Painel de controle. Feche o Painel de controle. 23. Agora o IIS 5.0 está instalado e pronto para funcionar.IMPORTANTECaso você não tenha acesso a um computador com o Windows 2000 Server não tem problema.Você pode acompanhar a maioria dos exemplos deste livro, utilizando o Windows 2000 Profes-sional. A maneira de instalar o IIS 5.0 é exatamente a mesma, quer seja no Windows 2000Server, ou no Windows 2000 Professional. Para os exemplos mais simples, até mesmo o Per-sonal Web Server, que acompanha o Windows 98, pode ser utilizado. Porém no Personal WebServer, não existem os conceitos de Transação e segurança disponíveis no IIS 5.0.Agora que já temos o IIS 5.0 instalado, vamos testar se o mesmo está funcionando corretamente.Para testar se o IIS 5.0 foi instalado com sucesso: 1. Abra o Internet Explorer. 2. Digite o seguinte endereço: http://localhost. 9
  27. 27. Criando Sites Dinâmicos com ASP 3.0Deve surgir uma janela conforme indicado na Figura 1.8. Figura I.8: A página padrão do IIS 5.0, logo após a instalação.Esta é a página inicial padrão do IIS 5.0 logo após a instalação. Isto comprova que o IIS 5.0 foiinstalado com sucesso. 3. Feche o Internet Explorer.No próximo tópico, irei apresentar as melhorias do IIS 5.0, em relação a versão anterior, IIS4.0, dentre as quais destaca-se a versão 3.0 do ASP – Active Server Pages 3.0, com a qualestaremos trabalhando neste livro.Novidades e Melhorias do IIS 5.0O IIS 5.0 é a nova versão do Servidor Web da Microsoft, o qual é disponibilizado como umServiço (conforme indicado pelo nome Services e não mais Server) do Windows 2000 Server.A versão anterior – IIS 4.0 – era instalada como parte do Option Pack 4.0, para o Windows NTServer 4.0. No Windows 2000 Server, o IIS 5.0 faz parte do próprio Sistema Operacional.Neste tópico, apresentaremos as principais novidades desta nova versão. Para simplificar oentendimento, classificarei as novidades em duas categorias, conforme descrito abaixo: 10
  28. 28. Introdução – Sites Dinâmicos com ASP 3.0 ➥ Administração e serviços (FTP e HTTP). ➥ Desenvolvimento de aplicações Internet/Intranet.Administração e ServiçosOs novos recursos do IIS 5.0 aumentaram a sua estabilidade e segurança. Novos assistentesforam introduzidos para facilitar as tarefas mais comuns de administração e segurança. Eisalgumas das novidades: ➥ Reinicialização de download: Agora o serviço de FTP é capaz de reinicializar um down- load que tenha sido interrompido, a partir do ponto em que a interrupção ocorreu, isso evita que tenhamos que começar do zero. Característica de grande utilidade, principal- mente para arquivos grandes, uma vez que a velocidade da Internet ainda não é nenhuma maravilha. ➥ Compactação HTTP: Toda a informação, enviada via HTTP, pode ser compactada. Para arquivos de texto (arquivos com código HTML, por exemplo), o ganho é considerável – na maioria dos casos, acima de 70 %. Podemos utilizar compactação também com arquivos de imagens (.jpg, .gif), ou qualquer outro tipo de arquivo transmitido via HTTP. O browser deve ser capaz de descompactar a informação (Internet Explorer e o Netscape Navigator em versão 4.x, dentre outros). ➥ Assistentes de segurança: Novos assistentes facilitam a execução de tarefas relacionadas com a segurança. Por exemplo, o Assistente de Permissões (Permissions Wizard) facilita a tarefa de atribuir permissões de acesso de arquivo. Esta era uma tarefa complicada em versões anteriores, uma vez que a permissão efetiva, depende da combinação entre as permissões estabelecidas no Sistema Operacional (permissões NTFS) e as do IIS. Temos também um assistente para gerenciar Certificados. ➥ Contabilidade de processos (Process Accounting): Modificações introduzidas no ker- nel do Windows 2000 Server, permitem um controle bastante refinado nos processos que estão rodando. Com isso, pode ser determinado o quanto de processador cada site virtual está consumindo (lembrando que o IIS admite diversos sites em um único servidor). Com isso é possível determinar se um dos sites está consumindo, despropor- cionalmente, tempo do processador. Por exemplo, pode ser que uma página ASP mal implementada, esteja elevando a carga no processador. Esta característica também pode ser utilizada por provedores de conteúdo, os quais hospedam sites de outras empresas, como um parâmetro para a cobrança do serviço de hospedagem do site. ➥ Melhor administração através do browser: Administrar o IIS 5.0, remotamente, através do browser ficou bem mais fácil. Além disso, a maioria das tarefas podem ser executadas através dele, o que não era possível em versões anteriores. O administrador também pode criar “Contas Administrativas” (conhecidas como Operadores), com permissões 11
  29. 29. Criando Sites Dinâmicos com ASP 3.0 limitadas a determinadas tarefas, por exemplo, criar diretórios virtuais. Com isso é possível distribuir a administração do IIS entre diversos Administradores. ➥ Web Distributed Authoring and Versioning (WebDAV): Permite que o autor de páginas, possa remotamente editar, mover ou eliminar arquivos. Também é possível editar as propriedades de arquivos e diretórios, remotamente, através de uma conecção HTTP Com WebDAV o . , autor está utilizando o HTTP como um protocolo de compartilhamento de arquivo. ➥ Autenticação Digest: Aumenta a segurança e a confiabilidade da autenticação dos usuários. Com a Autenticação Digest, é feito um hash das informações de senha antes da transmissão. Informações ligadas à sessão e a hora do sistema são adicionadas ao hash. Com isso, mesmo que a senha seja interceptada, não poderá ser decifrada. Os demais tipos de autenticação continuam existindo: HTTP Basic, Windows NT Challenge/Response e NTLM authentica- tion (conhecida como “integrated Windows authentication”).Desenvolvimento de Aplicações Internet/IntranetMuitas melhorias foram feitas nesta área. Vamos descrever, resumidamente, algumas das novidades. ➥ Proteção das aplicações: Por padrão, todas as aplicações rodam em um processo comum, o qual é separado do processo do IIS 5.0. Porém é possível rodar aplicações de maior importância (ou que necessitem de maior desempenho) em um processo separado. ➥ Principais novidades para páginas ASP – Active Server Pages: ➥ Novos métodos para o controle de fluxo da aplicação (Server.Transfer, Server.Execute, etc.). ➥ Melhorias no tratamento de erros. Teremos um capítulo deste livro dedicado ao tratamento de erros em páginas ASP. ➥ Scriptless ASP: Mesmo páginas que contenham somente código HTML podem ter a extensão .ASP. Com isso pode-se criar toda a estrutura do site utilizando páginas com a extensão .ASP e adicionar os scripts no momento oportuno. ➥ Integração com o XML – Extensible Markup Language. Ainda não ouviu falar de XML? O caso é sério. ➥ Novas maneiras para detectar as capacidades do browser do cliente. ➥ Melhorias de performance: Capacidade de self-tunning das páginas ASP.São muitas as novidades do IIS 5.0 e uma das melhores fontes para conhecê-las é o livroInternet Information Services Resource Guide (em Inglês), o qual, conforme descritoanteriormente, faz parte do Windows 2000 Server – Resource Kit. 12
  30. 30. Introdução – Sites Dinâmicos com ASP 3.0É Hora de ComeçarBem, já estamos com o IIS instalado e funcionando, conhecemos as novidades desta versão eestamos ansiosos para começar a trabalhar com páginas ASP, em sua versão 3.0. Pois éexatamente o que estaremos fazendo deste ponto em diante. Você aprenderá a utilizar osprincipais recursos do ASP 3.0, podendo criar páginas e aplicações para Web, com diversosrecursos e funcionalidades.Abaixo apresento uma pequena descrição do conteúdo de cada capítulo deste livro. Casovocê esteja iniciando os estudos sobre ASP, aconselho que leia os capítulos na seqüênciaapresentada. Caso já trabalhe com ASP, sinta-se a vontade para ler os capítulos na ordem quejulgar mais adequada. Cada capítulo apresenta exemplos completos, os quais ilustram osconceitos teóricos apresentados.Em todos os exemplos, estou utilizando a linguagem VBScript, devido a sua funcionalidadee facilidade de aprendizado. Caso o leitor queira utilizar Java Script (agora formalmente ECMAScript), sinta-se à vontade.Visão Geral dos Capítulos do Livro ➥ Capítulo 1: Apresentaremos uma visão geral sobre a criação de sites dinâmicos, bem como do desenvolvimento de aplicações para Internet/Intranet (também conhecidas como aplicações para a Web). Veremos o que é ASP, bem como as tecnologias utilizadas na criação de aplicações Web. ➥ Capítulo 2: Como em nossos exemplos estaremos utilizando a linguagem VBScript. Neste capítulo serão apresentados os conceitos básicos desta linguagem, juntamente com exemplos práticos de utilização dos conceitos apresentados. ➥ Capítulo 3: Apresentaremos aspectos adicionais da linguagem VBScript, aprendendo a utilizar funções, comandos e outros. Também aprenderemos sobre o conceito de eventos em páginas Web; além de aprender a criar código a ser executado em resposta a determinados eventos de uma página, como por exemplo o clique em um determinado botão de comando. ➥ Capítulo 4: Neste capítulo começaremos a estudar os objetos fornecidos pelo ASP 3.0. Veremos os diversos métodos e propriedades de cada objeto, bem como a relação entre eles. Utilizaremos alguns exemplos práticos para facilitar o entendimento dos conceitos apresentados. ➥ Capítulo 5: Neste capítulo aprenderemos a conectar páginas ASP com bancos de dados. Veremos como criar pesquisas personalizadas, utilizando como critério de pesquisa, valores fornecidos pelo cliente, através de um formulário. Trataremos de diversos métodos de acesso a bases de dados, desde a utilização de meios tradicionais, como 13
  31. 31. Criando Sites Dinâmicos com ASP 3.0 drivers ODBC, até métodos mais atuais, como a utilização de ADO (ActiveX Data Ob- jects) e OLE-DB Providers. ➥ Capítulo 6: Neste capítulo trataremos de aspectos avançados de conexão de páginas ASP com bancos de dados. Veremos como implementar pesquisas avançadas, efetuar atualizações e alterações em bancos de dados. Analisaremos algumas situações usuais do dia-a-dia. Também serão abordados aspectos ligados à segurança no acesso às informações. ➥ Capítulo 7: Abordaremos a conexão de páginas ASP com banco de dados. Vamos realizar um estudo completo do objeto Command e aprender a utilizá-lo para enviar parâmetros para consultas Parametrizadas do Microsoft Access. ➥ Capítulo 8: Veremos os conceitos de sessão e estado da conexão. Será apresentado o conceito de aplicação Web. Aprenderemos, em detalhes, a utilizar os objetos Applica- tion e Session. Também aprenderemos sobre a função e como utilizar o arquivo global.asa. ➥ Capítulo 9: Trataremos de aspectos de segurança envolvendo páginas ASP. ➥ Capítulo 10: Estudaremos diversos componentes que já vem junto com o IIS e fornecem funcionalidades adicionais, bastante úteis na criação de aplicações Web. ➥ Capítulo 11: Neste capítulo faremos um estudo completo sobre um dos objetos mais complexos do ASP: FileSystemObject. Estudaremos todos os seus métodos, bem como os objetos derivados: Drive, Folder e File. ➥ Capítulo 12: Neste capítulo apresentaremos o objeto ASP Error. Também aprenderemos sobre o conceito de Transações, além de aprendermos a utilizar a diretiva #include e as diretivas @. ➥ Apêndice A: Teremos uma listagem dos comandos e funções mais utilizados na linguagem VBScript, que poderá ser usada como uma referência.Então, “Mãos à obra”Bem, feitas as devidas apresentações, é hora de começarmos nossa jornada, rumo aoaprendizado de ASP. Cabe ressaltar a grande aceitação que vem tendo a tecnologia de ActiveServer Pages da Microsoft. Basta observar o grande número de sites na Internet que utilizamesta tecnologia. Também é grande o número de empresas que desenvolvem aplicativos parasua Intranet, utilizando-se da tecnologia ASP.Sem a menor sombra de dúvidas, a facilidade no aprendizado, aliada aos recursos oferecidos,é que tornaram a tecnologia de páginas ASP largamente difundida e utilizada. Quem jáprograma em Visual Basic, ou Visual Basic for Applications, ficará absolutamente à vontadepara aprender a tecnologia ASP.Então, mãos à obra, vamos aprender ASP 3.0. 14
  32. 32. Capítulo 1 – Uma Introdução à Tecnologia ASPCapítulo 1Uma Introdução à Tecnologia ASP 15
  33. 33. Criando Sites Dinâmicos com ASP 3.0A Internet faz parte da vida de um número cada vez maior de pessoas. Fazer compras, semsair de casa; receber, diretamente no seu computador, as últimas notícias; comprar e venderações; procurar emprego pela rede. Todos são exemplos de facilidades oferecidas pelo uso daInternet. Talvez seja mais simples enunciar o que não é possível de se fazer pela rede, do quelistar todas suas possibilidades. Mas nem sempre foi assim. Para chegar ao nível que nosencontramos hoje, com a disponibilização dos mais variados serviços via Internet, muitaevolução ocorreu. Desde os tempos de conteúdo meramente informativo, até a possibilidadede escutar rádio e fazer compras pela rede, muitas tecnologias novas surgiram. E o ritmo deevolução não pára, pelo contrário, parece acelerar cada vez mais.Neste capítulo veremos um pouco sobre esta evolução da Internet. Passaremos pelas diversasfases, desde a criação de sites com conteúdo estático, até os aplicativos de n-camadas atuais.Também veremos como a tecnologia ASP, contribui para a criação de sites dinâmicos. Comisso você verá em que situações é indicada a utilização de páginas ASP.Era uma Vez uma Internet com Conteúdo EstáticoNeste tópico veremos um pouco sobre a história de Internet e seus conceitos básicos. Aprenderemossobre os diversos elementos envolvidos quando um usuário acessa conteúdo da Internet. Tambémveremos as limitações e problemas dos sites pioneiros que criavam conteúdo estático.Um Começo Quase sem QuererPoderíamos dizer que a origem da Internet foi casual e despretensiosa. Inicialmente, foi criadauma rede conhecida como ARPANET, utilizada pelo Departamento de Defesa norte-americano,alguns fornecedores e pesquisadores ligados a este departamento. Como a ARPANET mostrou-se de grande utilidade, facilitando a troca de informações, acabou expandindo-se de umamaneira rápida e inesperada. Neste ponto, a idéia de uma rede de computadores para a trocade informações estava lançada.Mais tarde, foi criada uma rede baseada nas mesmas tecnologias da ARPANET, porém com umaabrangência maior (tanto geográfica, quanto de objetivos). A idéia era trazer os benefíciosdemonstrados pela ARPANET, para um número maior de pessoas e empresas. Eis que nascia aInternet. No final da década de 80, a Internet já era bastante conhecida nos meios acadêmicos domundo inteiro. Nesta época, porém, ainda tínhamos a Internet sem a interface gráfica. Normalmentea troca de informações era feita por FTP, alguns aplicativos baseados em telnet, ou o popular “gopher”,que tornou-se bastante conhecido nos primeiros anos da década de 90. O gopher, basicamente, eraum sistema baseado em opções de menu, para divulgação e pesquisa de informações.Até 1991 era proibido o tráfego de qualquer informação comercial pela Internet. Esta proibiçãoera mantida pela National Science Fundation, entidade que financiou grande parte dodesenvolvimento da Internet nos EUA, até este momento. Com a liberação, as empresas 16