SlideShare a Scribd company logo
1 of 730
Download to read offline
Sumário




   CRIANDO SITES
   DINÂMICOS COM

  ASP 3.0
Júlio Battisti


                    I
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 Narcisi
Editor 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
Sumário



Cré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
Criando Sites Dinâmicos com ASP 3.0



Agradecimentos
Embora 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 livro
no tempo estimado. E o principal é que saiu conforme o planejado. Penso que esse livro pode
ajudar bastante aqueles que querem aprender a tecnologia ASP, e até mesmo programadores
mais 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, a
dedicação e o apoio de minha esposa Lu, diante de mais este desafio. Sei que não foi fácil ficar ao
meu 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. Prometo
que 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 sempre
me incentivou, apoiou, acreditou no meu trabalho e fez despertar em mim o amor pelos
livros. 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 com
a certeza de estar sendo amado e querido.

Também quero agradecer a equipe da Axcel Books, pela sua paciência em corrigir e revisar
mais este trabalho, sempre com sugestões para a melhoria do mesmo, de tal forma que o
amigo leitor possa obter uma obra de qualidade.

Devo citar ainda minhas irmãs: Rose, Lacy e Sandra que sempre renovam minhas forças com
seus elogios sinceros e verdadeiros. Os momentos que passamos juntos, embora poucos, são
verdadeiros e profundos. Uma simples conversa, um almoço, um passeio; são momentos de
parada e reflexão. Momentos que nos mostram o quanto a vida vale a pena. Espero podermos
passar mais tempo juntos.




                                                IV
Sumário



Sobre o Autor
Júlio Battisti é profissional certificado da Microsoft, tendo sido aprovado em 16 Exames da
Microsoft, 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 sua
primeira versão. Também é autor de artigos de informática e trabalha com o desenvolvimento
e administração de Web sites. Autor do livro: “Série Curso Básico & Rápido Microsoft Windows
2000 Server”, publicado pela Editora Axcel Books. Atua como instrutor de cursos de
informática na Secretaria da Receita Federal, em outros cursos particulares e também para
turmas em Universidades.




                                             V
Criando Sites Dinâmicos com ASP 3.0




               VI
Sumário




Sumário
Introdução ........................................................................................................................................ 1
Sites Dinâmicos com ASP 3.0 ......................................................................................................... 1
Equipamento e Software Necessário ............................................................................................... 3
Instalando e Testando o IIS 5.0 ........................................................................................................ 4
Novidades e Melhorias do IIS 5.0 .................................................................................................. 10
Administraçã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” ............................................................................................................... 14
Capítulo 1 – Uma Introdução à Tecnologia ASP ......................................................................... 15
Era 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 ................................................................ 17
Conteúdo Dinâmico na Internet .................................................................................................... 19
A Era do Comércio Eletrônico ....................................................................................................... 23
Aplicaçõ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 .................................... 34
O que é ASP? .................................................................................................................................. 35
Preparando 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 .......................................................................................... 48
Capítulo 2 – Uma Introdução ao VBScript .................................................................................. 53
Introdução ...................................................................................................................................... 54
O que é VBScript ............................................................................................................................ 54
Uma 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
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”> ......................... 75
Declaraçã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 .............................................................................................. 79
Fazendo 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 .................................................... 87
O Escopo das Variáveis, no VBScript ............................................................................................ 91
Estruturas 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 ......................................................................... 107
Conclusão ..................................................................................................................................... 110
Capítulo 3 – Funções, Procedimentos e Eventos com VBScript ................................................ 111
Tipos 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
Sumário


        Função CSng ................................................................................................................... 134
        Função CStr .................................................................................................................... 135
        Funções Int e Fix ............................................................................................................ 135
Outras Funções do VBScript – Tratamento
de 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 ..................................................................................... 149
Criando Suas Próprias Funções e Procedimentos ....................................................................... 151
    Criando e Utilizando Sub-rotinas ......................................................................................... 151
    Criando e Utilizando Funções ............................................................................................... 154
Trabalhando com Eventos no VBScript ...................................................................................... 157
    Principais Eventos dos Objetos do Internet Explorer .......................................................... 159
Conclusão ..................................................................................................................................... 167
Capítulo 4 – A Tecnologia ASP e o Modelo de Objetos do ASP 3.0 .......................................... 169
Introdução .................................................................................................................................... 170
Entendendo 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? ............................................................. 175
Objetos do ASP 3.0 ....................................................................................................................... 176
    Uma Visão Geral do Modelo de Objetos do ASP 3.0 ............................................................ 177
O 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
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 .................................................................................................... 204
O 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 ............................................................................. 226
Alguns 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 ................................................................. 239
Conclusão ..................................................................................................................................... 248
Capítulo 5 – Conectando Páginas ASP com Bancos de Dados .................................................. 249
Uma 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
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? .................................................. 262
Noçõ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 ................................................................................................................. 274
Uma 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 .......................................................................................... 288
Uma Visão Geral do Modelo de Objetos ADO ............................................................................ 290
O Objeto Connection ................................................................................................................... 292
    O Primeiro Exemplo .............................................................................................................. 295
    Modificando um Pouco o Nosso Exemplo ............................................................................ 304
Um Pouco Mais Sobre o Objeto Connection ............................................................................... 306
Criando 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 .................................................. 313
Conclusão ..................................................................................................................................... 318
Capítulo 6 – Bancos de Dados com ASP – Conceitos Avançados Parte I ................................. 321
Introdução .................................................................................................................................... 322
Estabelecendo Conexões sem a Utilização de ODBC .................................................................. 323
A 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 ............................................. 331
Alguns Detalhes Finais Sobre o Objeto Connection ................................................................... 333
    O Método Close ..................................................................................................................... 333
    “Pool” de Conexões ............................................................................................................... 334
O Objeto RecordSet ...................................................................................................................... 335
         Cursores .......................................................................................................................... 336
         Localização do Cursor .................................................................................................... 339
         Lock de Registros ............................................................................................................ 341
         Propriedades do Objeto RecordSet ................................................................................ 343
         Métodos do Objeto RecordSet ........................................................................................ 345
Uma Página ASP Para Inserir Informações no Banco de Dados ................................................. 347
Editando Registros em um Banco de Dados ................................................................................ 361
    A Página ASP Para Selecionar o Produto a ser Alterado – produto.asp .............................. 362
