801
Júlio Battisti Aprovado em 30 Exames de Certicificação Microsoft: MCP 2000 e 2003, MCP+I, MCSE +I, MCSE 2000, MCSE 2003, MCSA 2000, MCSA 2003, MCSD, MCDBA e MCDST Site: www.juliobattisti.com.br e-mail: [email protected] ASP.NET Uma Revolução na Construção de Sites e Aplicações Web

Asp.NET Uma Revolução na Construção de Sites e Aplicações Web

Embed Size (px)

Citation preview

  • I www.juliobattisti.com.br

    CAPTULO 8: VALIDATION SERVER CONTROLS

    Jlio BattistiAprovado em 30 Exames deCerticificao Microsoft:

    MCP 2000 e 2003, MCP+I, MCSE +I,MCSE 2000, MCSE 2003, MCSA 2000,MCSA 2003, MCSD, MCDBA e MCDST

    Site: www.juliobattisti.com.bre-mail: [email protected]

    ASP.NETUma Revoluo naConstruo de Sites eAplicaes Web

  • IIwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Nota sobre direitos autorais:

    Este ebook de autoria de Jlio Battisti, sendo comercializado diretamente atravs do sitewww.juliobattisti.com.br ou atravs do site de leiles Mercado Livre: www.mercadolivre.com.br, pelousurio GROZA. Nenhum outro usurio, pessoa ou site est autorizado a vender este ebook.

    Ao adquirir este ebook voc tem o direito de l-lo na tela do seu computador e de imprimir quantas cpiasdesejar. vetada a distribuio deste arquivo, mediante cpia ou qualquer outro meio de reproduo, paraoutras pessoas. Se voc recebeu este ebook atravs do e-mail ou via ftp de algum site da Internet, ouatravs de um CD de Revista, saiba que voc est com uma cpia pirata, no autorizada. A utilizaode uma cpia pirata, no autorizada, crime de Violao de Direitos Autorais, sujeita a pena deCadeia.

    O valor cobrado por este arquivo praticamente simblico, pelas horas e horas de trabalho que ele representa.Novos e-books somente podero ser desenvolvidos pela honestidade de pessoas que adquirem o arquivodo e-book e no o distribuem livremente para outras pessoas. Se voc recebeu uma cpia deste arquivosem t-la adquirido diretamente com o autor, seja honesto, entre em contato com o autor, atravs do [email protected], para regularizar esta cpia.

    Ao regularizar a sua cpia voc estar remunerando, mediante uma pequena quantia, o trabalho do autore incentivando que novos trabalhos sejam disponibilizados.

    Se voc tiver sugestes sobre novos cursos que gostaria de ver disponibilizados, entre em contato pelo e-mail: [email protected].

    Visite periodicamente o site www.juliobattisti.com.br para ficar por dentro das novidades:

    Cursos de informtica.

    Artigos e dicas sobre Certificaes da Microsoft.

    Artigos sobre Carreira e Trabalho.

    Dicas de livros e sites sobre diversos assuntos.

    Simulados gratuitos, em portugus, para os exames da Microsoft.

    PIRATARIA CRIME, COM PENA DE CADEIA. EU AGRADEOPELA SUA HONESTIDADE. SE VOC COMPROU UMA CPIADESTE CURSO, DIRETAMENTE COM O AUTOR, NODISTRIBUA CPIAS PARA OUTRAS PESSOAS. SE VOCRECEBEU UMA CPIA ILEGAL DESTE ARQUIVO, NOADQUIRIDA DIRETAMENTE COM O AUTOR JLIO BATTISTI,ENTRE EM CONTATO E REGULARIZE A SUA CPIA.

  • III www.juliobattisti.com.br

    CAPTULO 8: VALIDATION SERVER CONTROLS

    AgradecimentosEscrever sobre um assunto novo e empolgante como ASP.NET , ao mesmo tempo, estimulante e

    desafiador. Estimulante porque representa uma mudana de paradigma e desafiador porque explicar de

    uma maneira clara e objetiva um assunto como ASP.NET uma tarefa rdua.

    Aos heris, muitas vezes annimos, que se lanaram na aventura de entender o ASP.NET e,

    principalmente, divulgar suas descobertas e vitrias, em inmeros sites gratuitos e listas de discusso

    da Internet, ficam os meus sinceros agradecimentos. O esprito de colaborao e coleguismo destas

    pessoas realmente admirvel.

    minha esposa Lu, pelo carinho, amor, dedicao, companheirismo e tolerncia.

    dona Lucy, minha me, por sempre me apoiar e ser uma grande admiradora e incentivadora de tudo

    o que fao.

    A meu Pai, em memria, pelo jeito simples e pacato, que me ensinou a parar e refletir nos momentos

    difceis. Aos meus irmos agradeo pelos bons momentos que juntos passamos.

    Aos amigos de Boqueiro do Leo, pelas poucas horas de lazer e diverso que pude usufruir neste ano de

    tanto trabalho. A vocs gostaria de dizer que sinto sinceras saudades da companhia de todos.

    equipe editorial da Axcel por acreditar e produzir mais um trabalho de minha autoria. Tambm no

    posso deixar de agradecer aos demais membros da Axcel Books, pela sua pacincia em produzir, corrigir

    e revisar mais este trabalho, sempre com sugestes para a melhoria do mesmo.

    A Deus por nos dar a inteligncia e a determinao na busca de cada vez fazer as coisas de uma maneira

    melhor e mais simples.

    Sobre o AutorJlio Battisti profissional certificado da Microsoft, tendo sido aprovado em 21 Exames da Microsoft,

    com os quais obteve certificaes como: MCP, MCP+I, MCSE 2000, MCSE+I, MCDBA 2000 e MCSD.

    Trabalha como Gerente de rede na Secretaria da Receita Federal, e trabalha com o Framework .NET e o

    ASP.NET desde a verso Beta 1 do Framework .NET, lanada em Junho de 2000. Tambm autor de

    artigos de informtica e trabalha com o desenvolvimento e administrao de Web Sites. Atua como

    instrutor de cursos de informtica tanto na Secretaria da Receita Federal como para turmas em

    Universidades e outros cursos.

  • IVwww.juliobattisti.com.br

    Conhea Outros Livros do Autor Jlio Battisti

    Chega ao mercado editorial mais um aguardado lanamento da Axcel BooksEditora - Certificao Microsoft - Guia de Estudos Para o MCSE - Exame 70-217, onde o autor Jlio Battisti descreve, de forma detalhada e com exemplospasso-a-passo, todos os tpicos que fazem parte do programa oficial da Microsoftpara o exame de certificao 70-217. A obra apresenta e explica desde osprincpios bsicos, incluindo os fundamentos do Active Directory; passandopor servios tais como DNS, gerenciamento de compartilhamentos, Master Op-erations, permisses NTFS, Grupos de Usurios, Unidades Organizacionais eGroup Policy Objects, os GPOs; alm de ainda tratar de questes como aconfigurao de Auditoria de Objetos, o gerenciamento do Schema, entre outros.

    Um curso completo de Active Directory para o Windows 2000 Server

    Manual de Estudos Para o Exame 70-217 752 pginas

    O livro ensina desde os fundamentos bsicos do Active Directory, passandopela instalao do Windows Server 2003 e por dicas sobre o projeto,implementao e migrao do Windows 2000 Server para o Windows Server2003. Voc aprender, em detalhes, sobre os servios de compartilhamentode arquivos e impressoras, segurana, como tornar o Windows Server 2003um servidor Web, aprender sobre os servios de rede: DNS, DHPC, WINS,RRAS, IPSec, Anlise de Segurana, Group Policy Objects e muito mais.Confira, vale a pena.

    Windows Server 2003 Curso Completo 1568 pginas

    Manual de Estudos Para o Exame 70-216 712 pginas

    Neste aguardado lanamento da Axcel Books Editora - Certificao Microsoft- Guia de Estudos Para o MCSE - Exame 70-216, o autor Jlio Battisti descreve,de forma detalhada e com exemplos passo-a-passo, todos os tpicos que fazemparte do programa oficial da Microsoft para o exame de certificao. A obraapresenta e explica desde os princpios bsicos, incluindo os fundamentos doprotocolo TCP/IP; passando por instalao, configurao e administrao doDNS, DHCP, WINS e RRAS; alm de ainda tratar de questes quanto aoroteamento, NAT, Certificados Digitais, IPSec, entre outros.

  • V www.juliobattisti.com.br

    O novo mundo do Windows XP, que representa a nova era do sistemaoperacional para usurios e administradores est reunido nesta obra. JlioBattisti apresenta a nova interface do sistema, completamente redesenhada ecom a experincia de um profissional certificado da Microsoft. Na obra, osleitores iro aprender a implementar, configurar e utilizar o Windows XP,desvendando as funcionalidades, alm das configuraes de segurana, dedesempenho e de estabilidade do sistema. O livro aborda ainda toda a partede Internet do Windows XP - conectando e usando a Internet; configurandoo firewall de conexo; alm dos novos recursos do correio eletrnico. Vejatambm os detalhes sobre o Active Directory, as configuraes de rede eprotocolo TCP/IP, criptografia, registry do Windows, entre tantos outrosassuntos. O leitor ainda vai poder contar com um captulo exclusivo e umsimulado com 100 questes/respostas destinados aos interessados no examede Certificao 70-270 da Microsoft.

    Windows XP Home & Professional 840 pginas

    Manual de Estudos Para o Exame 70-290 1021 pginas

    SQL Server 2000: Administrao & Desenvolvimento Curso Completo - 816 pginas

    O lanamento destinado aos usurios/leitores da verso anterior do SQLServer, o SQL 7, alm de redes de computadores em geral, Windows 2000Server, TCP/IP, Bancos de Dados em geral, do Microsoft Access e do VisualBasic. O leitor aprender na obra destinada do iniciante ao avanado detalhessobre o modelo de dados relacional, como instalar o SQL Server 2000 emdiferentes plataformas, alm da criao e administrao de bancos de dados,tabelas e outros objetos. Aprenda ainda Como criar pginas ASP que acessamos dados do SQL Server 2000.

    Um Manual de Estudos Completo para o Exame 70-290: Gerenciando e Mantendoum Ambiente Baseado no Windows 2000 Server. (Managing and Maintaining aMicrosoft Windows Server 2003 Environment). Este o exame de Administraodo Windows 2000 Server, equivalente ao Exame 70-215 para o Windows 2000Server. O Exame 70-290 um exame obrigatrio para o candidato que deseja obtera certificao MCSE-2003.UM GUIA INDISPENSVEL PARA QUEM QUERPASSAR NO EXAME 70-290 Este manual apresenta as seguintes caractersticas:Curso em Portugus, baseado no Windows Server 2003 em Portugus, Completo,abrangente, abordando todos os tpicos do programa oficial, Repleto de exemplosprticos, passo-a-passo, detalhadamente explicados, Simulado com 60 questes,Questes com respostas e comentrios detalhados.

    DISPONVEL S EM PDF

  • VIwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Sumrio

    Introduo: Uma Nova Revoluo no Desenvolvimento de Software? 1Quem Deveria Ler Este Livro? 2Equipamento e Software Necessrios 2Instalando e Testando o IIS 5.0 4Como Obter e Instalar o Microsoft .NET Framework SDK 9Configuraes do Servidor Utilizado Neste Livro 12Uma Viso Geral do Contedo do Livro 13 Hora de Comear 13

    PARTE 1: O Framework .NET e a Linguagem C# 14

    Captulo 1: Entendendo a Nova Proposta da Microsoft o Framework .NET 15Introduo 15O Primeiro Contato com o Framework .NET 16

    Apresentando o Conceito de Servios Web Services 16Apresentando o CLR Common Language Runtime 18.NET Framework Class Library 19

    Um Pequeno Parnteses Para falar mal dos Modelos Anteriores 21Ai que Saudade do MS-DOS??? 21

    Prazer. Eu Sou o Windows! 22Redes e Internet Mais Problemas (ou Solues) Vista! 23Modelo em 2 Camadas 23Aplicaes em 3 Camadas 25Aplicaes em Quatro Camadas 26Questes a Considerarmos nos Modelos de 3 ou Mais Camadas Utilizados Atualmente 28

    De Volta ao Framework .NET: os Demais Elementos 29Linguagens Habilitadas ao .NET 29

    Um Rpida Apresentao do VB.NET 30Uma Rpida Apresentao do C# 30

    Common Type System 32Metadata 33Assemblies 34

    Interfaces com o Usurio 35Windows Forms 35Web Forms 36

    Os Servidores .NET 37

  • VII www.juliobattisti.com.br

    SUMRIO

    SQL Server 2000 39Exchange Server 2000 39BizTalk Server 2000 39Commerce Server 2000 40Application Center 2000 40Host Integration Server 2000 40Internet Security and Acceleration Server 2000 40Mobile Information 2001 Server 40

    ADO.NET 41Concluso 43

    Captulo 2: Entendendo o CLR 45Introduo 45CLR Common Language Runtime 46

    Compilar ou no Compilar, eis a Questo? 47O Papel dos Metadados (Metadata) 47Integrao Entre Diferentes Linguagens: Promessa ou Realidade? 47

    O Processo de Execuo de Cdigo do CLR 48Mais Algumas Observaes Sobre o JIT 49

    Assemblies 50Uma Definio em Poucas Palavras 51Funes do Assembly 51Componentes do Assembly 52O que Temos no Manifesto? 54

    CTS Common Type System 54Classificao dos Tipos do CTS 55

    .NET Framework Class Library Biblioteca de Classes do Framework .NET 55Conceitos Bsicos de Orientao a Objetos 60

    O que um Objeto? 61Mensagens 62Classes 62Herana 64Reutilizao de Cdigo 68

    Mais Alguns Detalhes Antes de Iniciarmos a Parte Prtica 69Concluso 72

    Captulo 3: Apresentando o C# 73Introduo 73Mais uma Linguagem de Programao? 74Como a cara de um Programa Escrito em C#? 75

  • VIIIwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Tipos da Linguagem C# 82Value Types 83

    O Tipo Struct 86Os Tipos de Enumerao 90

    Reference Types 92O Tipo String 92O Tipo Arrays 96

    Instrues de Fluxo de Controle no C# 99Instrues de Seleo 100

    A Instruo If 100A Instruo Switch 105

    Instrues de Repetio 109A Instruo For 110A Instruo While 114A Instruo do/while 117A Instruo Foreach 120

    Instrues de Salto (Jump) 123A Instruo Break 123A Instruo Continue 123A Instruo Goto 123A Instruo Return 124A Instruo Throw 124

    Concluso 124

    Captulo 4: Classes, Mtodos, Herana e Polimorfismo com o C# 125Introduo 125Operadores e Mais Operadores 126

    Built-in Operators 126Operadores Aritmticos 127

    Operador de Incremento: ++ 130Operador de Decremento 131

    Operadores Relacionais e Lgicos 131Operadores de Atribuio (Assignment) 133Precedncia de Operadores 134

    Classes 137Para Comear um Exemplo Simples 137Membros de uma Classe 140

    Campos (Fields) 140Mtodos (Methods) 140Propriedades (Properties) 141Constantes (Constants) 141

  • IX www.juliobattisti.com.br

    SUMRIO

    Indexadores (Indexers) 141Eventos (Events) 141

    Construtores e Destrutores de uma Classe 141Modificadores Para os Membros de uma Classe 144Adicionando Funcionalidade a uma Classe Mtodos 144

    O Polimorfismo Posto em Prtica Override 155Concluso 159

    Captulo 5: Tpicos Diversos em C# 160Introduo 160A Classe System.Math Operaes Matemticas 161

    Campos da Classe System.Math 161Mtodos da Classe System.Math 162

    A Estrutura System.DateTime Datas e Horas 174Campos da Estrutura System.DateTime 176Propriedades da Estrutura System.DateTime 176

    O Namespace System.IO Operaes com Arquivos e Pastas 178A Classe System.IO.File Operaes com Arquivos 178

    Mtodos da Classe System.IO.File 179A Classe System.IO.FileInfo Informaes Sobre Arquivos 182

    Propriedades da Classe System.IO.FileInfo 182O Tratamento de Excees 184

    Utilizando try e catch 185Utilizando try e finally 188

    Concluso 195

    PARTE 2: Fundamentos do ASP.NET 196

    Captulo 6: Uma Introduo ao ASP.NET 197Introduo 197Mais uma Verso? 197

    Uma Introduo Tecnologia ASP 198Contedo Dinmico na Internet 200

    Novidades e Melhorias do ASP.NET 202Faz Parte do Framework .NET 202Suporte a Mltiplas Linguagens 202Menos Cdigo Para Mais Trabalho 203Separao Entre o Cdigo HTML e o Cdigo ASP 203Maiores Facilidades Para Criao e Utilizao de Componentes 207Compatibilidade com Qualquer Navegador 207

  • Xwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Check List Para Acompanhar os Exemplos Deste Livro 207ASP e ASP.NET Podem Rodar no Mesmo Servidor? 209Enfim Vamos Iniciar com ASP.NET 209

    A Extenso do Arquivo Mudou .aspx 209Inserindo Cdigo ASP.NET 210Um Pequeno Exemplo, s Para Comear 212Exemplo 1 212

    Banco de Dados do SQL Server 2000 Para os Exemplos Deste Livro 216O Segundo Exemplo Conectando com um Banco de Dados 216

    Cad o meu Objeto Recordset? 219Conectando com o Banco de Dados 219Um Controle Poderoso Para Exibir os Dados 220Posso Ter um Comando que Ultrapassa uma Linha? 220O Bom e Velho SQL Continua o Mesmo? 220

    Concluso 221

    Captulo 7: HTML Server Controls 223Introduo 223Uma Classe Chamada Page 224

    Eventos ao Carregar uma Pgina ASP.NET 224A Classe Page 225

    Os Eventos da Classe Page 225As Propriedades da Classe Page 227

    Mtodos da Classe Page 234O Processamento de uma Pgina ASP.NET 235

    Manuteno de Estado Fundamental 236HTML Server Controls 236

    Uma Definio Para HTML Server Controls 237HTML Server Controls Disponveis 238

    A Classe Base System.Web.UI.HtmlControls.HtmlControl 238HTMLForm Control 239HTMLInputText Control 242HTMLInputCheckBox 244HtmlTextArea Control 250HTMLInputRadioButton Control 251Controles Para a Criao de Tabelas: HtmlTable, HtmlTableRow e HtmlTableCell Controls 254

    O Controle HtmlTable 254O Controle HtmlTableRow 255O Controle HtmlTableCell 256Um Exemplo Prtico 256

    HTMLSelect Control 263

  • XI www.juliobattisti.com.br

    SUMRIO

    HTMLAnchor Control 267HtmlInputButton Control 269HtmlButton Control 270HtmlImage Control 273

    Concluso 277Introduo 279

    Captulo 8: Validation Server Controls 279Validation Controls: Definio e Propriedades Gerais 280

    Como que Utilizamos os Controles de Validao? 281A Me de Todos? Ou Seria o Pai de Todos? 282

    Principais Propriedades da Classe BaseValidator 282Principais Mtodos da Classe BaseValidator 282

    Um Exemplo, s Para Comear 283O Controle RequiredFieldValidator 287O Controle CompareValidator 293O Controle RangeValidator 297O Controle CustomValidator 300O Controle RegularExpressionValidator 305Concluso 308

    Captulo 9: Web Form Controls 309Introduo 309A Classe Bsica WebControl 310

    Principais Propriedades da Classe WebControl 310Principais Mtodos da Classe WebControl 311Principais Eventos da Classe WebControl 312

    TextBox Web Server Control 312Label Web Server Control 318CheckBox Web Server Control 320RadioButton Web Server Control 324Button Web Server Control 326ListBox Web Server Control 329Table, TableCell e TableRow Web Server Controls 331Panel Web Server Control 337Image Web Server Control 343HyperLink Web Server Control 345LinkButton Web Server Control 347ImageButton Web Server Control 350Concluso 353

  • XIIwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Captulo 10:Acessando Bancos de Dados com ASP.NET Parte 1 355Introduo 355Uma Viso Geral do Acesso a Dados 356

    Quais as Principais Diferenas do ADO.NET em Relao ao ADO? 358Bancos de Dados Utilizados nos Exemplos 359

    O Banco de Dados do Microsoft Access NorthWind.mdb 359O Banco de Dados do SQL Server Pubs 360

    Uma Introduo ao ADO.NET 362Informando que Voc Deseja Utilizar Classes de um Determinado Namespace 362Classe ou Objeto; Objeto ou Classe? 363

    Estabelecendo Conexes 363Estabelecendo uma Conexo com o SQL Server 2000 SqlConnection 364Estabelecendo uma Conexo com o Microsoft Access OleDbConnection 369

    Uma Viso Geral do Processo de Acesso a Dados 374Criando Objetos Command 376Retornando Dados com DataAdapter 380O Objeto DataSet 382O Objeto DataView 388Um Pouco Mais Sobre o Controle DataGrid 405

    Primeira Maravilha do DataGrid: Paginao 405Segunda Maravilha do DataGrid: Mais do que um Conjunto de Dados na Mesma Pgina 407

    Concluso 413

    Captulo 11:Acessando Bancos de Dados com ASP.NET Parte 2 414Introduo 414Um tal de Data Binding 415

    Maneira Antiga: Criando uma Lista Dinmica com ASP 3.0 415A Evoluo: Data Binding com ASP.NET. 418Data Binding de Valores Simples 422

    Sintaxe Para o Data Binding 422Data Binding de Mltiplos Valores. repeated-value-binding 425

    O Controle CheckBoxList 425O Controle DropDownList 434O Controle RadioButtonList 435

    Mais um Pouco Sobre o Controle DataGrid 440Ordenao com o Controle DataGrid 440Filtrando Dados com o Controle DataGrid 446

    O Controle DataGrid em Detalhes 456Um Exemplo de Criao Manual de Colunas BoundColumn 460

    Implementando Paginao com o Controle DataGrid 465

  • XIII www.juliobattisti.com.br

    SUMRIO

    Concluso 473

    Captulo 12: Acessando Bancos de Dados com ASP.NET Parte 3 474Introduo 474No Esquea, Estamos em um Modelo Desconectado 475

    O Objeto DataTable Alteraes nos Dados Desconectados 475Inserindo, Excluindo e Adicionando Dados com o Objeto DataTable 477

    Sincronizando Dados com o Banco de Dados 511Excluindo Registros a Propriedade DeleteCommand 529Adicionando Registros a Propriedade InsertCommand 531Concluso 532

    PARTE 3: Conceitos Avanados do ASP.NET e Segurana 533

    Captulo 13: Web Services e Visual Studio .NET 534Introduo 534Uma Introduo aos Web Services 535

    Possveis Utilizaes Para um Web Service 537O que Diferencia Web Services das Tecnologias de Componentes Como COM ou CORBA? 538

    Criando um Web Service 539Sintaxe Para a Criao de um Web Service 539Uma Maneira Fcil de Testar a Funcionalidade de um Web Service 541

    Proxies: Conceito e Criao 545Conceito 545Criando o Proxy Utilizando o Utilitrio Wsdl.exe 546Compilando o Arquivo CalculosLegais.cs Para Gerar a DLL Correspondente 549Disponibilizando a DLL Para que a Mesma Possa Ser Utilizada 550Utilizando o Web Service em uma Pgina ASP.NET 552

    O Novo Ambiente Grfico de Desenvolvimento Visual Studio .NET 558O que h de Novo no Visual Studio .NET 558

    Concluso 577

    Captulo 14: Segurana de Aplicaes Web com o IIS 5.0 e ASP.NET 579Introduo 579Autenticao de Usurios com o IIS 5.0 580Autenticao Annima 581

    Como Definir a Conta Para Acesso Annimo no IIS 5.0 583Verificando as Configuraes da Conta Para Acesso Annimo no Windows 2000 Server 587Configurando Permisses NTFS em Pastas do Servidor Web 592

  • XIVwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Sistemas de Arquivos no Windows 2000 e Permisses NTFS 593Definindo Permisses NTFS 596

    Autenticao Bsica 603Autenticao Integrada do Windows 604Autenticao Utilizando Certificados 605

    Mapeamento do Certificado Cliente 606Configurando o Tipo de Autenticao no IIS 606Mais Configuraes de Segurana do IIS 610

    Configurando Opes Gerais de Segurana 610Configurando de Segurana Para Aplicativos Web no IIS 613

    Definindo Restries de Acesso em Nvel de Endereo IP 615Mecanismos de Segurana do Banco de Dados 619O que uma Aplicao Web no IIS? 620

    Uma Aplicao Cliente/Servidor Tradicional 620Aplicaes Web um Novo Paradigma 621O que uma Aplicao Web no IIS? 622

    Configuraes de Segurana com o Arquivo Web.Config 629Impersonation 629O Arquivo Web.Config 630

    Definindo o Tipo de Autenticao 634Definindo os Usurios e Grupos que Tm Permisso de Acesso Aplicao 634

    Concluso 639

    Captulo 15: Caixa de Ferramentas do ASP.NET 641Introduo 641Criao de Listas Dinmicas 642Edio de Dados com o Controle DataGrid 655Acessando Dados de uma Planilha do Excel 667Um Conceito Importante: Code Behind 670O Objeto HttpRequest 675O Objeto HttpResponse 681Diretivas de Pgina 682

    A Diretiva @Page 682A Diretiva @Import 683Outras Diretivas 683

    Configuraes de Segurana Atravs de Programao 684Acessando Informaes Sobre o Usurio Autenticado 684

    Concluso 691

  • XV www.juliobattisti.com.br

    SUMRIO

    Captulo 16: Tratamento de Erros e Gerenciamento de Estado 693Introduo 693Tratamento de Erros no Framework .NET 694

    Excees e a Classe Exception 694Revisando as Estruturas Try...Catch...Finally 696

    Utilizando try e catch 696Utilizando try e finally 700Mltiplos Blocos Catch e Tratamento de Excees Especficas 703Um Exemplo de Tratamento de Exceo do Tipo SqlException 704

    Concluso 709

    ANEXO 1: Principais Tags do HTML e Criao de Contas e Grupos no Windows 2000 710Introduo 710

    Um Passeio Pelo HTML 710Criao de Contas de Usurios e Grupos no Windows 2000 712

    A Estrutura Bsica de uma Pgina HTML 712Relao das Principais Tags do HTML Utilizadas nos Exemplos do Livro 713

    As Tags Para Criao de Ttulos 713Tags Para a Criao de Tabelas 714Inserindo uma Linha Horizontal 717Tags Para Formatao Bsica do Texto 717Formatao de Fonte 719A Tag 720

    O Conceito de Contas de Usurios no Windows 2000 722Alterando Propriedades Importantes das Contas de Usurios 727Definindo as Polticas de Senhas 734

    Grupos de Usurios e Tipos de Grupos Existentes no Windows 2000 Server 737Criando Grupos de Usurios e Adicionando Usurios aos Grupos 740

    Introduo 745

    Anexo 2: O Modelo de Dados Relacional 745Conceitos Bsicos de Bancos de Dados Relacionais 746

    Entidades e Atributos 747O Conceito de Chave Primria 749Relacionamentos Entre Tabelas 750

    Relacionamento do Tipo Um Para Um 751Relacionamento do Tipo Um Para Vrios 752Relacionamento do Tipo Vrios Para Vrios 753Integridade Referencial 754

    Normalizao de Tabelas 755

  • XVIwww.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Primeira Forma Normal 755Segunda Forma Normal 756Terceira Forma Normal 757

    Passos Para Projetar um Banco de Dados 758Concluso 760

    ANEXO 3: A Linguagem SQL 761Introduo 761Noes Bsicas da Linguagem SQL Structured Query Language 761

    Conhecendo o SQL 761A Instruo SELECT 762A Instruo UPDATE 769A Instruo INSERT 771A Instruo DELETE 771

    Comandos Avanados da Linguagem T-SQL 772Pesquisando Dados em Mltiplas Tabelas Detalhes e Exemplos 772

    Tipos de JOIN 774JOIN com Mais do que Duas Tabelas 776Utilizando Subconsultas 778

    Concluso 781

    ANEXO 4: Sites Sobre ASP.NET, C# e XML 782Introduo 782Concluso 785

  • 1INTRODUO

    www.juliobattisti.com.br

    I N T R O D U OUma Nova Revoluo no Desenvolvimento deSoftware?.NET, DOT.NET ou Microsoft.NET, no importa. O fato que uma grande

    mudana est acontecendo. Esta mudana tem dois aspectos extremamente

    relevantes:

    promovida pela Microsoft

    uma mudana de Paradigma

    Desde Junho de 2000 que a Microsoft vem anunciando a sua iniciativa .NET.

    Milhares de artigos j foram escritos sobre esta mais nova empreitada da gigante

    de Seattle. A idia bsica por detrs desta iniciativa uma mudana, radical, no

    modelo de desenvolvimento, comercializao e utilizao de Software. A iniciativa

    .NET a viso da Microsoft para um mundo em que o software passa a ser

    comercializado na forma de Servios, os quais so acessados atravs da Internet,

    utilizando-se protocolos padro como XML (Extensible Markup Language) e

    SOAP (Simple Object Access Protocol).

    So muitos os elementos que do suporte ao .NET, dentre os quais destacam-se

    uma linha de servidores conhecidos como Servidores .NET, o sistema operacional

    Windows 2000 e suas futuras verses, alm de um novo conjunto de ferramentas

    de desenvolvimento, conjunto este batizado de Visual Studio Next Generation ou

    comercialmente conhecido como Visual Studio .NET.

    Um mundo em que o Software visto como servios, os quais podem ser acessados,

    atravs da Internet, por qualquer computador ou dispositivo autorizado, no

    nenhuma novidade ou inveno da Microsoft. Empresas como IBM, Sun e ORA-

    CLE possuem suas prprias ferramentas e iniciativas nesta direo, algumas in-

    clusive em estgios bastante avanados de desenvolvimento.

    A plataforma .NET a aposta da Microsoft nesta

    direo. Porm todos sabemos que nenhuma

    empresa no mundo sabe divulgar to bem suas

    iniciativas e produtos como a Microsoft. Quando o

    .NET foi anunciado em Junho de 2000, os elementos

    que davam suporte iniciativa ainda encontravam-

    se na verso Beta 1. Em Junho de 2001, portanto

    um ano depois, foi lanada a verso Beta 2,

    conhecida como Microsoft .NET Framework

    SDK. A verso Beta 2 apresentou inmeras

    alteraes, inclusive com a retirada de alguns

    NOTA: Para uma relaocompleta de todas asalteraes da verso Beta2 em relao Beta 1,consulte o seguinteendereo: http://www.123aspx.com/b1to2changes/default.asp.

  • 2www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    componentes e a substituio por outros, o que fez com que cdigos criados para a verso Beta 1 no fossem compatveis

    com a verso Beta 2.

    Durante este ano entre o lanamento da verso Beta 1 e da verso Beta 2 , proliferaram inmeros sites na Internet,

    com milhares de artigos sobre o .NET. Isso fez com que a iniciativa da Microsoft tivesse uma visibilidade e divulgao

    jamais alcanadas por outras empresas. Inmeros livros foram lanados baseados na verso Beta 1, o que indica o

    sucesso da iniciativa. Voc j viu algum livro de Excel, por exemplo, baseado em uma verso Beta 1 do Office?

    Nesta introduo veremos o que voc precisa para iniciar com os estudos de .NET. Iremos mostrar qual o equipamento

    mnimo de que voc dever dispor para poder instalar o Microsoft .NET Framework SDK e acompanhar os exemplos

    deste livro. Tambm iremos orient-lo sobre a obteno e instalao do Microsoft .NET Framework SDK.

    Quem Deveria Ler Este Livro?Mesmo que voc no conhea nada sobre .NET, C# ou ASP.NET, voc ser capaz de acompanhar todos os captulos

    deste livro. Os captulos foram organizados de tal maneira que os conceitos e exemplos so apresentados em uma

    ordem natural e intuitiva. Em outras palavras, procurei imaginar o que faria um leitor que nada conhecesse sobre

    .NET, C# e ASP.NET e quisesse iniciar os seus estudos. Com esta idia em mente, procurei organizar os captulos em

    uma seqncia que facilitasse o aprendizado de tais tecnologias. O conhecimento da tecnologia ASP pode facilitar e

    acelerar o aprendizado de alguns conceitos, porm no um pr-requisito obrigatrio. Ainda que o amigo leitor nada

    conhea sobre as verses anteriores do ASP, mesmo assim voc ser capaz de acompanhar todo o contedo deste livro.

    Para usurios que j trabalham com as verses anteriores do ASP, o livro oferece a

    possibilidade de conhecer os fundamentos bsicos de uma nova linguagem C#, bem

    como os elementos bsicos do .NET e a nova verso do ASP ASP.NET.

    Em resumo, nos captulos e anexos deste livro, voc encontrar todas as informaes

    necessrias para entender o modelo .NET. Tambm apresentaremos os elementos bsicos

    da nova linguagem C#. Uma vez conhecendo o modelo .NET e a linguagem C#, estaremos

    aptos a criar aplicaes utilizando ASP.NET.

    Neste livro estarei utilizando as vrias denominaes, indiscriminadamente.

    Equipamento e Software NecessriosPara acompanhar todos os exemplos propostos no livro, precisamos de um computador com Windows 2000 Server ou

    Windows 2000 Professional instalado. O IIS 5.0 Internet Information Services tambm deve estar instalado. Mais

    adiante veremos como confirmar se o IIS est instalado e, caso o mesmo no esteja instalado, como proceder

    instalao do mesmo.

    NOTA: So vrias asmaneiras de se referir nova plataforma .NET daMicrosoft: DOT.NET, .NET,Plataforma .NET,Iniciativa .NET, Frame-work .NET

  • 3INTRODUO

    www.juliobattisti.com.br

    A configurao mnima necessria depende de uma srie de fatores, conforme descrito

    a seguir.

    Se o equipamento vai ser utilizado como um servidor Web na Internet, vrios so os

    aspectos a serem considerados, tais como:

    Aplicaes implementadas e recursos de hardware necessrios, tais como memria,

    disco e processador.

    Nmero estimado de acessos simultneos e dirios, sendo esta uma das estimativas

    mais difceis de se obter, uma vez que o sucesso de um site pode ser determinado

    por um nmero muito grande de fatores, nem todos de fcil mensurao.

    Grau de segurana necessrio e desejvel. Neste caso, entram questes como criptografia,

    uso de certificados digitais, criao de VPN Virtual Private Networks (Redes Privadas

    Virtuais), procedimentos de recuperao falha, plano de contingncia, etc.

    Percentual de folga desejado para recursos tais como: memria, processador, disco. Ao projetar um site,

    bastante comum utilizar hardware que atenda as necessidades atuais com uma certa folga, para que seja possvel

    atender a crescimentos maiores do que os estimados. Alguns sites famosos j enfrentaram problemas de

    crescimentos maiores do que o esperado. Quando isso acontece, mais recursos de hardware precisam ser

    adicionados com o site em funcionamento.

    Para maiores informaes sobre como planejar a capacidade de hardware para um servidor Web com o IIS 5.0, consulte

    o captulo Capacity Planning do livro Internet Information Services Resource Guide, o qual parte integrante do

    Windows 2000 Server Resource Kit.

    Como equipamento para ser utilizado em casa, ou em um laboratrio de teste na sua empresa, aconselho a seguinte

    configurao:

    Processador Pentium 450 ou superior.

    128 MB de RAM, sendo 256 MB, altamente recomendveis.

    6 GB de Disco rgido.

    Com menos de 128 MB de RAM, o desempenho, mesmo para uma mquina de testes, fica muito comprometido.

    Alm do Windows 2000 Server e do IIS 5.0, tambm precisaremos ter os seguintes programas e servios instalados,

    para que possamos acompanhar os exemplos deste livro:

    Internet Explorer 5.01 ou superior.

    Microsoft .NET Framework SDK Beta 2. Veremos como fazer o download e instalar este Framework mais

    adiante, nesta introduo.

    Em cada um dos captulos, estaremos apresentando uma srie de exemplos prticos. Atravs destes exemplos, voc

    poder entender melhor a aplicao dos conceitos tericos apresentados. Em muitas situaes, a melhor maneira de

    NOTA: Poderamosutilizar o Windows 98 ouMe, porm algumasopes no estariamdisponveis, uma vez queo servidor Web para estaplataforma o PWS Personal Web Server, oqual possui um nmeroreduzido defuncionalidades emrelao ao IIS.

  • 4www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    entender um determinado assunto atravs da utilizao do mesmo para resoluo de um problema prtico do dia-a-

    dia. Muitos dos exemplos apresentados podem ser facilmente adaptados para uso em aplicaes que voc esteja

    desenvolvendo. Situaes como acesso a Banco de dados atravs de pginas Web, indexao e pesquisa de contedos,

    implementao de mecanismos de segurana, etc.; so comuns na maioria das aplicaes Web atuais. Agora vamos

    verificar se o IIS 5.0 est instalado e, caso o mesmo no esteja, aprenderemos a fazer a instalao.

    Instalando e Testando o IIS 5.0Caso voc no tenha instalado o IIS 5.0, quando da instalao do Windows 2000 Server ou Professional, possvel

    fazer a instalao a qualquer momento. Agora aprenderemos, passo a passo, a instalar o IIS 5.0. Nunca demais

    lembrar que, sem o IIS 5.0, no ser possvel testar os exemplos prticos, propostos neste livro.

    Para instalar o IIS 5.0:

    1. Faa o logon no Windows 2000 Server ou Professional.

    2. Abra o Painel de controle (Iniciar -> Configuraes -> Painel de controle).

    3. Abra a opo Adicionar ou remover programas.

    4. Surgir a janela indicada na Figura 1.

    Figura 1: A janela Adicionar ou remover programas.

    5. No lado esquerdo da janela, d um clique na opo Adicionar ou remover componentes do Windows.

  • 5INTRODUO

    www.juliobattisti.com.br

    6. Surgir a janela indicada na Figura 2.

    7. D um clique no boto Componentes.

    8. Ser exibida, por breves instantes, uma mensagem Aguarde.... Depois surge a janela Assistente de componentes

    do Windows, conforme indicado na Figura 3.

    9. Utilizando o Assistente de componentes do Windows, podemos adicionar novos servios, ou remover servios

    que no sejam mais necessrios.

    10. V descendo com a barra de rolagem vertical, at localizar o item Internet Information Services (IIS), conforme

    indicado pela Figura 4.

    Figura 2: A janela para alterar a instalao do Windows.

    Figura 3: O Assistente de componentes do Windows.

  • 6www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    11. Se esta opo estiver marcada, o IIS 5.0 j est instalado. Neste caso clique no boto Cancelar. Depois s fechar

    a janela Adicionar ou remover programas e o Painel de controle.

    12. Se esta opo estiver desmarcada, significa que o IIS 5.0 no foi instalado quando da instalao do Windows

    2000. Marque esta opo para instalar o IIS 5.0.

    13. Observe que, ao marcar a opo, o boto Detalhes habilitado. O IIS 5.0 formado por uma srie de componentes

    e funcionalidades. Existe um servidor de pginas Web (servidor HTTP), um servidor de ftp, um servidor de

    notcias (NNTP), etc.

    Figura 4: Servio Internet Information Services (IIS).

    14. Ao instalarmos o IIS 5.0, podemos escolher um ou mais dos seus componentes,

    dependendo das necessidades do nosso site. No necessrio que todos os

    componentes do IIS 5.0 sejam instalados. Por exemplo, se o servio de cpia de

    arquivos no for necessrio, no temos por que instalar o servio de ftp.

    15. Clique no boto Detalhes.

    16. Na lista de opes disponveis, certifique-se de que somente as seguintes esto

    marcadas:

    Arquivos comuns.

    Documentao.

    Extenses de servidor do FrontPage 2000.

    Gerenciador de Internet Services (HTML).

    Servidor File Transfer Protocol (FTP).

    Servidor World Wide Web.

    DICA: Instale somente osservios realmentenecessrios. No uma boaidia instalar todos osservios disponveis, mesmoque somente alguns sejamutilizados. Quanto maisservios instalados, maioresas possibilidades de ataquee quebra da segurana dosite, por parte de umhacker, alm de consumirmemria e processadordesnecessariamente.

  • 7INTRODUO

    www.juliobattisti.com.br

    Snap-In do Internet Information Services.

    17. Observe que, aps ter selecionado os componentes a serem instalados, o Windows 2000 Server exibe o espao em

    disco necessrio, conforme indicado pela Figura 5.

    18. D um clique em OK. Voc estar de volta ao Assistente de componentes do Windows.

    Figura 5: Indicao do espao necessrio no disco rgido.

    19. D um clique no boto Avanar para ir para a prxima etapa do assistente.

    20. O Windows 2000 Server exibe uma janela indicando o progresso da Instalao.

    21. Caso o Windows 2000 Server no encontre os arquivos necessrios instalao, no Disco rgido, voc ser

    solicitado a inserir o CD de instalao do Windows, conforme indicado pela Figura 6.

    Figura 6: Mensagem solicitando o CD de instalao do Windows.

    22. Insira o CD e d um clique em OK. O Windows 2000 inicia o processo de cpia dos arquivos.

    23. Depois de concluda a cpia dos arquivos, o Assistente emite uma mensagem dizendo que o processo foi concludo

    com sucesso.

  • 8www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    24. D um clique no boto Concluir, para encerrar o Assistente.

    25. Voc estar de volta janela Adicionar ou remover programas. D um clique no boto Fechar para sair desta janela.

    26. Voc estar de volta ao Painel de controle. Feche o Painel de controle.

    27. Agora o IIS 5.0 est instalado e pronto para funcionar.

    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 endereo: http://localhost.

    3. Deve surgir uma janela conforme indicado na Figura 7.

    Figura 7: A pgina padro do IIS 5.0, logo aps a instalao.

    4. Esta a pgina inicial padro, do IIS 5.0, logo aps a instalao.

    5. Isto comprova que o IIS 5.0 foi instalado com sucesso.

    6. Feche o Internet Explorer.

    Agora que j temos o IIS 5.0 instalado e testado, temos que partir para a instalao do Microsoft .NET Framework

    SDK. Este Framework instala todos os componentes necessrios para que possamos criar pginas ASP.NET, utilizar

    a linguagem C#, alm de todos os demais componentes necessrios para o .NET. importante salientar que o Visual

  • 9INTRODUO

    www.juliobattisti.com.br

    Studio .NET no faz parte deste Framework. No Captulo 13 veremos a instalao e configurao do Visual Studio

    .NET. No momento em que este livro estava sendo escrito, o Visual Studio .NET encontrava-se em Beta 2.

    Como Obter e Instalar o Microsoft .NET Framework SDKPara que seja possvel a criao de pginas ASP.NET no IIS 5.0 precisamos instalar o Microsoft .NET Framework

    SDK. O mesmo pode ser obtido a partir do site da Microsoft, para Download, no seguinte endereo: http://

    msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-f iles/027/000/976/

    msdncompositedoc.xml&frame=true

    Neste endereo temos a opo de baixar um arquivo nico, com 126 MB ou dividir o download em diversas partes,

    conforme indicado na Figura 8.

    Figura 8: Pgina para download do Microsoft .NET Framework SDK.

  • 10www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Se voc optar pelo download do arquivo completo, aps concludo o download voc ter um arquivo chamado Setup.exe

    de 126 MB. Este o arquivo completo para a instalao do Framework .NET. Mais adiante veremos como proceder

    instalao deste arquivo.

    Para que o Microsoft .NET Framework SDK Beta 2 possa ser instalado com todas as suas funcionalidades, voc

    tambm precisa instalar MDAC Microsoft Data Access Components 2.7, Beta 2. Voc pode fazer o download desta

    verso do MDAC, no seguinte endereo: http://download.microsoft.com/download/platformsdk/MDAC2.7/1.0/

    NT45XP/EN-US/MDAC_TYP_dnld.exe

    O arquivo MDAC_TYP_dnld.exe possui cerca de 5MB. Antes de instalar o Framework .NET vamos instalar o MDAC

    2.7 Beta 2.

    Para instalar o MDAC 2.7 Beta 2 faa o seguinte:

    1. Localize o arquivo MDAC_TYP_dnld.exe que voc copiou anteriormente.

    2. D um clique duplo no mesmo para iniciar a instalao do MDAC 2.7.

    3. Surge uma tela com o contrato de licena de uso do MDAC 2.7. D um clique no boto Yes para aceitar o contrato.

    4. Surge uma tela perguntando em que pasta temporria voc deseja descompactar os arquivos. Digite C:\temp e d

    um clique no boto OK. Os arquivos necessrios sero descompactados na pasta C:\temp.

    5. V para a pasta C:\temp e execute o arquivo MDAC_TYP.EXE.

    6. Surge uma tela onde voc precisa marcar uma caixa de controle para concordar com o contrato de licena. Marque

    esta caixa de controle, conforme indicado na Figura 9 e d um clique no boto Avanar.

    Figura 9: Contrato de licena para o MDAC 2.7.

  • 11

    INTRODUO

    www.juliobattisti.com.br

    7. Se existir algun servio que ser atualizado, em uso, o assistente de instalao avisa e pede para que o respectivo

    servio seja parado. Para parar um servio voc pode utilizar o comando Iniciar -> Programas -> Ferramentas

    Administrativas -> Servios.

    8. Aps a verificao dos servios ser exibida uma tela informando que o MDAC 2.7 ser instalado. D um clique

    no boto Concluir e a instalao ser iniciada.

    9. Dentro de poucos minutos surge uma tela informando que o MDAC 2.7 foi instalado com sucesso. D um clique

    no boto Close, para fechar esta tela.

    Aps a instalao do MDAC 2.7, estamos prontos para iniciar a instalao do Microsoft .NET Framework SDK.

    Para instalar o Microsoft .NET Framework SDK faa o seguinte:

    1. Localize o arquivo Setup.exe que voc copiou anteriormente.

    2. D um clique duplo no mesmo para iniciar a instalao.

    3. Surge uma tela perguntando se voc deseja iniciar a instalao. D um clique no boto Sim para seguir adiante.

    4. O programa de instalao iniciar a extrao dos arquivos necessrios instalao. Este procedimento demora

    alguns minutos.

    5. Encerrada e extrao, surgir a tela inicial do assistente de instalao. D um clique no boto Next para seguir

    para a prxima etapa.

    6. Na segunda etapa voc precisa marcar a opo I accept the agreement, para aceitar o contrato de licena do

    Framework .NET e seguir adiante.

    7. Marque a opo I accept the agreement e d um clique no boto Next para ir para a prxima etapa.

    8. Nesta etapa temos a opo the instalar o SDK (Software Development Kit) que o Framework .NET propriamente

    dito, os exemplos. Observe que a opo para instalar a Documentao j vem marcada e no pode ser desmarcada.

    9. Por padro todas as opes j vm marcadas. Vamos aceitar este padro. D um clique no boto Next para ir para

    a prxima etapa.

    10. Nesta etapa devemos def inir a pasta de destino. Por padro selecionada a pasta: \Arquivos de

    programas\Microsoft.NET\FrameworkSDK\ do drive onde est instalado o Windows 2000. Vamos aceitar a pasta

    sugerida pelo Setup. D um clique no boto Next para ir para a prxima etapa.

    11. Nesta etapa iniciada a instalao dos diversos componentes. Este processo demora alguns minutos. medida

    que os componentes vo sendo instalados, o andamento da instalao vai sendo exibido, conforme indicado na

    Figura 10.

    12. No final surge uma mensagem dizendo que a instalao foi completada com sucesso. D um clique no boto OK

    para fechar esta mensagem.

    Agora o Microsoft .NET Framework est instalado e pronto para ser utilizado. Com isso instalamos todo o Software

    necessrio para acompanhar os exemplos deste livro.

    Apenas para confirmar, podemos verificar se a instalao ocorreu com sucesso. Selecione o comando Iniciar ->

    Programas -> Microsoft .NET Framework SDK. Dentre as vrias opes exibidas selecione a opo Documentation.

  • 12www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Esta opo nos d acesso Documentao completa sobre a plataforma .NET. A verso sempre atualizada desta

    documentao pode ser encontrada no site MSDN da Microsoft, no seguinte endereo: http://msdn.microsoft.com/net

    Figura 10: Andamento da instalao.

    Configuraes do Servidor Utilizado Neste LivroPara criar os exemplos deste livro, utilizei um servidor com as seguintes configuraes:

    Pentium 450

    256 MB RAM

    Windows 2000 Server em Portugus

    IIS 5.0

    Microsoft .NET Framework SDK

    Nome do servidor: Servidor

    Endereo IP: 10.204.123.1

    Mscara de sub-rede: 255.255.255.0

    Domnio DNS: groza.com

    O endereo para acessar a pgina inicial do servidor o seguinte: http://www.groza.com ou http://localhost. Sempre

    que for feita referncia a um destes dois endereos, voc deve substituir pelo endereo do equipamento que voc est

    utilizando para acompanhar os exemplos deste livro.

  • 13

    INTRODUO

    www.juliobattisti.com.br

    Uma Viso Geral do Contedo do LivroO livro est dividido em trs partes, conforme descrito a seguir:

    Parte 1 Captulos 1 a 5: Nesta parte trataremos sobre o Framework .NET, o que o mesmo apresenta de novo,

    quais os seus principais componentes e como o mesmo pode tornar mais fcil, rpido e eficiente o

    desenvolvimento de aplicaes. Tambm veremos os fundamentos bsicos da nova linguagem C# (leia-se C

    Sharp).

    Parte 2 Captulos 6 a 12: Veremos o que o ASP.NET, quais as novas caractersticas e como criar pginas

    ASP.NET. Aprenderemos a conectar pginas com Bancos de Dados, utilizando ADO.NET e tambm a hierarquia

    de classes do Framework .NET.

    Parte 3 Captulo 13 em diante: Nesta parte final do livro veremos alguns exemplos de aplicativos utilizando

    ASP.NET bem como diversas tcnicas e dicas teis para a criao de aplicativos com ASP.NET. Vamos aprender

    a instalar o Visual Studio .NET e utiliz-lo para a criao e publicao de pginas ASP.NET. Veremos o que

    so e como criar Web Services. Tambm trataremos sobre segurana.

    Hora de ComearAgora que j temos o nosso computador preparado para acompanhar os exemplos deste livro, hora de iniciarmos o

    nosso aprendizado. Conforme veremos, o .NET representa uma mudana radical em relao aos modelos de programao

    anteriores. Aprender um novo modelo uma tarefa desafiadora. Lembram do programador COBOL para o Main-

    frame tendo que aprender programao estruturada e, depois, tendo que passar de programao estruturada para

    orientao a objetos?

    Se voc est justamente querendo aprender os conceitos deste novo modelo, ento este o livro certo. Apresentaremos

    as principais dvidas para aqueles que esto iniciando com o .NET e com ASP.NET.

    O cdigo-fonte para os exemplos em C# e para as pginas ASP.NET dos captulos deste livro esto disponveis para

    download no site da editora Axcel Books em www.axcel.com.br.

    Caso voc tenha sugestes sobre tpicos que gostaria de ver includos em futuras edies deste livro, ou queira relatar

    algum erro encontrado no livro, basta entrar em contato atravs do e-mail: [email protected].

    Desejo a todos uma boa leitura e tenho certeza de que este trabalho ir ajud-los no entendimento deste novo paradigma

    de programao, bem como ir ajud-los a, rapidamente, criar aplicaes Web baseadas em ASP.NET.

  • 14www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    P A R T E

    1O Framework .NET e a Linguagem C#

  • 15

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    C A P T U L O

    1Entendendo a Nova Propostada Microsoft o Framework

    .NET

    IntroduoNeste captulo apresentaremos o Framework .NET. Veremos qual a proposta da

    Microsoft com mais esta iniciativa.

    Iniciaremos o captulo com uma viso geral, de alto nvel, sobre as propostas do

    Framework .NET. Em outras palavras: A que veio e a que se prope o .NET?

    Vamos mostrar quais os principais componentes e quais solues pode nos oferecer

    o Framework .NET. Antes de entrarmos nos detalhes sobre cada elemento e das

    funes de cada elemento, importante entendermos como este novo modelo

    poder ajudar no desenvolvimento de Software e, em conseqncia, ajudar as

    empresas a terem sistemas melhores, mais rpidos, mais econmicos e mais

    sintonizados com as reais necessidades de cada empresa.

    Uma vez devidamente apresentado o Framework .NET, falaremos sobre os

    modelos atuais de desenvolvimento e utilizao de Software. Veremos quais os

    problemas do modelo atual e quais as solues propostas para estes problemas,

    pelo Framework .NET.

    Um novo paradigma de desenvolvimento tem que mostrar que capaz de re-

    solver, se no todos, pelo menos a grande maioria dos problemas dos modelos

    existentes. J passou o tempo, se que um dia esta prtica foi aceitvel, de mudar

    de tecnologia somente para estar atualizado com o mercado. Aprender novas

    tcnicas e ferramentas envolve tempo, um longo aprendizado e, principalmente,

    pesados investimentos financeiros. Para que uma empresa esteja disposta a fazer

    todos estes investimentos, o Framework .NET ter que demonstrar que realmente

    capaz de apresentar solues para os grandes problemas dos modelos atuais de

    desenvolvimento de software.

    Em seguida passaremos a apresentar os principais elementos que compem o

    Framework .NET:

    CLR Common Language Runtime

    Metadata

    Assemblies

    Linguagens habilitadas ao .NET

    Common Type System

    Interoperabilidade entre diferentes linguagens

    Web Services

    Os servidores .NET

    ADO.NET

  • 16www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Veremos, de uma maneira genrica, o papel de cada um destes componentes no Framework .NET. Estaremos estudando,

    detalhadamente, cada um destes itens nos demais captulos deste livro. Apresentamos uma viso geral de cada um

    deles, para que o leitor j possa ter uma idia do Framewok .NET e de seus principais componentes, bem como da

    funo de cada um.

    Este captulo, embora bastante terico, forma a base para o entendimento dos conceitos apresentados ao longo de todo

    o livro. Por isso importante que voc entenda os conceitos apresentados. A documentao atualizada, sobre os

    conceitos apresentados, pode ser consultada no seguinte endereo: http://msdn.microsoft.com/net.

    O Primeiro Contato com o Framework .NETDefinir exatamente o que o Framework .NET no uma tarefa das mais simples. Como no sou muito afeito a

    definies formais, vou mostrar qual a proposta do Framework .NET, quais os componentes e qual a funo de cada

    componente.

    Em primeiro lugar podemos afirmar que, com a iniciativa .NET, a Microsoft est mudando radicalmente o modelo de

    desenvolvimento e utilizao de software. No livro Introducing .NET, da editora Wrox (www.wrox.com), encontramos

    duas afirmaes interessantes sobre o Framework .NET:

    uma mudana to grande ou at maior do que a mudana do DOS para o Windows;

    O Framework .NET foi todo projetado j tendo a Internet como objetivo, diferente de outras plataformas que

    foram adaptadas para a Internet, medida que a rede mundial crescia de importncia.

    Apresentando o Conceito de Servios Web ServicesRealmente a mudana bastante grande. Programadores, analistas e gerentes de projeto precisaro de muito estudo e

    tempo para absorver os conceitos desta nova plataforma. Tambm verdade que, desde a sua concepo, o .NET foi

    projetado para a Internet. Em muitas publicaes especializadas aparece a seguinte afirmao: A iniciativa .NET a

    viso da Microsoft de um mundo onde o Software se transforma em servios, na verdade pequenos componentes que

    podem ser utilizados por qualquer aplicao.

    Um software de uma empresa brasileira pode utilizar um servio que est residente em um servidor de uma empresa

    do Japo, desde que tenha permisses para isso. Este servio pode oferecer, por exemplo, a funcionalidade para

    validao de uma transao via carto de crdito. Um dispositivo mvel, como um celular WAP ou um Handled,

    pode utilzar um servio de cotao de aes de um servidor da bolsa de valores de Londres. E como todos estes

    componentes fazem para se comunicar? Evidentemente que atravs da Internet. Por isso a Internet como ponto

    principal do projeto .NET.

    Conforme veremos mais adiante, estes servios, que podem ser acessados via Internet ou atravs de qualquer Intranet,

    so chamados de Web Services.

  • 17

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    Ao invs de programas monolticos, em que toda a funcionalidade necessria faz parte do prprio programa,

    construiremos programas como se fosse um jogo de montar. As diversas funcionalidades necessrias ao programa

    podem ser oferecidas atravs do acesso a servios j implementados. Na Figura 1.1 temos uma pequena ilustrao

    deste conceito.

    No site da empresa www.minhaempresa.com, criamos, por exemplo, uma pgina ASP.NET para venda de livros. O

    preo dos livros est em dlares e deve ser convertido para a moeda do pas do cliente, no momento da compra. No

    exemplo da Figura 1.1, a pgina ASP.NET utiliza um Web Service do servidor www.cotacoes.com, para obter a

    cotao atualizada do dlar em relao moeda do pas do cliente. A pgina ASP.NET recebe esta informao, faz os

    clculos necessrios e exibe para o cliente. O prximo passo efetivar a venda. Agora o cliente digita o nmero do seu

    carto de crdito. Para validar o nmero do carto de crdito do cliente, acessado um outro Web Service, o qual est

    instalado no servidor www.validacao.com.

    Figura 1.1: Um programa que utiliza diversos servios.

    Com esta arquitetura, a criao de software fica bastante simplificada, uma vez que podemos agregar ao nosso programa

    funcionalidades disponibilizadas atravs de Web Services que esto instalados em qualquer servidor da Internet.

    Desta maneira somente precisamos criar o que especfico do nosso programa. Com isso estamos reaproveitando

    cdigo ou como preferem os puristas: reutilizando cdigo.

    Como diferentes Web Services, criados por diferentes empresas, podero se comunicar e trocar informaes? Esta

    comunicao possvel, porque todo programa criado para a plataforma .NET utiliza um padro para troca de

    informaes. No caso temos dois padres:

  • 18www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Para o formato dos dados, o Framework .NET utiliza XML Extensible Markup Language. Conforme veremos

    mais adiante, o XML vem ganhando fora como um padro para troca de informaes na Internet, principalmente

    para troca de informaes entre empresas em sites de Comrcio Eletrnico.

    Como protocolo de transporte, o Framework .NET utiliza o SOAP Single Object Access Protocol. Com

    SOAP podemos fazer com que toda a comunicao entre diferentes Web Services e demais componentes de

    um programa seja feita atravs do protocolo padro da Internet que o HTTP. O SOAP no um protocolo

    criado pela Microsoft para ser utilizado pelo .NET. O SOAP um padro da indstria, sendo utilizado por

    produtos de diversas empresas, como IBM, Sun e ORACLE.

    Pode parecer que no existe nada de novo nesta abordagem, pois tecnologias para criar programas a partir de componentes

    prontos j existem h um bom tempo: COM+, CORBA, etc. Porm a grande vantagem dos Web Services, no Frame-

    work .NET, que os mesmos podem ser acessados, facilmente, atravs da utilizao de um protocolo padro: SOAP e

    trocando informaes em um formato padro: XML. Esta abordagem torna a criao e utilizao dos Web Services

    uma tarefa muito mais simples do que, por exemplo, a criao de componentes COM+ ou CORBA, os quais utilizam

    formatos de dados e protocolos de comunicao proprietrios.

    Falaremos mais sobre Web Services e tambm aprenderemos a cri-los, mais adiante neste livro.

    Apresentando o CLR Common Language RuntimeO CLR um ambiente de execuo, e poderamos at dizer que o Corao do .NET, o qual d suporte a todas as

    linguagens de programao habilitadas para o .NET. Ao instalarmos o Microsoft .NET Framework SDK, temos

    disponveis as seguintes linguagens:

    VB.NET (Visual Basic .NET)

    C# (leia-se C Sharp)

    ASP.NET

    Jscript.NET

    O Runtime (ambiente de execuo) o ambiente que d suporte execuo das aplicaes .NET. Quando um programa

    .NET executado, todo o controle do mesmo feito atravs do CLR.

    Para aplicaes anteriores, desenvolvidas utilizando COM/COM+, o programador era responsvel por inserir no cdigo

    do programa uma srie de funes necessrias ao correto funcionamento do mesmo, como por exemplo o Gerenciamento

    de memria, criao e destruio de objetos. A codificao destas funes no era uma tarefa fcil, o que exigia muito

    tempo do programador, alm de conhecimentos avanados. Com aplicaes .NET, todas estas funes so executadas

    pelo CLR, ou seja, o programador no precisa preocupar-se com as mesmas. Desta forma somente precisamos nos

    preocupar com a funcionalidade do nosso programa, o que poupa tempo e agiliza o processo de desenvolvimento.

    As aplicaes criadas em uma das linguagens habilitadas para o .NET (como VB.NET, C# ou ASP.NET), ao serem

    compiladas, geram um cdigo intermedirio conhecido como MSIL Microsoft Intermediate Language, o qual

    abreviado simplesmente como IL Intermediate Language. Este cdigo que executado pelo CRL. Vamos analisar

    o diagrama apresentado na Figura 1.2:

  • 19

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    Figura 1.2: O ambiente de execuo do CLR.

    A partir da Figura 1.2 temos algumas observaes importantes:

    Para que uma linguagem seja habilitada ao .NET, o seu compilador deve ser capaz de gerar cdigo MSIL.

    O Cdigo MSIL gerado executado pelo CRL.

    A prpria Microsoft no nega que a idia bastante semelhante ao ambiente de execuo para aplicaes desenvolvidas

    em Java, onde temos um ambiente de execuo comum a Mquina Virtual Java, a qual executa byte code, que o

    cdigo gerado pelas aplicaes Java.

    Todas as linguagens habilitadas ao .NET tm a sua disposio um rico conjunto de classes e objetos, os quais fornecem

    desde conexo com banco de dados at funes mais especficas, como funes grficas, de escrita em disco, etc. Este

    conjunto de classes e objetos conhecido como .NET Framework class library.

    Todo cdigo habilitado a rodar no CLR, ou seja, que pode ser compilado para MSIL conhecido como managed

    code ou cdigo gerenciado. Cdigo antigo, como por exemplo COM ou COM+, os quais no esto habilitados para

    rodar sob controle do CLR so chamados de unmanaged code ou cdigo no gerenciado. Veremos mais detalhes a

    respeito destas definies no Captulo 2, onde trataremos o CLR em mais detalhes.

    .NET Framework Class LibraryEste o segundo elemento fundamental do Framework .NET. A .NET Framework class library (biblioteca de classes do

    Framework .NET), como o prprio nome sugere, uma coleo de classes ou tipos completamente integrada com o

    ambiente de execuo CLR. Quando falamos em um conjunto de Classes, estamos utilizando o conceito originado no

    modelo de Programao Orientado a Objetos. Conforme veremos no decorrer deste livro, o Framework .NET fortemente

    baseado nos conceitos de orientao a objetos, principalmente nos conceitos de Classes, Herana e Polimorfismo.

  • 20www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Os programas criados em qualquer linguagem habilitada ao .NET podem utilizar este conjunto de tipos e classes. Por

    exemplo, existe uma classe chamada System.Data, a qual oferece uma srie de objetos e mtodos para acesso s mais

    variadas fontes de dados. Vamos a um exemplo mais especfico: existe uma classe chamada System.SqlCliente (na

    verso Beta 1 existia uma classe chamada System.SQL, que foi descontinuada na verso Beta 2), a qual fornece uma

    srie de mtodos para acesso nativo aos dados de um servidor Microsoft SQL Server. Podemos utilizar a classe

    System.SqlCliente em um programa feito em VB.NET, C#, em uma pgina ASP.NET ou qualquer linguagem que

    venha a ser habilitada para o .NET.

    Ao fornecer um conjunto de classes e tipos, estamos facilitando a vida do programador, uma vez que grande parte da

    funcionalidade necessria fornecida diretamente pelo Framework .NET e, o principal, utilizada de uma maneira

    padronizada, pois a maneira de utilizar uma classe da biblioteca de classes do .NET a mesma, independente da linguagem.

    So muitas as funes disponibilizadas pela biblioteca de classes do .NET, conforme veremos no decorrer deste livro.

    Apenas a ttulo de exemplo, vamos citar algumas funes disponibilizadas:

    NOTA: J existemdiversos fabricantestrabalhando parahabilitar suas linguagensde desenvolvimento parao Framework .NET.

    Manipulao de String

    Conectividade com banco de dados

    Acesso a arquivos

    Segurana

    Manipulao de dados

    Na Figura 1.3, temos uma viso geral dos principais elementos que formam o Framework .NET.

    Figura 1.3: Principais elementos do Framework .NET.

  • 21

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    Um Pequeno Parnteses Para falar mal dos Modelos AnterioresVamos falar um pouco sobre o modelo de desenvolvimento atual, mais especificamente sobre o modelo baseado em

    COM/COM+ da Microsoft. Para falar sobre este assunto vamos fazer um histrico sobre o desenvolvimento, desde os

    bons e velhos tempos do MS-DOS.

    Ai que Saudade do MS-DOS???No, no saudade da poca do MS-DOS, apenas uma breve recapitulao. Para desenvolver aplicaes para o

    ambiente MS-DOS, utilizamos diversas linguagens de programao, tais como:

    Clipper

    Pascal Turbo Pascal

    Basic

    C Turbo C

    C++

    Um programa para o ambiente MS-DOS, na grande maioria das vezes, era composto por um arquivo executvel (.exe).

    Os demais arquivos necessrios ao funcionamento do programa, tais como imagens grficas ou arquivos de dados,

    eram salvos, normalmente, no mesmo diretrio (na poca do MS-DOS no falvamos em Pastas) do arquivo executvel

    e tudo funcionava perfeitamente bem.

    Para instalar o programa em outro computador, bastava copiar o diretrio do programa e pronto, nada mais precisava

    ser feito. Podemos ver que o processo de instalao era bastante simplificado, mas em contrapartida o desenvolvimento

    era todo manual e as funcionalidades bastante limitadas. As redes locais ainda no eram realidade e a grande maioria

    dos programas era feito para trabalhar em um nico computador, acessando dados locais.

    Comunicao entre programas, reaproveitamento de cdigo e acesso via rede eram coisas raras ou inexistentes. Para

    as necessidades da poca, era um modelo plenamente satisfatrio. A maior prova disso que, ainda hoje, facilmente

    encontramos programas feitos em Clipper, para o ambiente MS-DOS, rodando em pequenos estabelecimentos, dando

    suporte a todas as operaes dirias. Tente voc propor que estas pessoas substituam seus programas em Clipper, que

    atendam perfeitamente s necessidades destes pequenos estabelecimentos, por programas para Windows com inter-

    face grfica. Com certeza voc receber um sonoro NO.

    Porm logo as redes comeariam a invadir as empresas, os programas a tornar-se mais complexos. Com o advento das

    redes e do sucesso dos PCs, mais e mais pessoas comearam a utilizar computadores. A velha interface a caracter do

    MS-DOS no atendia mais as necessidades. Neste momento que o Windows comea a surgir no mercado.

  • 22www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Prazer. Eu Sou o Windows!Com a chegada do Windows tivemos a popularizao das interfaces grficas e de termos como: mouse, cone, atalho

    e janelas. As ferramentas para desenvolvimento no ambiente Windows custaram a chegar. No incio, a programao

    tinha que ser feita em linguagem C, utilizando as APIs (Application Program Interface) do Windows.

    Com o lanamento do Visual Basic 1.0 teve incio a era das ferramentas grficas para desenvolvimento de programas

    para o Ambiente Windows.

    Com o Windows j passou a existir o conceito de Instalar o programa. A instalao do programa no se limitava a uma

    simples cpia de arquivos. Ao instalar um programa no Windows, o mesmo gravava uma srie de informaes de

    configurao: no Windows 3.x em arquivos .ini e no Windows 9x na Registry do Sistema Operacional. Alm destas

    informaes de configurao, partes do programa eram disponibilizadas no formato de arquivos .DLL (Dynamic Link

    Library). Falando assim parecia um modelo, digamos, bastante elegante. Um local centralizado para informaes

    sobre configurao e o programa dividido em partes menores, que no conjunto forneciam a funcionalidade do programa.

    Porm o modelo de programao para o Windows comeou a apresentar uma srie de inconvenientes. Vamos falar

    destes inconvenientes, atravs de exemplos:

    Se alguma das configuraes, necessrias ao funcionamento do programa, fosse alterada, o programa deixava

    de funcionar. Isto gerava uma chamada ao pessoal de suporte que, na maioria das vezes, somente conseguia

    resolver a situao reinstalando o programa.

    Os arquivos .DLL poderiam ser utilizados por mais do que um programa. Pode acontecer uma situao em que

    um programa que esteja sendo instalado substitua uma determinada .DLL por uma verso mais nova do que a

    verso da .DLL atualmente existente no sistema. O problema que podem existir programas que dependam da

    verso mais antiga. Nesta situao os programas que dependem da verso mais antiga simplesmente deixaro

    de funcionar. Pode tambm acontecer o contrrio, ou seja, um programa que est sendo instalado substitui uma

    .DLL por uma verso mais antiga, fazendo com que outros programas deixem de funcionar. Em situaes mais

    crticas poderia acontecer de o programa que est sendo instalado substituir uma .DLL vital para o Windows.

    Nestas situaes todo o sistema deixaria de funcionar e, em alguns casos, somente uma reinstalao poderia

    resolver o problema.

    Vejam que o que parecia uma boa soluo acabou se mostrando um verdadeiro pesadelo para gerenciar e manter

    em funcionamento. Nesta poca surge, inclusive, a expresso DLL Hell, que poderamos traduzir por: O

    Inferno das DLLs.

    Cada vez que um programa fosse alterado, o mesmo precisaria ser reinstalado em todos os computadores onde

    fosse necessria a nova verso. E se, ao fazer a atualizao para a nova verso, fosse substituda alguma .DLL

    necessria ao funcionamento de algum outro programa? Novos problemas para o pessoal do suporte. Vejam

    que este modelo gera uma grande carga de suporte, o que encarece muito a manuteno em funcionamento de

    uma estao de trabalho da empresa.

  • 23

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    Redes e Internet Mais Problemas (ou Solues) Vista!Com o advento das redes como uma realidade nas empresas e com a exploso da Internet como uma plataforma vivel

    para fazer negcios, os modelos de desenvolvimento de aplicaes sofreram profundas mudanas.

    Primeiro, com as redes, foi a poca da febre em descentralizar as estruturas de TI e migrar para o modelo Cliente/

    Servidor, baseado em redes locais. Neste modelo, tambm conhecido como modelo de duas camadas, temos um ou

    mais equipamentos de maior capacidade de processamento, atuando como Servidores. Nas estaes de trabalho dos

    usurios, conhecidas como clientes, so instalados programas, que fazem acesso a recursos residentes nos servidores.

    O exemplo mais tpico de aplicao Cliente/Servidor seria uma aplicao desenvolvida em Visual Basic ou Delphi, a

    qual acessa dados de um servidor SQL Server 2000, instalado em um servidor da rede. Na Figura 1.4, temos uma

    viso geral do modelo Cliente/Servidor.

    Vamos falar um pouco mais sobre o modelo de duas camadas.

    Figura 1.4: O modelo Cliente/Servidor.

    Modelo em 2 CamadasNo incio da utilizao do modelo Cliente/Servidor, as aplicaes foram desenvolvidas utilizando-se um modelo de

    desenvolvimento em duas camadas. Neste modelo, um programa, normalmente desenvolvido em um ambiente de

    desenvolvimento, como o Visual Basic, Delphi ou Power Builder, instalado em cada estao de trabalho Cliente.

    Este programa acessa dados em um servidor de banco de dados, conforme ilustrado na Figura 1.5.

    Neste modelo, temos um programa que instalado no Cliente. Programa esse que faz acesso ao banco de dados que

    fica residente no Servidor de Banco de dados. Na maioria dos casos, a mquina do cliente um PC rodando Windows,

    e a aplicao Cliente desenvolvida utilizando-se um dos ambientes conhecidos, conforme citado anteriormente.

  • 24www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Figura 1.5: O Modelo de desenvolvimento em duas camadas.

    Sendo a aplicao cliente um programa para Windows (na grande maioria dos casos), a mesma deve ser instalada em

    cada uma das estaes de trabalho da rede. o processo de instalao normal, para qualquer aplicao Windows. No

    modelo de 2 camadas, a aplicao Cliente responsvel pelas seguintes funes:

    Apresentao: O cdigo que gera a interface visvel do programa faz parte da aplicao cliente. Todos os

    formulrios, menus e demais elementos visuais esto contidos no cdigo da aplicao cliente. Caso sejam

    necessrias alteraes na interface do programa, faz-se necessria a gerao de uma nova verso do programa,

    e todas as estaes de trabalho que possuem a verso anterior devem receber a nova verso, para que o usurio

    possa ter acesso s alteraes da interface. A que comeam a surgir os problemas no modelo em 2 camadas:

    uma simples alterao de interface suficiente para gerar a necessidade de atualizar a aplicao, em centenas

    ou milhares de estaes de trabalho. O gerenciamento desta tarefa algo extremamente complexo e oneroso

    financeiramente.

    Lgica do Negcio: As regras que definem a maneira como os dados sero acessados e processados so

    conhecidas como Lgica do Negcio. Fazem parte das Regras do Negcio, desde funes simples de validao

    da entrada de dados, como o clculo do dgito verificador de um CPF, at funes mais complexas, como

    descontos escalonados para os maiores clientes, de acordo com o volume da compra. Questes relativas a

    legislao fiscal e escrita contbil tambm fazem parte da Lgica do Negcio. Por exemplo, um programa

    para gerncia de Recursos Humanos, desenvolvido para a legislao dos EUA, no pode ser utilizado, sem

    modificaes, por uma empresa brasileira. Isso acontece porque a legislao dos EUA diferente da legislao

    brasileira. Em sntese, as regras para o sistema de recursos humanos so diferentes. Alteraes nas regras do

    negcio so bastante freqentes, ainda mais com as repetidas mudanas na legislao do nosso pas. Com isso,

    faz-se necessria a gerao de uma nova verso do programa, cada vez que uma determinada regra muda, ou

    quando regras forem acrescentadas ou retiradas. Desta forma, todas as estaes de trabalho que possuem a

    verso anterior devem receber a nova verso, para que o usurio possa ter acesso s alteraes. Agora temos

    mais um srio problema no modelo de 2 camadas: qualquer alterao nas regras do negcio suficiente para

  • 25

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    gerar a necessidade de atualizar a aplicao, em centenas ou milhares de computadores. O que j era complicado

    piorou um pouco mais.

    Com a evoluo do mercado e as alteraes da legislao, mudanas nas regras do negcio so bastante freqentes.

    Com isso, o modelo de duas camadas demonstrou-se de difcil manuteno e gerenciamento, alm de apresentar um

    TCO Total Cost Ownership (Custo Total de Propriedade) bastante elevado.

    A outra camada, no modelo de 2 camadas, o Banco de dados, o qual fica armazenado no Servidor de banco de dados.

    Sempre que um determinado modelo apresenta problemas, aparentemente intransponveis, a indstria de informtica

    parte para a criao de novos modelos. Em busca de solues para os problemas do modelo de duas camadas que

    surgiu a proposta do modelo de 3 camadas, conforme analisaremos a seguir.

    Aplicaes em 3 CamadasComo uma evoluo do modelo de 2 camadas, surge o modelo de trs camadas. A idia bsica do modelo de 3

    camadas retirar as Regras do Negcio, da aplicao Cliente e centraliz-las em um determinado ponto, o qual

    chamado de Servidor de Aplicaes. O acesso ao banco de dados feito atravs das regras contidas no Servidor de

    Aplicaes. Ao centralizar as Regras do Negcio em um nico ponto, fica muito mais fcil a atualizao das mesmas.

    A Figura 1.6 nos d uma viso geral do modelo em 3 camadas:

    Figura 1.6: O modelo de desenvolvimento em trs camadas.

    Todo o acesso do cliente, aos dados do servidor de Banco de dados, feito de acordo com as regras contidas no

    Servidor de Aplicaes. O cliente no tem acesso aos dados do servidor de Banco de dados, sem antes passar pelo

    servidor de aplicaes. Com isso, as trs camadas so as seguintes:

  • 26www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    Apresentao: Continua no programa instalado no cliente. Alteraes na Interface do programa ainda iro

    gerar a necessidade de atualizar a aplicao em todas as estaes de trabalho, onde a aplicao estiver sendo

    utilizada. Porm cabe ressaltar que alteraes na interface so menos freqentes do que alteraes nas regras

    do negcio.

    Lgica: So as regras do negcio, as quais determinam de que maneira os dados sero utilizados e manipulados.

    Esta camada foi deslocada para o Servidor de Aplicaes. Desta maneira, quando uma regra do negcio for

    alterada, basta atualiz-la no Servidor de Aplicaes. Aps a atualizao, todos os usurios passaro a ter

    acesso nova verso, sem que seja necessrio reinstalar o programa em cada um dos computadores da rede.

    Vejam que, ao centralizar as regras do negcio em um Servidor de Aplicaes, estamos facilitando a tarefa de

    manter a aplicao atualizada. As coisas esto comeando a melhorar.

    Dados: Nesta camada temos o servidor de Banco de dados, no qual reside toda a informao necessria para o

    funcionamento da aplicao. Cabe reforar que os dados somente so acessados atravs do Servidor de

    Aplicao, e no diretamente pela aplicao cliente.

    Com a introduo da camada de Lgica, resolvemos o problema de termos que atualizar a aplicao, em centenas ou

    milhares de estaes de trabalho, toda vez que uma regra do negcio for alterada. Porm continuamos com o problema

    de atualizao da interface da aplicao, cada vez que sejam necessrias mudanas na Interface. Por isso que surgiram

    os modelos de n-camadas.

    No prximo tpico, iremos falar um pouco sobre o modelo de 4 camadas.

    Aplicaes em Quatro CamadasComo uma evoluo do modelo de trs camadas, surge o modelo de quatro camadas. A idia bsica do modelo de 4

    camadas retirar a apresentao do cliente e centraliz-la em um determinado ponto, o qual na maioria dos casos um

    servidor Web. Com isso o prprio Cliente deixa de existir como um programa que precisa ser instalado em cada

    computador da rede. O acesso aplicao, feito atravs de um Navegador, como, por exemplo, o Internet Explorer

    ou o Netscape Navigator. A Figura 1.7 nos d uma viso geral do modelo em quatro camadas.

    Para acessar a aplicao, o cliente acessa o endereo da aplicao, utilizando o seu navegador, como no exemplo:

    http://intranet.minhaempresa.com/sistemas/vendas.aspx.

    Todo o acesso do cliente ao Banco de dados feito de acordo com as regras contidas no Servidor de aplicaes. O

    cliente no tem acesso ao Banco de dados, sem antes passar pelo Servidor de aplicaes. Com isso temos as seguintes

    camadas:

    Cliente: Neste caso o Cliente o Navegador utilizado pelo usurio, quer seja o Internet Explorer, quer seja o

    Netscape Navigator, ou outro navegador qualquer.

    Apresentao: Passa para o Servidor Web. A interface pode ser composta de pginas HTML, ASP, PHP, Flash

    ou qualquer outra tecnologia capaz de gerar contedo para o navegador. Com isso alteraes na interface da

    aplicao so feitas diretamente no servidor Web, sendo que estas alteraes estaro, automaticamente,

    disponveis para todos os Clientes. Com este modelo no existe a necessidade de reinstalar a aplicao em

  • 27

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    todos os computadores da rede. Fica muito mais fcil garantir que todos esto tendo acesso verso mais

    atualizada da aplicao. A nica coisa que o cliente precisa ter instalado na sua mquina o navegador.

    Figura 1.7: O modelo de desenvolvimento em quatro camadas.

    Lgica: So as regras do negcio, as quais determinam de que maneira os dados sero utilizados. Esta camada

    est no Servidor de Aplicaes. Desta maneira, quando uma regra do negcio for alterada, basta atualiz-la no

    Servidor de Aplicaes. Aps a atualizao, todos os usurios passaro a ter acesso nova verso, sem que

    seja necessrio reinstalar o programa em cada estao de trabalho da rede. Vejam que, ao centralizar as regras

    do negcio em um Servidor de Aplicaes, estamos facilitando a tarefa de manter a aplicao atualizada.

    Dados: Nesta camada temos o servidor de Banco de dados, no qual reside toda a informao necessria para o

    funcionamento da aplicao.

    Com o deslocamento da camada de apresentao para um Servidor Web, resolvemos o problema de termos que

    atualizar a aplicao, em centenas ou milhares de computadores, cada vez que uma interface precisar de alteraes.

    Neste ponto a atualizao das aplicaes uma tarefa mais gerencivel, muito diferente do que acontecia no caso do

    modelo em 2 camadas.

    Os servidores de Aplicao, Web e banco de dados no precisam necessariamente ser servidores separados, isto ,

    uma mquina para fazer o papel de cada um dos servidores. O conceito de servidor de Aplicao, servidor Web ou

    servidor de Banco de dados um conceito relacionado com a funo que o servidor desempenha. Podemos ter, em um

    mesmo equipamento, um Servidor de aplicaes, um servidor Web e um servidor de Banco de dados. Claro que

    questes de desempenho devem ser levadas em considerao.

    Tambm podemos ter a funcionalidade do Servidor de Aplicaes distribuda atravs de vrios servidores, com cada

    servidor tendo alguns componentes que formam parte das funcionalidades da aplicao. Este modelo onde temos

  • 28www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    componentes em diversos equipamentos conhecido como Modelo de Aplicaes Distribudas. Tambm podemos

    colocar os componentes em mais do que um servidor para obtermos um melhor desempenho, ou redundncia, no caso

    de um servidor falhar.

    Questes a Considerarmos nos Modelos de 3ou Mais Camadas Utilizados AtualmenteMuitas so as vantagens dos modelos de 3 ou mais camadas, em relao facilidade de gerenciamento e atualizao

    das aplicaes. Mas, se tudo funciona to bem, por que precisamos de um novo modelo de programao leia-se

    Framework .NET?

    Para responder a pergunta anterior, vamos continuar colocando alguns problemas com o modelo de desenvolvimento

    em uso atualmente, que o modelo de n-camadas, com aplicaes que utilizam componentes distribudos atravs de

    diversos servidores: Servidor Web, de aplicaes, de Banco de dados, etc.

    O modelo de programao atual, para o ambiente Windows, fortemente baseado no conceito de componentes. No

    exemplo do modelo de 4 camadas, quando uma aplicao cliente acessa uma regra de negcio, esta regra de negcio

    implementada na forma de um componente COM/COM+. A regra de negcio pode utilizar um outro componente

    para fazer a conexo com o Banco de dados e retornar os dados solicitados pela aplicao. Para que os diversos

    componentes possam comunicar-se e trocar informaes, os mesmos precisam de um padro para a troca de mensagens.

    O padro determina a estrutura interna do componente e a maneira como cada componente expe suas funcionalidades.

    O padro para o ambiente Windows chamado, a partir do Windows 2000, de COM+. Para o Windows NT 4.0 e

    verses anteriores, tnhamos o COM/DCOM trabalhando em conjunto com o MTS Microsoft Transaction Server.

    Mas se existe um padro para troca de mensagens qual o problema? Acontece que a implementao de componentes

    utilizando COM/COM+ no das tarefas mais simples. Se utilizarmos linguagens como o Visual C++, a criao e

    disponibilizao de componentes uma tarefa que exige programadores altamente especializados. J com ferramentas

    como o Visual Basic e Delphi, a criao de componentes para o padro COM+ um pouco mais fcil. Porm a grande

    dificuldade fazer com que componentes implementados em diferentes linguagens sejam capazes de trabalhar em

    conjunto e trocar mensagens entre si.

    Agora imagine as dificuldades em um ambiente em que devemos criar aplicaes para a Internet, onde deve existir

    uma maneira padronizada para que os diversos componentes sejam capazes de se comunicar. A Microsoft, com a sua

    iniciativa DNA, procurou disponibilizar informaes para que seja possvel tirar o mximo do modelo COM+, na

    criao de aplicaes em n-camadas para a Internet. Porm a prpria Microsoft reconheceu as limitaes e dificuldades

    deste modelo, ao propor uma nova revoluo nos mtodos e prticas de desenvolvimento, revoluo essa que atende

    pelo singelo nome de .NET.

    Outro fator importante a considerar que o padro COM/COM+ um padro proprietrio, desenvolvido pela Microsoft.

    Como fazer com que um padro proprietrio possa ser utilizado, sem maiores problemas para aplicaes distribudas

    na Internet? Fica muito difcil, para no dizer impraticvel. J com o .NET, conforme comentamos anteriormente,

    utiliza-se padres no proprietrios, como XML para os dados e SOAP sobre HTTP como protocolo de transporte.

    Desta forma, a comunicao entre Web Services acontece de uma maneira fcil, sem maiores problemas.

  • 29

    CAPTULO 1: ENTENDENDO A NOVA PROPOSTA DA MICROSOFT O FRAMEWORK .NET

    www.juliobattisti.com.br

    Para que um componente COM/COM+ possa ser utilizado, o mesmo precisa ser registrado no servidor que ir

    disponibilizar o componente para isso. Ao registrar o componente, so gravadas informaes sobre o mesmo, na

    registry do Sistema Operacional. O programador precisa preocupar-se em garantir que o componente seja registrado

    corretamente, pois, caso contrrio, o mesmo no poder ser acessado. J os servios do .NET no necessitam de

    registro, sendo que toda a informao necessria para que os mesmos funcionem est contida no prprio servio, no

    formato de metadados Metadata. Mais adiante falaremos um pouco mais sobre Metadata.

    Com componentes COM/COM+, o programador precisa preocupar-se em carregar o componente na memria, retirar

    o componente da memria quando o mesmo no for mais utilizado e uma srie de outras funes necessrias ao

    funcionamento do componente. Com o .NET, todas estas preocupaes foram transferidas para o Framework .NET.

    Isto faz com que o programador somente tenha que codificar a funcionalidade do servio que est sendo desenvolvido,

    a parte mais, digamos assim, chata, ser de responsabilidade do Framework .NET, mais especificamente do CLR.

    Isso aumenta a produtividade do programador e evita erros mais graves, os quais normalmente fazem com que o

    componente no funcione corretamente.

    J apresentamos os principais problemas do modelo atual; no restante deste captulo veremos os demais elementos

    que compem o Framework .NET e como cada um destes elementos procura solucionar problemas que os modelos

    anteriores no foram capazes de resolver.

    De Volta ao Framework .NET: os Demais ElementosAgora vamos falar um pouco mais sobre os diversos aspectos do Framework .NET e como cada um destes aspectos se

    prope a solucionar problemas do modelo atual de desenvolvimento.

    Linguagens Habilitadas ao .NETO que significa uma linguagem ser habilitada ao .NET?

    Significa que a linguagem capaz de gerar, como resultado da compilao, cdigo MSIL. Uma vez gerado o cdigo

    MSIL, o mesmo executado sob o controle do CLR. Ou seja, para o Framework .NET, uma vez gerado o cdigo

    MSIL, no importa a partir de qual linguagem o mesmo foi gerado, pois a maneira como o mesmo executado

    sempre a mesma.

    Juntamente com o Framework .NET, a Microsoft disponibiliza as seguintes linguagens:

    Visual Basic .NET (VB.NET)

    C++

    C#

    Podemos criar nossos programas em qualquer uma destas linguagens. Ao compilarmos o programa, o resultado ser

    cdigo MSIL, o qual passa a ser executado pelo CLR. Quando a Inprise lanar o Delphi habilitado ao .NET, teremos

  • 30www.juliobattisti.com.br

    ASP.NET: UMA REVOLUO NA CONSTRUO DE SITES E APLICAES WEB

    a opo de compilar um programa Delphi para gerar cdigo MSIL. Uma vez gerado o cdigo MSIL, para o CLR no

    importa em qual linguagem o programa foi codificado.

    Mais adiante, nos captulos 3, 4 e 5 estaremos apresentando uma introduo aos principais elementos da linguagem

    C#. Nos captulos restantes do livro, estaremos utilizando a linguagem C# para a criao de pginas ASP.NET.

    Um Rpida Apresentao do VB.NETCom exceo do C# que uma nova linguagem, o VB.NET a linguagem que mais sofreu modificaes em relao

    s verses anteriores. Foram introduzidas algumas caractersticas h muito tempo esperadas, tais como:

    Foram adicionadas mais caracterstica de orientao a objetos, tais como herana verdadeira, construtores

    parametrizados e overriding de mtodos e propriedades.

    Mais facilidades para o desenvolvimento de aplicaes Internet. Por exemplo, para criar pginas ASP.NET, ao

    invs de VBScript utilizamos diretamente o VB.NET ou o C#.

    Herana visual: Esta uma caractersticas que os desenvolvedores do Delphi j tinham h algum tempo. Com

    o VB.NET podemos criar um formulrio com as caractersticas bsicas para todos os formulrios da aplicao.

    Quando precisarmos de um formulrio com caractersticas adicionais, podemos construir este novo formulrio

    baseado, isto , herdando as caractersticas do formulrio bsico; depois s adicionar os elementos necessrios.

    Ao criarmos o nosso formulrio, herdando do formulrio bsico, o formulrio que est sendo criado ter,

    automaticamente, todos os elementos do formulrio bsico. Alm dos elementos grficos, o cdigo para

    tratamento de eventos tambm herdado. O melhor