A 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 ........................................................ 372
Eliminando Registros de um Banco de Dados ............................................................................ 375


                                                                        XI
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 ......................................................... 377
A Propriedade Filter do Objeto RecordSet .................................................................................. 380
Conclusão ..................................................................................................................................... 385
Capítulo 7 – Bancos de Dados com ASP – Conceitos Avançados Parte II ................................ 387
O 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 ................................................................... 397
O Objeto Parameter ...................................................................................................................... 402
Utilizando o Objeto Command Para Passar Parâmetros Para uma Consulta Parametrizada ...... 403
     Utilizando o Nosso Exemplo ................................................................................................ 414
     Um Desafio Para o Amigo Leitor ........................................................................................... 415
Um 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 .................................................. 427
Um Formulário Genérico Para Pesquisas ..................................................................................... 437
     Utilizando o Nosso Formulário de Pesquisa ......................................................................... 446
Conclusão ..................................................................................................................................... 450
Capítulo 8 – Aplicativos Web e Componentes .......................................................................... 453
Introdução .................................................................................................................................... 454
O 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 .......................................................................................................... 457
O Arquivo Global.asa ................................................................................................................... 465
        Um Aplicativo só Pode ter um Arquivo Global.asa ...................................................... 466
O 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 ............................................................................................ 483
O Objeto Session .......................................................................................................................... 486
    Eventos do Objeto Session .................................................................................................... 487
        O Evento Session_OnStart ............................................................................................. 488
        Evento Session_OnEnd .................................................................................................. 496
    Coleções do Objeto Session .................................................................................................. 496


                                                                       XII
Sumário


       A Coleção Contents ........................................................................................................ 497
       A Coleção StaticObjects ................................................................................................. 501
   Métodos do objeto Session ................................................................................................... 501
   Propriedades do Objeto Session ........................................................................................... 503
Conclusão ..................................................................................................................................... 506
Capítulo 9 – Segurança de Aplicações Web com IIS e ASP ...................................................... 509
Autenticação de Usuários com o IIS 5.0 ..................................................................................... 512
O 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 .......................................................................................... 529
Autenticação Básica ..................................................................................................................... 539
Autenticação Integrada do Windows ........................................................................................... 540
Autenticação Utilizando Certificados ......................................................................................... 541
    Mapeamento do Certificado Cliente ..................................................................................... 541
Configurando o Tipo de Autenticação no IIS .............................................................................. 542
Mais 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 .................................................... 550
Definindo Restrições de Acesso a Nível de Endereço IP ............................................................ 552
Mecanismos de Segurança do Banco de Dados .......................................................................... 557
Conclusão ..................................................................................................................................... 561
Capítulo 10 – Utilizando Componentes do IIS .......................................................................... 563
Introdução .................................................................................................................................... 564
O 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”) ................................................................................... 575
Um Exemplo Prático de Utilização do Objeto Server ................................................................. 576
Utilizando 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
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 ................................... 609
Conclusão ..................................................................................................................................... 615
Capítulo 11 – Os Objetos FileSystemObject, Drive, Folder e File ............................................. 617
Introdução .................................................................................................................................... 618
O 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 ............................ 628
O Objeto Drive .............................................................................................................................. 634
    Propriedades do Objeto Drive ............................................................................................... 634
O Objeto Folder ............................................................................................................................ 637
    Propriedades do Objeto Folder .............................................................................................. 638
    Métodos do Objeto Folder ..................................................................................................... 642
O Objeto File ................................................................................................................................ 644
    Propriedades do Objeto File .................................................................................................. 644
    Métodos do Objeto File ......................................................................................................... 647
Exemplo Prático ........................................................................................................................... 649
Conclusão ..................................................................................................................................... 652
Capítulo 12 – Tratamento de Erros, Transações e Outros Assuntos ......................................... 655
O Objeto ASPError ....................................................................................................................... 657
    Propriedades do Objeto ASPError ........................................................................................ 657
Algumas 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 ............................................................ 662
O Conceito de Transações e a Utilização de Transações em Páginas ASP ................................. 663
    O Conceito de Transação ...................................................................................................... 664



                                                                      XIV
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 ............................................................................................. 672
Utilizando a Diretiva #include .................................................................................................... 673
As 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 ................................................................. 679
Conclusão ..................................................................................................................................... 680
Apêndice – Referência Rápida da Linguagem VBScript ........................................................... 681
Declarando Variáveis com VBScript ............................................................................................ 683
Operadores ................................................................................................................................... 684
Estruturas 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 ................................................................................ 690
Comentários em VBScript ........................................................................................................... 691
Funções no VBScript .................................................................................................................... 692
Funçõ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
Criando Sites Dinâmicos com ASP 3.0


        Oct(expressão) ................................................................................................................ 695
        Round(expressão,numcasasdecimais) ........................................................................... 695
        Sgn(expressão) ................................................................................................................ 696
Funçõ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) ........................................................................................................................ 700
Funçõ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) ................................................................................................................... 702
Funçõ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
Sumário


        String(número,caractere) ............................................................................................... 706
        StrReverse(string) ........................................................................................................... 706
        Trim(string) ..................................................................................................................... 706
        UCase(string) .................................................................................................................. 706
Índice Remissivo .......................................................................................................................... 707




                                                                    XVII
Introdução – Sites Dinâmicos com ASP 3.0




Introdução
 Sites Dinâmicos
  com ASP 3.0




                    1
Criando Sites Dinâmicos com ASP 3.0



Neste 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 de
grande importância para a criação de aplicativos para a Web. Iremos apresentar, juntamente
com 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. O
profissional 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 de
gerar 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 o
uso de diversas tecnologias e ferramentas de apoio, além, é claro, de profissionais competentes
e adequadamente treinados.

Com a utilização da tecnologia ASP 3.0 – Active Server Pages – podemos obter bons resultados
na criação de sites com este nível de complexidade. Ao estudar os capítulos deste livro, o
leitor aprenderá a utilizar essa tecnologia. O aprendizado de ASP é simples, principalmente
para 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, como
servidor Web, o qual pode ser instalado juntamente com o Windows 2000 Server. Podemos
notar uma mudança no nome do servidor Web da Microsoft. A versão anterior era denominada
Internet Information Server 4.0 – IIS 4.0; e a nova, Internet Information Services 5.0 – IIS 5.0.


                                               2
Introdução – Sites Dinâmicos com ASP 3.0



Observe 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 Internet
Information Services 5.0. Ao longo deste livro estarei utilizando a abreviatura IIS 5.0 (para
manter coerência com o padrão utilizado pela Microsoft no Resource Kit do Windows 2000
Server), ao fazer referência ao Internet Information Services 5.0. Caso não tenhamos instalado
o 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. No
pró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. Isso
significa que não é possível você continuar utilizando o Windows NT Server 4.0 (com o qual
está disponível o IIS 4, através da instalação do Option Pack 4.0) e apenas fazer o upgrade do
IIS 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 abordando
essas novas características.


Equipamento e Software Necessário
Para acompanhar todos os exemplos propostos no livro, precisamos de um computador com
Windows 2000 Server instalado. Também faz-se necessário que o IIS 5.0 esteja instalado e
corretamente 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 aspectos
a 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
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 servidor
Web com o IIS 5.0, consulte o capítulo “Capacity Planning” do livro “Internet Information
Services 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 detectada
memó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 programas
e 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 destes
exemplos, você poderá entender melhor a aplicação dos conceitos teóricos apresentados. Em
muitas situações, a melhor maneira de entender um determinado assunto, é através da
utilização do mesmo para resolução de um problema prático do dia-a-dia. Muitos dos exemplos
apresentados, podem ser facilmente adaptados para uso em aplicações que você esteja
desenvolvendo. Situações como acesso a banco de dados através de páginas Web, indexação
e pesquisa de conteúdos, implementação de mecanismos de segurança, etc., são comuns a
maioria das aplicações Web atuais. Agora vamos aprender a instalar o IIS 5.0.


Instalando e Testando o IIS 5.0
Caso 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 instalar
o IIS 5.0. Nunca é demais lembrar que sem o IIS 5.0, não será possível testar os exemplos
práticos, propostos neste livro.


                                               4
Introdução – Sites Dinâmicos com ASP 3.0



Para 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
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 esta
opção para instalar este serviço.

Observe que ao marcar a opção, o botão Detalhes é habilitado. O IIS 5.0 é formado por uma
série de componentes e funcionalidades. Existe um servidor de páginas (servidor HTTP), um
servidor de FTP, um servidor de notícias (NNTP), etc.

Ao instalarmos o IIS 5.0, podemos escolher um ou mais dos seus componentes, dependendo
das necessidades do nosso site. Não é necessários que todos os componentes do IIS 5.0 sejam
instalados. Por exemplo, se o serviço de cópia de arquivos não for necessário, não temos
porque instalar o serviço de FTP.


                                                6
Introdução – Sites Dinâmicos com ASP 3.0




                        Figura I.4: O serviço Internet Information Services (IIS).


DICA
Instale somente os serviços realmente necessários. Não é uma boa idéia instalar todos os serviços
disponíveis, já que somente alguns serão utilizados. Quanto mais serviços instalados, maiores
as 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
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
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.

IMPORTANTE
Caso 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 2000
Server, 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 Web
Server, 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
Criando Sites Dinâmicos com ASP 3.0



Deve 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 foi
instalado 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, IIS
4.0, dentre as quais destaca-se a versão 3.0 do ASP – Active Server Pages 3.0, com a qual
estaremos trabalhando neste livro.


Novidades e Melhorias do IIS 5.0
O IIS 5.0 é a nova versão do Servidor Web da Microsoft, o qual é disponibilizado como um
Serviç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 NT
Server 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 o
entendimento, classificarei as novidades em duas categorias, conforme descrito abaixo:


                                                   10
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ços
Os novos recursos do IIS 5.0 aumentaram a sua estabilidade e segurança. Novos assistentes
foram introduzidos para facilitar as tarefas mais comuns de administração e segurança. Eis
algumas 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
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/Intranet
Muitas 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 livro
Internet Information Services Resource Guide (em Inglês), o qual, conforme descrito
anteriormente, faz parte do Windows 2000 Server – Resource Kit.




                                              12
Introdução – Sites Dinâmicos com ASP 3.0




É Hora de Começar
Bem, já estamos com o IIS instalado e funcionando, conhecemos as novidades desta versão e
estamos 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 os
principais recursos do ASP 3.0, podendo criar páginas e aplicações para Web, com diversos
recursos e funcionalidades.

Abaixo apresento uma pequena descrição do conteúdo de cada capítulo deste livro. Caso
você esteja iniciando os estudos sobre ASP, aconselho que leia os capítulos na seqüência
apresentada. Caso já trabalhe com ASP, sinta-se a vontade para ler os capítulos na ordem que
julgar mais adequada. Cada capítulo apresenta exemplos completos, os quais ilustram os
conceitos teóricos apresentados.

Em todos os exemplos, estou utilizando a linguagem VBScript, devido a sua funcionalidade
e facilidade de aprendizado. Caso o leitor queira utilizar Java Script (agora formalmente ECMA
Script), 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
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 ao
aprendizado de ASP. Cabe ressaltar a grande aceitação que vem tendo a tecnologia de Active
Server Pages da Microsoft. Basta observar o grande número de sites na Internet que utilizam
esta tecnologia. Também é grande o número de empresas que desenvolvem aplicativos para
sua 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 à vontade
para aprender a tecnologia ASP.

Então, mãos à obra, vamos aprender ASP 3.0.



                                            14
Capítulo 1 – Uma Introdução à Tecnologia ASP




Capítulo 1
Uma Introdução à
 Tecnologia ASP




                    15
Criando Sites Dinâmicos com ASP 3.0



A Internet faz parte da vida de um número cada vez maior de pessoas. Fazer compras, sem
sair de casa; receber, diretamente no seu computador, as últimas notícias; comprar e vender
ações; procurar emprego pela rede. Todos são exemplos de facilidades oferecidas pelo uso da
Internet. Talvez seja mais simples enunciar o que não é possível de se fazer pela rede, do que
listar todas suas possibilidades. Mas nem sempre foi assim. Para chegar ao nível que nos
encontramos hoje, com a disponibilização dos mais variados serviços via Internet, muita
evolução ocorreu. Desde os tempos de conteúdo meramente informativo, até a possibilidade
de escutar rádio e fazer compras pela rede, muitas tecnologias novas surgiram. E o ritmo de
evoluçã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 diversas
fases, 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. Com
isso você verá em que situações é indicada a utilização de páginas ASP.


Era uma Vez uma Internet com Conteúdo Estático
Neste tópico veremos um pouco sobre a história de Internet e seus conceitos básicos. Aprenderemos
sobre os diversos elementos envolvidos quando um usuário acessa conteúdo da Internet. Também
veremos as limitações e problemas dos sites pioneiros que criavam conteúdo estático.


Um Começo Quase sem Querer
Poderíamos dizer que a origem da Internet foi casual e despretensiosa. Inicialmente, foi criada
uma 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 uma
maneira rápida e inesperada. Neste ponto, a idéia de uma rede de computadores para a troca
de informações estava lançada.
Mais tarde, foi criada uma rede baseada nas mesmas tecnologias da ARPANET, porém com uma
abrangência maior (tanto geográfica, quanto de objetivos). A idéia era trazer os benefícios
demonstrados pela ARPANET, para um número maior de pessoas e empresas. Eis que nascia a
Internet. No final da década de 80, a Internet já era bastante conhecida nos meios acadêmicos do
mundo inteiro. Nesta época, porém, ainda tínhamos a Internet sem a interface gráfica. Normalmente
a 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, era
um 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ção
era mantida pela National Science Fundation, entidade que financiou grande parte do
desenvolvimento da Internet nos EUA, até este momento. Com a liberação, as empresas


                                                 16
Capítulo 1 – Uma Introdução à Tecnologia ASP



passaram a fazer uso da Internet para fins comerciais. Desde então a rede expandiu-se
enormemente, atingindo, hoje, milhões de pessoas em todo o mundo.
A popularização definitiva da rede veio com a criação de uma interface gráfica. Com a criação
da linguagem HTML, servidores HTTP, e programas para acessar as páginas HTML
armazenadas nos servidores (também conhecidos como browser ou navegadores), a Internet
tornou-se mais popular do que nunca. Este foi o momento do surgimento da WWW – World
Wide Web. Talvez a melhor tradução para World Wide Web seja: “Teia de Alcance Mundial”.
Esta é a idéia que temos de Internet. Uma rede (teia) que conecta computadores do mundo
inteiro (alcance mundial), proporcionando a troca de informações e uma infinidade de serviços
e facilidades para as empresas e para o cidadão comum.
Com certeza, os criadores da ARPANET, e depois da Internet, não imaginavam uma expansão
e popularização tão rápida da rede. Hoje, vemos anúncios de sites na televisão, durante o
Telejornal e na transmissão de partidas de futebol. A maioria dos jornais possui um caderno
de informática, quase totalmente dedicado a assuntos relacionados com a Internet. Vemos
reportagens sobre a rede em todas as revistas, e não somente nas especializadas em Informática,
que agora dedicam quase a totalidade de suas matérias a assuntos da Internet. Enfim, a Internet
já faz parte do nosso dia-a-dia; veio para ficar e facilitar a nossa vida.
Agora vamos conhecer um pouco mais sobre a Internet e os diversos elementos que a compõem.


Uma Visão Geral da Internet e de Seus Elementos
Encontrar uma definição precisa e unânime para a Internet é uma tarefa complexa. Vamos
ver os elementos que a compõe, sem nos preocuparmos com definições formais. Por exemplo,
o que é preciso para que o usuário doméstico possa acessar a Internet; onde fica e por onde
circula a informação que está sendo acessada.



                                                           Internet




                  Usuário
                                                                                             Servidor Web
     Usuário doméstico conectado à                                                      Páginas HTML estáticas
   Internet através da linha telefônica.



                                 Figura 1.1: Uma visão geral da Internet, com conteúdo estático.

                                                                 17
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0
Asp   julio battisti - criando sites dinamicos com asp 3.0

More Related Content

Viewers also liked

Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoVinicius Quaiato
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETAlessandro Binhara
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Daniel Makiyama
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net codersRenato Groff
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.netFernando Helen
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Vinicius Vieira
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#André Luiz
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dadosdouglasschaefler
 
Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Feliz Bunguele
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EEHelder da Rocha
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalRIvan Paulovich
 

Viewers also liked (17)

Minicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius QuaiatoMinicurso Testes em .NET - Globalcode Vinicius Quaiato
Minicurso Testes em .NET - Globalcode Vinicius Quaiato
 
Interop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NETInterop itcare: Interoperabilidade Java e .NET
Interop itcare: Interoperabilidade Java e .NET
 
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
Aprendendo Na Prática: Aplicativos Web Com Asp.Net MVC em C# e Entity Framewo...
 
C# 6.0 .net coders
C# 6.0   .net codersC# 6.0   .net coders
C# 6.0 .net coders
 
105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net105 apostila asp net, c# e visual basic.net
105 apostila asp net, c# e visual basic.net
 
Apostila de C# & Asp.Net
Apostila de C# & Asp.NetApostila de C# & Asp.Net
Apostila de C# & Asp.Net
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#Apostila desenvolvimento aplicações comerciais com C#
Apostila desenvolvimento aplicações comerciais com C#
 
Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)Tutorial EJB 3.0 (2009)
Tutorial EJB 3.0 (2009)
 
Curso asp - intermediario
Curso   asp - intermediarioCurso   asp - intermediario
Curso asp - intermediario
 
Cadastro de clientes em c#
Cadastro de clientes em c#Cadastro de clientes em c#
Cadastro de clientes em c#
 
Programação c# - banco de dados
Programação   c# - banco de dadosProgramação   c# - banco de dados
Programação c# - banco de dados
 
Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)Curso desenvolvendo web sites (asp)
Curso desenvolvendo web sites (asp)
 
Visão geral da segurança em Java EE
Visão geral da segurança em Java EEVisão geral da segurança em Java EE
Visão geral da segurança em Java EE
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalR
 
Sistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NETSistema Controle de Estoque ASP.NET
Sistema Controle de Estoque ASP.NET
 
The AI Rush
The AI RushThe AI Rush
The AI Rush
 

Similar to Asp julio battisti - criando sites dinamicos com asp 3.0

Fonte de Inspiração - Comédia Stand-up
Fonte de Inspiração - Comédia Stand-upFonte de Inspiração - Comédia Stand-up
Fonte de Inspiração - Comédia Stand-upMoacir Aguiar
 
Guia de Publicação Editora Albatroz (1).pdf
Guia de Publicação Editora Albatroz (1).pdfGuia de Publicação Editora Albatroz (1).pdf
Guia de Publicação Editora Albatroz (1).pdfUlisses Vakirtzis
 
Windows server 2003 curso completo
Windows server 2003 curso completoWindows server 2003 curso completo
Windows server 2003 curso completofalcao_raphael
 
Windows server , curso completo
Windows server , curso completoWindows server , curso completo
Windows server , curso completoPessoal
 
Windows server 2003, curso completo
Windows server 2003, curso completoWindows server 2003, curso completo
Windows server 2003, curso completoRodolfoJS91
 
Calc avancado
Calc avancadoCalc avancado
Calc avancadoJorge Vaz
 
14.03.23 livro sobre pentaho
14.03.23   livro sobre pentaho14.03.23   livro sobre pentaho
14.03.23 livro sobre pentahoTalita Lima
 
Estorias Que Não Se Esquecem Contos - Wagner Antonio de Araújo
Estorias Que Não Se Esquecem   Contos - Wagner Antonio de AraújoEstorias Que Não Se Esquecem   Contos - Wagner Antonio de Araújo
Estorias Que Não Se Esquecem Contos - Wagner Antonio de AraújoSammis Reachers
 
Revista Espirito Livre 002
Revista Espirito Livre 002Revista Espirito Livre 002
Revista Espirito Livre 002Anderson Ramos
 

Similar to Asp julio battisti - criando sites dinamicos com asp 3.0 (10)

Fonte de Inspiração - Comédia Stand-up
Fonte de Inspiração - Comédia Stand-upFonte de Inspiração - Comédia Stand-up
Fonte de Inspiração - Comédia Stand-up
 
Guia de Publicação Editora Albatroz (1).pdf
Guia de Publicação Editora Albatroz (1).pdfGuia de Publicação Editora Albatroz (1).pdf
Guia de Publicação Editora Albatroz (1).pdf
 
Windows server 2003 curso completo
Windows server 2003 curso completoWindows server 2003 curso completo
Windows server 2003 curso completo
 
Windows server , curso completo
Windows server , curso completoWindows server , curso completo
Windows server , curso completo
 
Windows server 2003, curso completo
Windows server 2003, curso completoWindows server 2003, curso completo
Windows server 2003, curso completo
 
Calc avancado
Calc avancadoCalc avancado
Calc avancado
 
14.03.23 livro sobre pentaho
14.03.23   livro sobre pentaho14.03.23   livro sobre pentaho
14.03.23 livro sobre pentaho
 
Guia de tipos
Guia de tiposGuia de tipos
Guia de tipos
 
Estorias Que Não Se Esquecem Contos - Wagner Antonio de Araújo
Estorias Que Não Se Esquecem   Contos - Wagner Antonio de AraújoEstorias Que Não Se Esquecem   Contos - Wagner Antonio de Araújo
Estorias Que Não Se Esquecem Contos - Wagner Antonio de Araújo
 
Revista Espirito Livre 002
Revista Espirito Livre 002Revista Espirito Livre 002
Revista Espirito Livre 002
 

Asp julio battisti - criando sites dinamicos com asp 3.0

  • 1. Sumário CRIANDO SITES DINÂMICOS COM ASP 3.0 Júlio Battisti I
  • 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 Narcisi Editor 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. Sumário Cré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. Criando Sites Dinâmicos com ASP 3.0 Agradecimentos Embora 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 livro no tempo estimado. E o principal é que saiu conforme o planejado. Penso que esse livro pode ajudar bastante aqueles que querem aprender a tecnologia ASP, e até mesmo programadores mais 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, a dedicação e o apoio de minha esposa Lu, diante de mais este desafio. Sei que não foi fácil ficar ao meu 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. Prometo que 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 sempre me incentivou, apoiou, acreditou no meu trabalho e fez despertar em mim o amor pelos livros. 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 com a certeza de estar sendo amado e querido. Também quero agradecer a equipe da Axcel Books, pela sua paciência em corrigir e revisar mais este trabalho, sempre com sugestões para a melhoria do mesmo, de tal forma que o amigo leitor possa obter uma obra de qualidade. Devo citar ainda minhas irmãs: Rose, Lacy e Sandra que sempre renovam minhas forças com seus elogios sinceros e verdadeiros. Os momentos que passamos juntos, embora poucos, são verdadeiros e profundos. Uma simples conversa, um almoço, um passeio; são momentos de parada e reflexão. Momentos que nos mostram o quanto a vida vale a pena. Espero podermos passar mais tempo juntos. IV
  • 5. Sumário Sobre o Autor Júlio Battisti é profissional certificado da Microsoft, tendo sido aprovado em 16 Exames da Microsoft, 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 sua primeira versão. Também é autor de artigos de informática e trabalha com o desenvolvimento e administração de Web sites. Autor do livro: “Série Curso Básico & Rápido Microsoft Windows 2000 Server”, publicado pela Editora Axcel Books. Atua como instrutor de cursos de informática na Secretaria da Receita Federal, em outros cursos particulares e também para turmas em Universidades. V
  • 6. Criando Sites Dinâmicos com ASP 3.0 VI
  • 7. Sumário Sumário Introdução ........................................................................................................................................ 1 Sites Dinâmicos com ASP 3.0 ......................................................................................................... 1 Equipamento e Software Necessário ............................................................................................... 3 Instalando e Testando o IIS 5.0 ........................................................................................................ 4 Novidades e Melhorias do IIS 5.0 .................................................................................................. 10 Administraçã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” ............................................................................................................... 14 Capítulo 1 – Uma Introdução à Tecnologia ASP ......................................................................... 15 Era 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 ................................................................ 17 Conteúdo Dinâmico na Internet .................................................................................................... 19 A Era do Comércio Eletrônico ....................................................................................................... 23 Aplicaçõ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 .................................... 34 O que é ASP? .................................................................................................................................. 35 Preparando 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 .......................................................................................... 48 Capítulo 2 – Uma Introdução ao VBScript .................................................................................. 53 Introdução ...................................................................................................................................... 54 O que é VBScript ............................................................................................................................ 54 Uma 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. 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”> ......................... 75 Declaraçã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 .............................................................................................. 79 Fazendo 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 .................................................... 87 O Escopo das Variáveis, no VBScript ............................................................................................ 91 Estruturas 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 ......................................................................... 107 Conclusão ..................................................................................................................................... 110 Capítulo 3 – Funções, Procedimentos e Eventos com VBScript ................................................ 111 Tipos 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. Sumário Função CSng ................................................................................................................... 134 Função CStr .................................................................................................................... 135 Funções Int e Fix ............................................................................................................ 135 Outras Funções do VBScript – Tratamento de 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 ..................................................................................... 149 Criando Suas Próprias Funções e Procedimentos ....................................................................... 151 Criando e Utilizando Sub-rotinas ......................................................................................... 151 Criando e Utilizando Funções ............................................................................................... 154 Trabalhando com Eventos no VBScript ...................................................................................... 157 Principais Eventos dos Objetos do Internet Explorer .......................................................... 159 Conclusão ..................................................................................................................................... 167 Capítulo 4 – A Tecnologia ASP e o Modelo de Objetos do ASP 3.0 .......................................... 169 Introdução .................................................................................................................................... 170 Entendendo 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? ............................................................. 175 Objetos do ASP 3.0 ....................................................................................................................... 176 Uma Visão Geral do Modelo de Objetos do ASP 3.0 ............................................................ 177 O 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. 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 .................................................................................................... 204 O 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 ............................................................................. 226 Alguns 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 ................................................................. 239 Conclusão ..................................................................................................................................... 248 Capítulo 5 – Conectando Páginas ASP com Bancos de Dados .................................................. 249 Uma 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. 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? .................................................. 262 Noçõ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 ................................................................................................................. 274 Uma 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 .......................................................................................... 288 Uma Visão Geral do Modelo de Objetos ADO ............................................................................ 290 O Objeto Connection ................................................................................................................... 292 O Primeiro Exemplo .............................................................................................................. 295 Modificando um Pouco o Nosso Exemplo ............................................................................ 304 Um Pouco Mais Sobre o Objeto Connection ............................................................................... 306 Criando 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 .................................................. 313 Conclusão ..................................................................................................................................... 318 Capítulo 6 – Bancos de Dados com ASP – Conceitos Avançados Parte I ................................. 321 Introdução .................................................................................................................................... 322 Estabelecendo Conexões sem a Utilização de ODBC .................................................................. 323 A 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 ............................................. 331 Alguns Detalhes Finais Sobre o Objeto Connection ................................................................... 333 O Método Close ..................................................................................................................... 333 “Pool” de Conexões ............................................................................................................... 334 O Objeto RecordSet ...................................................................................................................... 335 Cursores .......................................................................................................................... 336 Localização do Cursor .................................................................................................... 339 Lock de Registros ............................................................................................................ 341 Propriedades do Objeto RecordSet ................................................................................ 343 Métodos do Objeto RecordSet ........................................................................................ 345 Uma Página ASP Para Inserir Informações no Banco de Dados ................................................. 347 Editando Registros em um Banco de Dados ................................................................................ 361 A Página ASP Para Selecionar o Produto a ser Alterado – produto.asp .............................. 362 A 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 ........................................................ 372 Eliminando Registros de um Banco de Dados ............................................................................ 375 XI
  • 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 ......................................................... 377 A Propriedade Filter do Objeto RecordSet .................................................................................. 380 Conclusão ..................................................................................................................................... 385 Capítulo 7 – Bancos de Dados com ASP – Conceitos Avançados Parte II ................................ 387 O 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 ................................................................... 397 O Objeto Parameter ...................................................................................................................... 402 Utilizando o Objeto Command Para Passar Parâmetros Para uma Consulta Parametrizada ...... 403 Utilizando o Nosso Exemplo ................................................................................................ 414 Um Desafio Para o Amigo Leitor ........................................................................................... 415 Um 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 .................................................. 427 Um Formulário Genérico Para Pesquisas ..................................................................................... 437 Utilizando o Nosso Formulário de Pesquisa ......................................................................... 446 Conclusão ..................................................................................................................................... 450 Capítulo 8 – Aplicativos Web e Componentes .......................................................................... 453 Introdução .................................................................................................................................... 454 O 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 .......................................................................................................... 457 O Arquivo Global.asa ................................................................................................................... 465 Um Aplicativo só Pode ter um Arquivo Global.asa ...................................................... 466 O 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 ............................................................................................ 483 O 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. Sumário A Coleção Contents ........................................................................................................ 497 A Coleção StaticObjects ................................................................................................. 501 Métodos do objeto Session ................................................................................................... 501 Propriedades do Objeto Session ........................................................................................... 503 Conclusão ..................................................................................................................................... 506 Capítulo 9 – Segurança de Aplicações Web com IIS e ASP ...................................................... 509 Autenticação de Usuários com o IIS 5.0 ..................................................................................... 512 O 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 .......................................................................................... 529 Autenticação Básica ..................................................................................................................... 539 Autenticação Integrada do Windows ........................................................................................... 540 Autenticação Utilizando Certificados ......................................................................................... 541 Mapeamento do Certificado Cliente ..................................................................................... 541 Configurando o Tipo de Autenticação no IIS .............................................................................. 542 Mais 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 .................................................... 550 Definindo Restrições de Acesso a Nível de Endereço IP ............................................................ 552 Mecanismos de Segurança do Banco de Dados .......................................................................... 557 Conclusão ..................................................................................................................................... 561 Capítulo 10 – Utilizando Componentes do IIS .......................................................................... 563 Introdução .................................................................................................................................... 564 O 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”) ................................................................................... 575 Um Exemplo Prático de Utilização do Objeto Server ................................................................. 576 Utilizando 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. 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 ................................... 609 Conclusão ..................................................................................................................................... 615 Capítulo 11 – Os Objetos FileSystemObject, Drive, Folder e File ............................................. 617 Introdução .................................................................................................................................... 618 O 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 ............................ 628 O Objeto Drive .............................................................................................................................. 634 Propriedades do Objeto Drive ............................................................................................... 634 O Objeto Folder ............................................................................................................................ 637 Propriedades do Objeto Folder .............................................................................................. 638 Métodos do Objeto Folder ..................................................................................................... 642 O Objeto File ................................................................................................................................ 644 Propriedades do Objeto File .................................................................................................. 644 Métodos do Objeto File ......................................................................................................... 647 Exemplo Prático ........................................................................................................................... 649 Conclusão ..................................................................................................................................... 652 Capítulo 12 – Tratamento de Erros, Transações e Outros Assuntos ......................................... 655 O Objeto ASPError ....................................................................................................................... 657 Propriedades do Objeto ASPError ........................................................................................ 657 Algumas 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 ............................................................ 662 O Conceito de Transações e a Utilização de Transações em Páginas ASP ................................. 663 O Conceito de Transação ...................................................................................................... 664 XIV
  • 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 ............................................................................................. 672 Utilizando a Diretiva #include .................................................................................................... 673 As 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 ................................................................. 679 Conclusão ..................................................................................................................................... 680 Apêndice – Referência Rápida da Linguagem VBScript ........................................................... 681 Declarando Variáveis com VBScript ............................................................................................ 683 Operadores ................................................................................................................................... 684 Estruturas 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 ................................................................................ 690 Comentários em VBScript ........................................................................................................... 691 Funções no VBScript .................................................................................................................... 692 Funçõ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. Criando Sites Dinâmicos com ASP 3.0 Oct(expressão) ................................................................................................................ 695 Round(expressão,numcasasdecimais) ........................................................................... 695 Sgn(expressão) ................................................................................................................ 696 Funçõ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) ........................................................................................................................ 700 Funçõ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) ................................................................................................................... 702 Funçõ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. Sumário String(número,caractere) ............................................................................................... 706 StrReverse(string) ........................................................................................................... 706 Trim(string) ..................................................................................................................... 706 UCase(string) .................................................................................................................. 706 Índice Remissivo .......................................................................................................................... 707 XVII
  • 18. Introdução – Sites Dinâmicos com ASP 3.0 Introdução Sites Dinâmicos com ASP 3.0 1
  • 19. Criando Sites Dinâmicos com ASP 3.0 Neste 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 de grande importância para a criação de aplicativos para a Web. Iremos apresentar, juntamente com 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. O profissional 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 de gerar 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 o uso de diversas tecnologias e ferramentas de apoio, além, é claro, de profissionais competentes e adequadamente treinados. Com a utilização da tecnologia ASP 3.0 – Active Server Pages – podemos obter bons resultados na criação de sites com este nível de complexidade. Ao estudar os capítulos deste livro, o leitor aprenderá a utilizar essa tecnologia. O aprendizado de ASP é simples, principalmente para 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, como servidor Web, o qual pode ser instalado juntamente com o Windows 2000 Server. Podemos notar uma mudança no nome do servidor Web da Microsoft. A versão anterior era denominada Internet Information Server 4.0 – IIS 4.0; e a nova, Internet Information Services 5.0 – IIS 5.0. 2
  • 20. Introdução – Sites Dinâmicos com ASP 3.0 Observe 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 Internet Information Services 5.0. Ao longo deste livro estarei utilizando a abreviatura IIS 5.0 (para manter coerência com o padrão utilizado pela Microsoft no Resource Kit do Windows 2000 Server), ao fazer referência ao Internet Information Services 5.0. Caso não tenhamos instalado o 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. No pró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. Isso significa que não é possível você continuar utilizando o Windows NT Server 4.0 (com o qual está disponível o IIS 4, através da instalação do Option Pack 4.0) e apenas fazer o upgrade do IIS 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 abordando essas novas características. Equipamento e Software Necessário Para acompanhar todos os exemplos propostos no livro, precisamos de um computador com Windows 2000 Server instalado. Também faz-se necessário que o IIS 5.0 esteja instalado e corretamente 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 aspectos a 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. 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 servidor Web com o IIS 5.0, consulte o capítulo “Capacity Planning” do livro “Internet Information Services 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 detectada memó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 programas e 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 destes exemplos, você poderá entender melhor a aplicação dos conceitos teóricos apresentados. Em muitas situações, a melhor maneira de entender um determinado assunto, é através da utilização do mesmo para resolução de um problema prático do dia-a-dia. Muitos dos exemplos apresentados, podem ser facilmente adaptados para uso em aplicações que você esteja desenvolvendo. Situações como acesso a banco de dados através de páginas Web, indexação e pesquisa de conteúdos, implementação de mecanismos de segurança, etc., são comuns a maioria das aplicações Web atuais. Agora vamos aprender a instalar o IIS 5.0. Instalando e Testando o IIS 5.0 Caso 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 instalar o IIS 5.0. Nunca é demais lembrar que sem o IIS 5.0, não será possível testar os exemplos práticos, propostos neste livro. 4
  • 22. Introdução – Sites Dinâmicos com ASP 3.0 Para 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. 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 esta opção para instalar este serviço. Observe que ao marcar a opção, o botão Detalhes é habilitado. O IIS 5.0 é formado por uma série de componentes e funcionalidades. Existe um servidor de páginas (servidor HTTP), um servidor de FTP, um servidor de notícias (NNTP), etc. Ao instalarmos o IIS 5.0, podemos escolher um ou mais dos seus componentes, dependendo das necessidades do nosso site. Não é necessários que todos os componentes do IIS 5.0 sejam instalados. Por exemplo, se o serviço de cópia de arquivos não for necessário, não temos porque instalar o serviço de FTP. 6
  • 24. Introdução – Sites Dinâmicos com ASP 3.0 Figura I.4: O serviço Internet Information Services (IIS). DICA Instale somente os serviços realmente necessários. Não é uma boa idéia instalar todos os serviços disponíveis, já que somente alguns serão utilizados. Quanto mais serviços instalados, maiores as 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. 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. 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. IMPORTANTE Caso 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 2000 Server, 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 Web Server, 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. Criando Sites Dinâmicos com ASP 3.0 Deve 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 foi instalado 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, IIS 4.0, dentre as quais destaca-se a versão 3.0 do ASP – Active Server Pages 3.0, com a qual estaremos trabalhando neste livro. Novidades e Melhorias do IIS 5.0 O IIS 5.0 é a nova versão do Servidor Web da Microsoft, o qual é disponibilizado como um Serviç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 NT Server 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 o entendimento, classificarei as novidades em duas categorias, conforme descrito abaixo: 10
  • 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ços Os novos recursos do IIS 5.0 aumentaram a sua estabilidade e segurança. Novos assistentes foram introduzidos para facilitar as tarefas mais comuns de administração e segurança. Eis algumas 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. 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/Intranet Muitas 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 livro Internet Information Services Resource Guide (em Inglês), o qual, conforme descrito anteriormente, faz parte do Windows 2000 Server – Resource Kit. 12
  • 30. Introdução – Sites Dinâmicos com ASP 3.0 É Hora de Começar Bem, já estamos com o IIS instalado e funcionando, conhecemos as novidades desta versão e estamos 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 os principais recursos do ASP 3.0, podendo criar páginas e aplicações para Web, com diversos recursos e funcionalidades. Abaixo apresento uma pequena descrição do conteúdo de cada capítulo deste livro. Caso você esteja iniciando os estudos sobre ASP, aconselho que leia os capítulos na seqüência apresentada. Caso já trabalhe com ASP, sinta-se a vontade para ler os capítulos na ordem que julgar mais adequada. Cada capítulo apresenta exemplos completos, os quais ilustram os conceitos teóricos apresentados. Em todos os exemplos, estou utilizando a linguagem VBScript, devido a sua funcionalidade e facilidade de aprendizado. Caso o leitor queira utilizar Java Script (agora formalmente ECMA Script), 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. 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 ao aprendizado de ASP. Cabe ressaltar a grande aceitação que vem tendo a tecnologia de Active Server Pages da Microsoft. Basta observar o grande número de sites na Internet que utilizam esta tecnologia. Também é grande o número de empresas que desenvolvem aplicativos para sua 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 à vontade para aprender a tecnologia ASP. Então, mãos à obra, vamos aprender ASP 3.0. 14
  • 32. Capítulo 1 – Uma Introdução à Tecnologia ASP Capítulo 1 Uma Introdução à Tecnologia ASP 15
  • 33. Criando Sites Dinâmicos com ASP 3.0 A Internet faz parte da vida de um número cada vez maior de pessoas. Fazer compras, sem sair de casa; receber, diretamente no seu computador, as últimas notícias; comprar e vender ações; procurar emprego pela rede. Todos são exemplos de facilidades oferecidas pelo uso da Internet. Talvez seja mais simples enunciar o que não é possível de se fazer pela rede, do que listar todas suas possibilidades. Mas nem sempre foi assim. Para chegar ao nível que nos encontramos hoje, com a disponibilização dos mais variados serviços via Internet, muita evolução ocorreu. Desde os tempos de conteúdo meramente informativo, até a possibilidade de escutar rádio e fazer compras pela rede, muitas tecnologias novas surgiram. E o ritmo de evoluçã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 diversas fases, 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. Com isso você verá em que situações é indicada a utilização de páginas ASP. Era uma Vez uma Internet com Conteúdo Estático Neste tópico veremos um pouco sobre a história de Internet e seus conceitos básicos. Aprenderemos sobre os diversos elementos envolvidos quando um usuário acessa conteúdo da Internet. Também veremos as limitações e problemas dos sites pioneiros que criavam conteúdo estático. Um Começo Quase sem Querer Poderíamos dizer que a origem da Internet foi casual e despretensiosa. Inicialmente, foi criada uma 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 uma maneira rápida e inesperada. Neste ponto, a idéia de uma rede de computadores para a troca de informações estava lançada. Mais tarde, foi criada uma rede baseada nas mesmas tecnologias da ARPANET, porém com uma abrangência maior (tanto geográfica, quanto de objetivos). A idéia era trazer os benefícios demonstrados pela ARPANET, para um número maior de pessoas e empresas. Eis que nascia a Internet. No final da década de 80, a Internet já era bastante conhecida nos meios acadêmicos do mundo inteiro. Nesta época, porém, ainda tínhamos a Internet sem a interface gráfica. Normalmente a 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, era um 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ção era mantida pela National Science Fundation, entidade que financiou grande parte do desenvolvimento da Internet nos EUA, até este momento. Com a liberação, as empresas 16
  • 34. Capítulo 1 – Uma Introdução à Tecnologia ASP passaram a fazer uso da Internet para fins comerciais. Desde então a rede expandiu-se enormemente, atingindo, hoje, milhões de pessoas em todo o mundo. A popularização definitiva da rede veio com a criação de uma interface gráfica. Com a criação da linguagem HTML, servidores HTTP, e programas para acessar as páginas HTML armazenadas nos servidores (também conhecidos como browser ou navegadores), a Internet tornou-se mais popular do que nunca. Este foi o momento do surgimento da WWW – World Wide Web. Talvez a melhor tradução para World Wide Web seja: “Teia de Alcance Mundial”. Esta é a idéia que temos de Internet. Uma rede (teia) que conecta computadores do mundo inteiro (alcance mundial), proporcionando a troca de informações e uma infinidade de serviços e facilidades para as empresas e para o cidadão comum. Com certeza, os criadores da ARPANET, e depois da Internet, não imaginavam uma expansão e popularização tão rápida da rede. Hoje, vemos anúncios de sites na televisão, durante o Telejornal e na transmissão de partidas de futebol. A maioria dos jornais possui um caderno de informática, quase totalmente dedicado a assuntos relacionados com a Internet. Vemos reportagens sobre a rede em todas as revistas, e não somente nas especializadas em Informática, que agora dedicam quase a totalidade de suas matérias a assuntos da Internet. Enfim, a Internet já faz parte do nosso dia-a-dia; veio para ficar e facilitar a nossa vida. Agora vamos conhecer um pouco mais sobre a Internet e os diversos elementos que a compõem. Uma Visão Geral da Internet e de Seus Elementos Encontrar uma definição precisa e unânime para a Internet é uma tarefa complexa. Vamos ver os elementos que a compõe, sem nos preocuparmos com definições formais. Por exemplo, o que é preciso para que o usuário doméstico possa acessar a Internet; onde fica e por onde circula a informação que está sendo acessada. Internet Usuário Servidor Web Usuário doméstico conectado à Páginas HTML estáticas Internet através da linha telefônica. Figura 1.1: Uma visão geral da Internet, com conteúdo estático. 17