Você está na página 1de 1158
$ como Ae PROGRAMAR = Insusuylu au NET = ESTRUTURAS DE CONTROLE = METo00S E ARRAYS CLASSES / ABSTRACAO De DADOS Apresentando. = Wes SeRvices / ASP .NET = COLEGOES/ PROPRIEDADES ™ Banco DEDApos/ ADO .NET / SOL ™ PROGRAMACAO ORIENTADA A OBJETOS = HERAN cA /POUMORASNO = TRATAMENTO DE EXCECOES = Monracens /Eseacos n& None = Ingno Visual Srupi0 NET GUI) FormuLAnios 00 Wiupows = Cowrnotes De JANELA (Pensonauzan0s) = Mauputagho Dt Eventos /DELecaDoS * Formuvanios Da WEB | CoNTROLES WEB = XML /XSiT™/ DOM™ = INTRODUGAO A SOAP & BIZTALX™ 1 STRINGS /EXPRESSOES REGULARES ™ MULTIMIDIA / RECURSOS GRAFICOS / GD-+ * REDES CLIENTE-SeRVDOR 1 ESTRUTURAS DE DADOS = Anutvos E Fuuxos = MULTIPLAS LivHAS DE ExECUCKO = SOBRECARGADE OPERADORES = UNIcODE® ® ACESSIBILIDADE /VoIcEXML™ = Inrecracio 40 COM » De?unApoR po Visuat Srupio.NET = GenaooR ve Documenragio = Maiputacho pe Birs / CaRACTERES DEITEL DEITEL LISTFIELD NIETO Bitty YAEGER ZLATKINA PAGINA EM BRANCO # como PROGRAMAR H. M. Deitel & Associates, Ine. P.J. Deitel Deitel & Associates, Ine. J. Listfield T.R. Nieto Deitel & Associates, Ine, C. Yaeger Deitel & Associates, Ine, M. Zlatkina ‘Tradator: Joao Eduardo Nébrega Tortello Revisdo Técnica: Alvaro Rodrigues Antunes Mestre em Ciéncia da Computagto pela Universidade Federal do Rio Grande do Sul Desenvolvedor de sistemas de controles em Tempo Reel em C Cee Ct Consultor nacional e internacional ms ziti AN. pee ae ore —/ Sto Paulo Brasil Argentina Cotdmbia CostaRiea Chile Espanha Guatemala México Peru Porto Rico Venezuela ‘Tradugdo autorizada da odigho oF Deitel, Harvey; ‘Todos os dretos reservados, Nenhurna parte desta publicagdo poera ser reproduzi ‘ov transmitida de qualquer modo ou por qualquer oatro mio, clewnico ou mex incluindo fetoeSpis, ravage ou qualquer eutr tipo de sistema de armazeramentoe ras- inissio de informagio, sem prévia atorizacdo, por escrito, de Pearson Education éo Brasil. Divotnn Editorial toeh Mastine Braga Editora: Gisélia Costa Editora de Texto: Marileide Gomes Preparacdo: Barbara E. Benevides Arruda Revisao: Lucila Segévia Designer de capa: Marcelo da Silva Franzoz0, sobre 0 projeto original de Ta mara L. Newnam Edditoracdo Eletronica: Marco Zero / Denise D’Amaro Chiara Dados Internacionais de Catalogagéo na Publicacao (CIP) (Cémara Brasileira do Livro, SP, Brasil) Deitel, HM. C#— Como programari H. M. DeitelP.J. [outros autores: PJ. Deitel J. Listfiold, TR. Nieto; C. Yaeger; M. Zlathin | radug30 Joao Eduardo Nebroga Tortllo; reviséo tScrica Alvaro Antunes ‘$0 Paulo: Pearson Education, 2008. Titulo original: C# — How to Program ISBN: 85-346-1460-8 41. C# ( Linguagem de programacao para computadores ) I. Deitel, P. JacIl Listied, Jill. Neto, T. R.. IV. Yaager, C...V. Ziatkina, Mt 03-1685 00.05.13 Indices para catélogo sistem: 41. Gf: Linguagem de programago para computadores : computadores: Processamento de dados (005.133 Direitos exclusives para a lingua portuguesa cedidos & Pearson Education do Brasil Ltda, uma empresa do grupo Pearson Education Av. Enmano Marchetti, 1435 ep: 05038-001 Lapa- Sao Paulo-SP Tel: (11)3613-1222 — Fax: (11)3611-(851 e-mail: vendas@pearsoned.com br thosa meméria de nosso tio e tio-avé David Gewanter: Acari Estamos profundamente agradecidos por ele ter compartithado conosco seu amor, estinuulo, conhecimento, idéias e sabedoria, Harvey e Paul Deitel ‘A move pais Vocés me conduciram nesses anos ¢ figeram de mim o que sou. Jeff A carinhosa meméria de vové Corbit. Tem R. Nieto ‘A meus pais ¢ irmao: Por sempre me apoiarem nos bons e maus momentos. Obrigada por tudo — nunca me esquecerei das lagrimas, dos abracos e das risadas. Cheryl Para mamée e vové: Que me apoiaram com seu amor, coragem e forga sem fim. Obrigada por sempre estarem presentes. Marina PAGINA EM BRANCO SUMARIO Prefacio: 0x1 Capitulo 1 Introdugéo aos Computadores, & Intemet, & Web e ao C# 1 LL Introduction 2 12 que €umcomputador? 2 1.3 Orgaizagio de computadores 3 14 Byolugio dos sistemas operacionais 4 1:3 Computagao pesseat, compuiagao distribuida¢ computagaoclenteservidor 4 1-6 Linguagensde méquina,inguugens asvembly linguagens de ato nivel 3 C.C++, Visual Basie NET e Java™ ‘ oF 7 ‘Outeas inguagens de alto nivel 8 Programagio estruturada 8 Principal tendéncia de sohware: tecnologia de obetos 9 “TendEncias de hardware 10 ‘A histria da Internet eda World Wide Web u wae 2 XML 2 Introdugto 20 Microsoft NET a A pletaforma NET 0 9 CLP "1 Visio gera do tivo 16 Recursos da Internet e da World Wide Web 2B Introdugdo ao IDE do Visual Studio.NET 27 Introduce 2B ‘isto geral do IDE do Visual Studio NET 28 Barra de menus ¢ bara de feeramencas 31 Janclas do Visual Studio NET 32 Solution Explorer 2 “Toolbox (caixa de ferameniss) 2 Janela Properties 33 Usando a ajuda 35 Programa simples: exibndo texto eum imagem 36 vil (C#—Come Progiamar Capitulo 3 Introdugao a Programagao com C# A 32 33 3 35 36 Introdugio Programa simples: imprimindo uma tna de texto Catro programs simples: somando intciros Conceitor de memiria Acitmnéticn| “Tomadade deeisio: operadores de igualdade ¢ relacionais Capitulo 4 Estruturas de Controle: Parte | 41 42 43 44 45 46 47 48, 49 4.10 an a2 43 Introdugio Algoritmos Preudocddigo. Extrauras de contole strana de solegdo 4 Bxtratura de selegio 4/024 stratura de repetirao while Formulando algoritmes: estudo de caso | (repetigio conirolada por contador) Formulando algoritmes com refinamenio “top-down, passo a passo: estudo de caso 2 (fepetigio controlada por secinela) Formulando algoritmes com refinamenio “top-down, passo a passo estudo de caso 3 (struturas de controle aninhadas) ‘Operadares de atribuigdo COperadores de increment e decrement Introdugio & programacio de aplicaives Windows Capitulo § Estruturas de Controle: Parte 2 SI 52 33. sa 55. 56 s7 58 59 Introdugio Fundamentos da epetigdo controlada por contador Estruura de repetigao for Exemplos usando a esrutra for [Exrutura de selegio miltipla switeh Exteuuea de ropotiio do/whi le Instragdes braake contimae peradores léuicose condicionais Resumo da programagdo estruturada Capitulo 6 Métodos 61 62 63 ot 6s 66 Introdugio ‘Modilos de progsemaem Ce Métodos daclasse Mach, e argumentos Espagos de nomes do C# “Tipos de valor e tipos de referénc Passagem de arzumentos; passagem por valor versus passagem por referéncia ‘Goragdio de nimeros slearios Exemplo: ogo de azar Drago das varidvels Regs de escopo Recursividade Sobrecarga de métodes Copituio7 Anrays a Inirodugao 51 52 2 2 6S 3) 81 82 2 ca 3 85 85 on BLED aia Sumario Bg Arrays Declarandoe alocendo arvays Exemplos usando arrays Alocando tm array inicialiansto “Totalizando os elementos de um array Usardo histogramas para apresentar os dados do aray graficamente Usando os elemenios de um array como cantalores ‘Usando arrays para analisar resultados de evantamento Passando arrays a metodes assatidy anys pow valu © po werent ‘Ordenando areys Posquissndo arrays: pesquits linear pesquisa bindria Pesaaisendo um array com pesquisa linear Pesquisendo um array ordenadocom pesquisa binéria Arrays muliidimersionais Estruura de repetigio foreach clementos Caritulo 8 Programagée Baseada em Objetos 31 Introducao 8.2 _Implementando um tipo de dados abstrato de tempo com uma classe 8.3 Escopo de classe Rd Contralando o acesso aos membros 8.5 Inicializando objetos de uma classe: constntores 8.6 Usando construtores sobrocarregades 87 88 iis a objetos como variveis de inadnsia de outra classes 39 Usandoa referencia this B10 Cole de liso S.11 Membrot de classe atatic 8.12 Membros canst ¢ readonly 8.13 Indexadores 8.14 Abstragio de dados e ocultamento de informasbes 8.15 Reutilizagdo de software 8.16 Espagosde nomese assemblies 8.17 Class View e Object Browser Capitulo? Programagée Orientadia « Objetos: Herenga 293 8.1 trode 294 8.2 lasses basse clases derivadas 295 93 Membros protected e internal 297 G14 elainnaren mete lens ceo lithe Aaa 307 9.5 Extudodeeasohierarqua de heranca de us aiveis 3S 916 Construores e desrutores er clases derivadas 318 9.7 Engenhriade sofware eom heranga 323 Caritulo 10. Programagdo Orientadaa Objetes: Polmor smo 327 101 Introdugio 328 10.2 Conversio de objtos de classes denvadas par abetos ca clase base 528 103 Campos detipo ensirgtes switch, a4 104 xemplos de potimortswo ua 105 Classes ° mitodosabstratos 338 106 Estado de caso heranca deineracee implementa x7 10.7 Classes e métodos sealed ad 108 Estado de caso: sistema de folha de pagamento usando polimorfismo Mas 109 Estado de caso: riando usando interfaces 354 10.10 Delegados 304 10.11 Sobrecarga de operadores 367 x (C#—Como Programar Capitulo 11. Tratamente de Excegdes 378 111 Intraducio 376 11.2 Visto geral do iratamento de excegoes S16 113 Exemplo: DividepyzeroBxception 379 114 Hicrarquia de excoges do NET 383 11S Oblocofinaliy 384 11.6 Propriedades de Exception 301 11.7 Glasses de excego definidas pelo programader 395 11.8 ‘Tatendo esouros com os operadores checked ¢ unchecked 398 Copitulo 12 Conceilos de Interface com o Usuario Gra ca: Patio 1 405 12.4 fatrodugso 406 12.2 Foemulérios Windows 06 12.4 Modelode maniputagio de eventos 409 12.3.1 Manipulacio de eventos bisica 410 124 Propriedades de controle layout 414 125 babel, TextBoxe Button 47 126 GroupBoxe Fane) a2 12.7 CheckBoxe RadioButton 323 128 PhetuzeBox 432 12.9 Manipulago de eventos de mouse 434 12.10 Manipatagio de eventos de tela 36 Capitulo 13. Conceitos de interface com o Usuario Grd ca: Parte 2 445 13.1 Introducio 46 132° Menus, 46 LinkLabels a4 LLstBoxes checkedidetBoxts 457 ListBox: 459 Checkedti stBoxes 461 Combozoxes 463 ‘Treeviews 467 ListViews 42 Controle com guias 8 Janelas MDL 483 Heranga visual 490 ‘Contoles defnides pelo usuirio 494 Copitulo 14. Miitiplas Linhas de Execugéo (Mullithreacing) 505 14.1 Introdugio 506 14.2 Estados de linha de execugo: ciclo de vida de uma finha de exeeugio 307 14.3 Prioridadese programacio de linhas deexecucao 508 144 Sincronizagao de nas de ecugi ¢ a classe Monitor 312 4.3 Relacionamento prodatorfconsumidor sem sincronizago de linhas de execuga0 sia 14.6 Relacionamento prodatoriconsumidor com sineronizagio de lishas de execusio 520 147 Relacionamento prodatoriconsumidor: buffer circular 377 Capitulo 15. Strings, Caracteres e Expresses Regulores Introducio Fundamento dos carateres © stings ‘Consruores de Strings Indesador, propricdade Length ¢ método Copy 0 de String Conparando atzinge Método Gat Hanhcode de string Localizando caacieres substingsem stings Extraindo sibstings de strings ‘Conatenardlo strings Metodos do Sting diversas BLED aia Sumario XI 15.11 Clase stringsutlaer 337 15.12 Indexador, propricdadss Length e Capacity cmélode Easurecapacity de Stringbullder 558 18.13 Método: Apponde AppondFormat de StringBuilder 60 ISM Métedos Insert. Remove Replace d: StringBuilder 563 15.15 Métedos de Char: 566 15.16 Simulagio de embarathamento e distrituigio de cartas 568 15.17 Expressdes regulates ¢ classe Regex sm Capitulo 16 Elementos Gré cos e Mullimidia: 587 Jot antroaugao as 16.2 Contextos gréficose cbjelos grticos 590 16.23 Controle de cores 591 164 Controle de fontes so7 16.5 Desenhando finhas, rengulos eclipses 602 16.6 — Desenhando arcos 605 16.7 Desenhande peligonos ¢linas poligonais 607 16.8 Recursos grificos avangados on 168 Introdugio a moltimia 516 10.10 Cartegando, exibindo e mudando a eseals de Imagens 516 16.11 Animaado uma série de imagers on 16.12 Windows Media Player 529 16.13 rosoft Agent sl Coritulo 17 Arquivos e Fluxos 649 17.1 Inrodugio 650 17.2 Hierarquia de dados 650 17.3 Arquivos e fuxos 952 174 Classes File eDirectory 993 17.5 Crlandoum arquivo de acesso sequencial 661 17.6 Londo didos de um arquivo de acesio seqtencial on 17.7 Arquivos de acess aleatério 583 17.8 — Criandoum arquivo de acess aleatrio 586 17.8 Gravando dacos alzatoriamente em um arquivo de acessoaleatirio 590 17.10 Lendo dads seqiiencialmente de um arquivo de avesso slew rio 64 17.11 Bstudo de caso; um programa de processamento de transagtes 699 Corituio 18 XML (Extensible Markup Language) 723 18.1 Introdugao ra Documentos XML ns Bzpagos de nomes do XML ne OM (Decament Object Medel) om DTDs (Document Type Definitions). esjuemas e validagio Ms DTDs 16 Microsoft XML Schema 750 W3C XML Schema 751 ‘alicagdo de exquema em C# 153 XSLe Xsitranstorm 136 “Microsoft Biz Talk™ 762 Recursos da Internet e da Weeld Wide Web 168 Capitulo 19 Boncos de Dodos, SQL e ADO .NET 173 19.1 Iatrodugio m1 19.2 Modelo de bancos de dados telacionais 14 19.3 Visio geral de banzos de dads relacionais: banco de dados Books 75 194 SQL 780 19.4.1 Consulta SELECT bésica 780 192 Chivsula WHERE 181 xil C#—Como Progamar 1943 Cdusuls ompR wx 783 1944 Combinando dados de milplastabelas: ROWER JOIN 785 19.45 Juntendo dados das tables: Author@, AUthoxTSBN, Titles ¢ Publishers 77 19.46 Insiragio INSERT 789 1947 Instrugio UPDATE 790 1948 Instrago DELETE 790 19.5 Modelode objetos ADO NET m1 196 Programando com ADO .NET:extraindo informagbes de umm banco de dados m 19.6.1 Conectandoe consultando una onte de dados Access 792 19.6.2 Consuttando opanco de cages HOOKS 19 19.7 Progiamando com ADO NET: modificandorezstos de um banco de dados 300 198 Londo. grovando anaives XML 307 CCaritulo 20. ASP .NET, Formularios Web e Controles Web 818 20.1 Intratucio 816 202 Transagio HTTP simples 816 203 Arquitetrado sistema 818 204 Grandoe execatando um exemplo de formutirio Web simples 819 203 Contoles Web 830 205.1 Contoles de textoe grticos 830 2052 Controle AdRotator 095 2053 Contoles de vaidagio 839 206 Acompanhamento de sessio as 206.1 Cookies ag 20.62 Acompanhamentode sesso com HupSessonStae 856 20.7 Eso de caso: iro de visitantes online 864 20.8 tuo de caso: conectando um hanco de dades em ASP.NET 870 209 Rasteamento 383 20.10 Recursos da ttevnet eda Workd Wide Web 384 Capitulo 21 ASP .NET © Sevicos da Web 893 21.1 Inteotugio ao Servigos da Web 395 SOAP eservigas da Web 397 Pablicando e consumindoservigos da Web 399 ‘Acompantmesto de sesso em servos da Web 913 Usando formuliris Webe servigosda Wed 97 Fstudo de caso: apliatvo de informagees de emperatuns 929 21.8 Tipos definidos peo uuétio em serviges da Web 937 Catitulo 22 Rede: Soaueles e Datooramas Baseados em Fluxos 951 22.1 Intraugio 952 22.2 Estabolecendo um servdor simples (usando soquetes de x0) 953 223 Esabolecendo amelente simples (asando soqutes de fuxc) 954 224 _Inerago cliene/servidor com conexdes de soquetes de Muxo 955 22.5 Interago cieme/servidor sem conexdo, com éatagramas 963 22.6 _Jogoda-velha clienteservidor usando um servidce com mia linhas de execuga0 968 Capitulo 23. Eskulures de Dados © Colegdes 985 23.1 Inteadusio 986 282 Classes autoseferenciis ons 23 Lisiaceneadeadas 988 24 Pihas 997 Bhs 1002 Arvores 1005 ‘Arvere de pespisabindria de valores intiros 1006 Acvore de pesquisa hinana de obyetos TComparable wie BLED aia Sumario xill 23.7 Clases de colegio 1019 23.21 Classe array: 1019 23.72 Chasse ArrayLiot 021 23.73 Chose stack 1027 23.14 Classe Hashtable 1030 Capitulo 24 Acestibilidade 1043 24.1 Introducto 1044 24.2 Legislagio e recursos 044 243 Web Accessibilty Initiative 046 244 Altemativas para imagens 046 24.5 Maximizagio oa legibilidade focalizando a estrutura 1047 246 Accs 1048 24.6.1 Ampliagio dos fecnes da barra de ferrameontas tos 24.62 Ampliagio do texto os 2463 04s 24.64 1050 1052 1052 1058 ‘Acessitilidade em frames XHTML 1062 24.10 Acessbilidadeem XML. 1062 24.11 Usando sintese¢ recoahosimento de vor com 0 VoigeXML™ 1063, 24.12 CallXMLO 1069 2412 IAWS@ for Windewws ora 24,14 Outras ferramentas de acessibilidads 1074 24.15 Acessibilidade no Microsoft® Windows® 2000/XP 1075 24.15.1 Ferramentas para pessoas portadoras de defiiéncia visual, 1077 24.15.2. Ferramentas para pessoas portadoras de deficineia auditiva 078 24.15.3, Ferramentas para usuérios qu tém ditteuldade de usar o teciado 1078 2415.4 Microsoft Narrator 1083 24.15.5.“Toclado virwal da Mierosoft 108s 2418.6. Recursos de acessibilidade no Microsoft Intoraet Explorer 6 086 24.16 Recursos da Internet eda World Wide Weh 1087 Apéndice A Tobela de Precedéncia de Operadores 1097 Apéndice B Sistemas de Numeragao (no CD) Bel BA Intraducio Be B.2 —_Abreviasdodos ndmeros biniries como mimeros ocaise hexade Bed B.3_ Comersio dos niineras ectaise hexadecimais em nimeros biniios BS Bd Comersio de binério, ctl ou hexadecimal para decimal BS B.S Comersio de decimal em bindrio, octal ou hexadecimal BG Bo _Nameros bindrios negativos: nowgao de complemento de dois Ba ‘Apéndice © Oportunidacies de Emprego (no CD) cr C1 Inrodugio cn C2 Recurs0s para quem procira emprego cit C3 Oportunidades on-ine para os empregadores cis C4 Servigos de reratamento cis C5 Siesdeempregos C19 C6 Recursos na Internet e na World Wide Web cn Apéndice D_ Depurador do Visual Studio .NET 101 Di Introduction 1102 D2 Pontos de parada Hos xIV (C#—Como Programar bs 1106 Db Controle do programa 1108 DS —Maisrecursos do depurasio de métodos 1109 D.6 —_Maisrecursos de depuracio de classes m3 Apéndice E Gerace de documentagdo no Visual Studio (no CD) E30 El introduc E31 2 Comentirios da documemtagio E31 E3 —_Documentando o e6digo-fonte do C# B32 Ea Crrando paginas Web de comientiris ra 5 Criandosarquivos de documentagio em XML E40 Apéndice F_ Conjunto de Caracleres ASCII Apéndice G Unicode® (no CD) G.1 Introduction G2 Formatos de transformagio do Unicode G3 Caracterese glifos G4 Vantagens e desvantagens do Unicode G5 Site Webdo Unicede Consontium G6 —_Usando.o Unicode 6.7 Intorvalos do exracteres Apéndice H_Integragdo COM (no CD) HA Introducio 2 Integracio com o ActiveX 3 Integragio coma DLL Hd Recursos ds Internet e da World Wide Web Apéndice! Inirodugdo ae Hypertext Markup Language 4: Parle 1 (no CD) 169 11 Intredusio 170 12 Asinguagens de marcagio 170. 13 Baitendo HTML 170 14 Elementos comuns v7 15 Cabegalhos i 16 Links ta 17 Imagens 176 Caractere especinise mais quebras de lina Hn [Listas nio-ordenadas B81 Listas aninhades eorsenadas 183, Recursos da Intoret © Wertd Wids Web Tes Apéndice J Introdugdo ao Hypertext Markup Language 4: Parte 2 (no CD) 589 J Introdugio 4-90 12 Tabelas HTML bavicas 4-90 43° Tabelase formatagio da HTML intermediétia 192 14 Pormulérios HTML bisicos 395 1.3 Formularios HTML mats complexos 397 4146 Vinealagso incerne 3-103 1.7 Criandoc usando os mapas de imagem 1-105 JR Tagsemotas 4.107 19 Blemento frameset 3-109 110 fraseastes aniahados Fill J Recursos da Internet e da Werld Wide Web F113 Apéndice K_ Introduce ao XHTML: Porte 1 (no CD) K-18 KL ntroaugao muy BLED aia Sumario xv 2 Edindo a XHTML K.3. Primero exomplo de HTML K.b—_Servigo de validagio de XHTML do W3C KS Cabecalhos K6 Links K7 Imagens K.8 — Caracteres especiais e mais quebras de finba K.9 Listas nio-ordenaéas K.10 Listas aniniadase orcenadas KI Kecursos da internet e da worta Wide Wen Apéndice L_Introducéio ao XHTML: Parte 2 (no CD) Ll Introduction 12 Tabolas bésicas XHTML 1.3 Tabelas.e formatacio intermedi L4 — Formulirios XHTML bisicos LS Formulisios XHTML mais complexos 1.6 Links imernos 1-7 Cfiandoe usando os mapas de imagem LS elementos meta 19 Oelemento frameset 1.10 Framesets aninhados ia em XHTML. Ll Recursos ds Tnternet e World Wide Web ‘Apéndice M_Caracteres Especiais do HIML/XHTML 1126 Apéndice N- Cores no HTML/XHTML n27 Apéndice © Manipulacdo de Bits (no CD) 0-170 0.1 Introducio. O.171 0.2 Amanipulagio debits eos operadores bitwise O17 03 Chasse BitArray O81 Apendice P Crystal Reports for Visual Studio .NET 1130 RI Introducao 1130 F2 Recursos do site da Web do Crystal Reports 1130 P3Gaysial Reports e Visual Stadio NET. 132 PA.1 Crystal Reports em aplicativos para a Web 132 P32 Crystal Reports e servigas da Web 32 Bibliogia a 1135 indice 1137 PAGINA EM BRANCO TLUSTRACOES Carituio 1 Introdugao aos Compulacdores, & Intemet, d Web e ao C# 11 Linguagens NET 1s Catitulo 2 Introducdo ao IDE do Visual Studio.NET 2:1 Start Page no Visual Sudo NET. 2.2. Caixa de dogo New Project. 23. O ambiente do Visual Studio.NET ap6s um novo projeo ser ride, 2:4 Barra de menus do Visual Studio NET. 2.5 Resimo dos ments do Visual tuo .NET. 2.6 Bariadeferamentas do Visual Studio.NET. 2.7 Demonstagaa de dca de oi, 28 eames da barra de fereamentas para véras janeles do Vil Suudio NET 29 Jancla Solution Explorer. 2.10 fanela Toolbox. 2.11 Demmonsrando o vultamentozutomstico de jane. 212 Janela Proper 213 Janela Dynamic Help. 2:14 Programa simples ao serexecuade. 21S Criando um novoaplicativo Windows. 216 Configorand n lonakangte do pejeta 2.17 Configurandoa propriedade Text do formule, 218 Formuléro com agas de redimensionamente, 2.19 Mutando apropriedide Backcolor. 2.20, Aicionando um novo rétuo no form. 2.21 Rotwloem posigao, comstua propredade Text contgurada. 2.22 A jancl Properties exibindoas propriedades do ritulo. 2.23 A junela Fonte padrio do Windows para slesionar fontes,estilos ¢ amanhes, 41 2.24 Centralizandoo texto no roto a 2.25 _Inserindo¢ alinhando a caixa de figur. a 2.26 Propriedade Image da caixa de figura. B 2.27 Selecionando uma imagem para acaina de figura, B 2.28 A caixa de figura apés aimagem ter sido inserida. 44 2.29. IDE nomudo de execugio, com o aplicatvo sendo executao em primeko plano, “4 xvill (C#—Como Programar Capitulo 3 Introdugao a Programagao com C# 3 Nosso primeiro programa em CH. 2 3.2 Aplicativo de console gerado pelo Visual Studio NET, 30 33 Execugio do programa Welcomed, 37 344 Imprimindo una linka com insirugées separedas, 37 3.5 Imprimindo msltiplaslinhas comm uma Gnica instrucio, 58 36 Algumas seqincias de escape comuns. 38 3.7 _Exibindo maliples tines em uma caica de dilogo. 59 38 Adicionando ums referéacis em um assembly no Visual Sudio NET 60 3.9 GUI do Inernet Explorer. 61 3.10 Caixa de idlego apresentada por meio da chamada de MessageBox. Show. 61 3:11 Programa de adigio que soma dois valores fornecidos pelousvirio. 02 3.12 _Posigdo de meméria mostrande o some eo valor da varivel momber2., 65 3:13 Posigdes do meméria apSs es valores das vardveis aumber c number? terem sido fornecidos 6s 3.14 Posigdes de meméria aps um edleulo, 66 3.18 Operadores attméticos. 6 3:16 Precedéncia dos operadores arimétices. 67 3.17 Ordemem que um polintmio ce segundo grau &avaiado. 68 3.18 Operadores de igualdadee relacionais, 9 3.19 Usando operadores de igualdace e relacfonais. 9 3:20 Precedeneia eassociatividade dos operadores discuidos neste capitulo. n Capitulo 4 Estruturas de Controle: Parte 1 4.1 luxograma da estrutra de soqineia do Cit 4 4.3. Fluxograma de uma estnutura 4€ de selecio énica, 86 44° Fluxograma de uma estrtura 4£ /e1se de seleqo dupla, 86 4.3. Fluxograma da exrutura de repetigio while. 90 4.6 Algoritmo em pseudoesdigo que usa repetigZo controlada por contador para resolver 9 problema da media daturma, 1 4.7. Programa de média da wema com repetigio contcolada por contador, o1 48 Algoritmo em pseudoe6digo que usa wpasigZo contiolada por sontinela para resolver o problema ‘da mde da tur. 95 4.9. Programa de média da turma com repeticdo controlada por sentinel, 96 4.10 Pseadocddigo do problema dos resultados do exame. 100 4.11 Programa Ci para o problema dos resultados do exame, 100 4.12 Operadores de atribuigdo aritméticos. 103 4.13 Os operadores de increniento e deeremento, 103 414 A diferengs entre pré-inerementare pés-incrementar. 103 AAS Precedéncia e associatividade dos operadores discutidos até aqui neste ive. 10s 416 IDE mestrando 0 e6¢ige do programa de 2.15 106 4.17 Céciga gerade pelo Windows Form Designer, quando expandito. 107 4.18 Céigo gerado pelo IDE para welconeLabel. 108 4.19 Usando a janela Properties para configurar um valor de propriedade. 108 4.20 Cécigo gerade pelo Windows Form Designer refletindo novos valores de propriedade. 109 4.21 Mudanio uma propredadle no editor do mod de visualizazio de c6digo. 109 4.22 Novo valor da propriedale Text relletide no modo de 109 423, Méwdo asimpleProgran_Load. 110 4.24 0 recurso IntelliSense em agio. 110 4.28 Mudanio um valor de propriedade em tempo de exeeusio. a Capitulo § Estruturas de Controle: Parte 2 Sa io controlada por contaior com a estrutura whe. 120 52 ico controlads por ccntadorcom aestrutura for. 12 53 Componentes de um categalho tipico da estrutua for. 123 54 Fluxograma de uma estrutura de repetigio for tpica. 125 55 Soma usando for, L260 BLED aia lstiacdes x £16 feones decals de edlogo de mensagem, 126 £:7 Boies pam cainas de dislogo de mensagens. 127 £8 Caleulando juros compostos com fox 128 $9 Céscigos de formatagio de st xing 129 5.10 situa de selecdo mikina swi tt. 130 5.11 Floxograma da earutura de selecio mitipa switch. 132 5.12 Esrutura de repetgio do/vhi 133 £113 Fluxograma da esrutura de repetigio do/swhie. 134 £14 Insvugio breakem una estutura for. 133 310 _taneta verdad do operaor aa (: conatcrona. 1 £17 Tabela verdade do oyerador | | (OU conciona). 138 £18 Tabela verdads do oferador OU exclusive lézico 139 £19 Tabela verdade do oyeralor 1 (NAO Igieo). 139 £20, Operadorescondicionase aivos. 139 5.21 Precedéncia eassociatvidae entre 0s operadores dscutidas ai au. ial 5.22. Esiruturas de seqéncia de um entradauma sada, repetigioe slegao do C 143 £.23 Rega para fermar programas estraturads. lad 5.24 Fluxograma maissimples. 144 5.28 Aplicasaorepotida d regra2 da 3.28 no uxograma mas simples aa 5.26 Aplcagio da regi 3da 5.23 no Muxograma mas sinpls 145 £27 locos de constrgieempilhados,aninhados¢sobrepstos. 14s 5.28 Flacograma nfo esttund. 145 Carituio 6 Métodos G1 Relacionament hierirasio do método chete/métodofancionsi. 135 62 Méiodes da classe Math comumente usados. 136 63 _Usandoo méiodo Square defnid pelo programacor. 137 64 Método Maxaman definido pelo programadce 161 63 Conversoesimplista permits. 167 6.6. Espagos de nomes ds Framework Class Library. 168 67 Tipos de dadosimernos do CH 169 68. Demonstrindo os parimotrs ref ¢ out. 170 69 Intros aleatérios no interval de I a6. 17% 6.10 Lanzamenio de dados em um apicativo Windows. 174 G11 Simutando o langamento de 12dados desis ados. 176 6.12 Programa para simular o jogo de craps 179 613 Escopo. 183, 6.14 Avaliaga reursiva de 3 186 6.18 Caleulando faorais com um metodo recusivo 187 G16 Gorando nimeros de Fitonsecirecursivament. se €19 Conjunto de shemadssrursion porno méiede Pibonnesi. 190 618 Used métodos sobwecarreeades. 191 6.19 Erode sitaxegerado apanirde métodos scbrecarezados com istas de pardimetto €tipos de retomo diferentes. 193 6.20, AsTorves de Han6i para caso de quatro discos. 201 Capitulo? Arrays 1 203 12 stds até ae 7.3 Inicitizando arrays de elemento de trés mansiras diferentes, 714 Caleulando a soma dos elementos de um aray 7.5 Programa queimprime histogram 7.6 Usando arrays para climinar uma estrutura switch, 1.7 Programa simples de andlise de pesquisa de aluno. 7.8 Passando arrays e elementos de aray individuais a métodos. 7.9 Passando uma referencia de array por valor e por referencia ‘410 Urdenande um anay com ordenaga0 “D0. xx (C#—Come Programar TAAL Pesquisa tinear de ura aay. 23 THI Pesquisa binésia de um array onenad 225 7.13 Array bidimensional com ts linhas © quatro colunes. 208 7.14 Inicitirando arrays mulidimensicoais 29 TAS _Exemplo usando arrays bidimensionais. 231 7.16 Usando foreach com um array. 234 Capitulo 8 Programacéo Baseada em Objetos 8.1 O tipo de dados abstato Time. representa ahora no formato de 24 bores. 243 82 Usando um tipo de dados abstat. 27 83 Acessar membros de clase private pani Ue cdigo cliente geraerros de sintace. 250 84 Os construores sobrecarregades fornecem opydes de inicializago de objeto Mexives, 252 £5 Demonstrogc de consritor sobrecarregato. 254 8.6 As propriedades fornecem seesto conirolado aos alos de um abet 256 87 Demonstravia de propriedades da clase Time3. 258 88 A classe Date encapsula informagBes de dia, més eano. 262 89 A classe Employee encapsula o nome, adaia do nascimento ea data de contratagio do fancionsri, 263 8.10 Demonstrao de compesigio. 268 8.11 Referéncia ths usada implicita e explictamence para permitr que um objeto manipule seus proprios ddados © chame seas préprios métotos. 265 812 Demonstragic dareforéacia thie. 266 8.13 Os membros static sio aessivvis para todos os abjetos de uma classe 268 8.14 Demonstrapdo de membxo static. 270 8.15 Demonstraio de membeo de classe const ¢ readonly. m 8.16 Os indexadores fornecem acesso por meio de indices aes membros de um objeto. m8 817 O assembly TimeLibrary contém aclasse Timed. 281 8.18 Bibliotecade classes simples. 284 R19 Assembly TAneLAbrary usaio a pani da classe AssemblyTest. 285 8.20 0 recuiso Class View da classe Timed (8.1) eda clase Timerest2 (6.2) 286 821 0 Object Browser quando o ususrio seleciona Object de Timed.cs, 286 Corituio 9 Programagéo Orientada a Odjetos: Heranea 8.1 Exemplos de heranc. 29s 9.2 Hierarquia de heranga para NenbroDaComuni dade de uma universidade, 296 9.3 Parte de uma hierarquia de lasses FormaGeometrica, 207 9.4 A class: Pod representa um par de coordenadas x, y. 298 9.5 A.casse Point Test demonstra « funcicnalidade da claswe Point. 300 9.6 A.casse CLzeLe contém um par de coordenadas x,y € um aio. 301 9:7 ChreleTest demonsta a furcionalidade da classe Clee. 303 98 A classe Cixeie2 que herda da classe Point. 308 8.9 A clases Dadnea roprosonts um par de coandomadae x,y coms dudot protested. 206 9.10 A classe CLreLe3 que herda da classe Podnt2. 307 9.11 CixeleTest3 demonsraa funcionalidide da classe Cixe1e3. 308 9.12 A classe Point3 usa propriedades para maripular seus dados private. 310 9.13 classe CLreled que herda da classe Post3, a qual nio fornece dados protected. 311 9.14 ChreleTest demonsraa funcionalidsde da classe CAxele4. 313 9.15 A class: CyLinder henda da classe Chole e sobrepoe 0 método Area. 313 9.16 Tesiindo aclase CyLindes 37 9.17 A classe base Polat contSm construtors¢ fralizador. 39 9.18 A classe Cixeles hora da classe Poked e sobrepde umn metodo finalizador 320 9.19 Ordem em que os constnatores e destratores so chamados. 322 Capitulo 10 Programacéie Otientada a Objetes: Polmor smo 10.1 A classe Podnt representa um par de coordemadas x.y. 329 10.2 A classe CLreLe que herds daclasse Point. 330 10.3 Atribuindo referéncias classe derivada para eferéacies A classe base. 331 WA Classe base absirala Shape. 37 BLED aia ustragées XX 105 A classe Fodme2 hea da clase abstract shape. 338 10.6 A-classe Chree2 herds da classe Point. 339 107A classe GyLindor? herde da clesse Cixele2. ai 108 AbstractshapesTest: demondra o polimorismo na hierarquia Point-Circle-Cylinder aa 10.9 Detinigio da classe abstract Baployes Ms 10.10 A classe Boss herda dacclasse Employee. 346 10.11 A classe Comni.gsionWorker herds da lisse Employee. MMT 10.12 A classe PLeeetorker herda daclasse Employes. 349 10.13 A classe HourlyWorker herda da classe Employee: 350 10.18 A classe ampsoyeesrest testa & meranyuin de clusses ssmpsoyee. 332 10.15 Interface para eternar aidade de ebjets de classes dfpares 355 10.16 A classo Paxson implementa a interface ZAge. 355 10.17 A classe Tree implementa interfuce Tage. 356 10.18 Demonstrando polimortismo em objetos de classes dfspares. 357 10.19 inerface ZShape fornece os métodos Area e Volume. a propriedade Nae, 358 10.20 A classe Podnt3 implementa a inerfice ZShape, 359 10.21 A classe ChreLe3 herda da classe Point. 360 1022 A classe CyLinder3 herds da clesse Cizcle3, 301 10.23 Intertaces2Tes¢ usa interfaces para demonstrar 0 polimortismo na hierarqula Point-Citele-Cylinder, 363, 10.24 Ordenagio “bothe" usando delegados. 364 10.25 Aplicative Poem de ordenasio“balha 365 10.26. Sobrecarregando operadores pera rsimeros complexos. 368 10,27 Usando sobrecarga de operadores. 30 Carituio 11. Tratamento de Excecdes ILI Manipuladores de excegSes para FornatExceptione DivideByZeroException. 379 11.2 Demonstrando que os bloces fina Ly sempre sio executados,independentemente de ocerret u mio.uma excesio. 386 11.3 Proptiedades de axception ¢ desenrolamento de pill. 391 114 Subclasse App1icationBxceptiion, langads quando um programa exceuta operagéesinvslidas ‘om ndimeres negatives sos ILS A classe SquareRoot Test langa uma excegio caso 0 ero ccoma go se caleular a raiz quadrad, 396 11.6 Os operadores checked c unchecked ¢ o ratamento do estouro aritmstico. 399 Carituio 12 Conceitos de Interface com o Usuario Gré ca: Parte 1 121 Exemplo de janela do Inerret Explorer com componentes de GUI. 122 Algunscomponentes de GUI bisicos. 12.3 Componentes. controles dos formutrios Windows. 124 Propriedades ¢ eventos comuns de Form. 12.5 Modelo de manipula;do de eventos usando delegades. 126 Sogo de eventos de jancla Proportion. 12.7 Exempla de manipula de eventos simples, 128 Lista dos eventos de Foz. 12.9 Detalhes do evento Click. 12.10 Propriedades ¢ métodos da classe Contx01. 12.11 Demonstrago de ancoragem. 12.12 Maniptlando a propriedide Anchor de um controle. 12.13 Demonstragao de acoplamento, 12.14 Propriedades de layout da classe Conte « 12.18 Propriedades de Label. 12.16 Propriedades e eventos de TextBox 12.17 Propriedaces ¢ eventos de Button. 12.18 Programa pars exibir texto oculto em um eaixa de sen 12.19 Propriedades de Groupsex. 12.20 Propriedades de Panel. 12.21 Crisndo um Panel com: barras de rolagem. 41222, Usando Groupsoxs ¢ Panes para organizar BUEEORS. sand programag’o vi xxi (C#—Como Programar 12.23 Propriedades ¢ eventos de CheckBox 25 1224 Usando CheekBoxs para mudarestlos de font 426 12.25 Propriedades e eventos de RadioButton. 428 12.26. Usando Radioput tons para conigurar opgses dajanela de mensagem, 428 12.27 Propriedades ¢ eventos de PictureBox. 432 12.28 Usando uma PActuceBox para exibir imagens. 433 12.29 Eventos de mouse, delegados e argumentas de evento, 4 12.30 Usando 0 mouse para desenitarem um formutério. 435 1231 Eventos de teclado, delegados e argumentos de event. 437 12:32 Lemonstrando eventos 0 teciago. 37 12.33 GUI para o Exercicio 124. 43 12.34 GUI para o Exerecio 125. 443 1238 GUI para o Exerefeio 126 43 Carituio 13. Conceitos de Interface com o Usuario Gré ca: Parte 2 13.1 Menus expandides & marcados. 447 132 Menu Designer do Visual Studio NET. 448 133 Propriedades ¢ eventos de MainMenu e NenaTtem, 448 13.4 Menus para mudar Fonte e cor de texto. 49 138 O contiole Linkiabel no programa em execusio. 454 13.6 Propriedades ¢ eventos de LinkLabel. 454 13.7 binktabels usados pera se ter um link para uma pasta, para uma pigina Web e paraum apiicaive. 495 IB8 ListBoxe checkednd stBox em um formulitic. 457 13.9 Propriedades, mSiodos e eventos de ListBox. 458 12:10 String Collostion Editor. 150 13.11 bA.stBoxusada em um programa para agicionar. remover e Timpar tens, 459 13.12 Propriedades. méiodos e eventos de CheckedListBox. 462 13.13 Checkedid stBoxe Li etBox usadas em um programa para trostar a selegio de um usuitio. 462 13.14 Demonstragdo de ComboBox. 464 13.15. Propriedades ¢ eventos de ComboBox. 464 13.16 ComboBox usads para desenbar uma selectonad 465 13.17 Treeview mostiando um exemplo de &rvore, 468 13.8. Propricdades ¢ eventos de TreeView. 468 13.19. Propricdases métodos de TeeeNode 168 130 TresNode Editor. 469 1321 Treeview usads para exibir diretSrios. 470 13.22 Propriedades ¢ eventos de ListView. 1B 13.23 Janela do Image Collection Editor para um componente TmageList. 43 13.24 ListView exibindo arquivose pests 43 13.25 Paginas com guias no Visual Studio .NET. 478 13.26 rapvontco4 com exemplos ce xapvage 479 1327 TabPages adicionadas cm um TabControl. 479 13.28 Propriedades ¢ eventos de TabContzol. 480 13.29 TabContro} usido para exibir viias confipuragdes de fonte 480 1330 Janela progenitora MDI janelasflhas MDL 483 1331. Formulirios SDI e MDI. 484 13.32 Eventos e propriedaces de progenitor filho MDI. 484 13.33 Janelas filhas minimizada e maximizada, 485 1334 Exemplo ca propriedade Matbi st de Menurtem. 486 1338. Valotes daenumeragio mainayout. 487 13.36 Classe de jancla progenizora MDI. 487 13.37 Classe Chi4 para demonsiraso de MDI. 490 1338 A classe VieualTnhari tance, que herda da classe Form. contém um botdo (Learn More) 491 13.39. Heranga visual por neio do Form Designer, 492 1340 A classe Visual Inheri tancerest, queherda da classe visual Inheritance.VisuaiInheri tance, contém um toto alicional. 493 BAL Criasto de controles personalizados, 495 BLE aia ustragées Xxill 1342 Controle definide pelo programador que mostra. a hora stu 495 13.43. Criagdo de coatrole personalizado. 496 13.44 Caica do didlogo de propriedades do projet. 497 13.48 Controle person 497 1346 Controte personalizalo sdicionado em um Form, 498 Capitulo 14 Miltiplas Linhas de Execugdo (Multithreading) 14.1 Ciclo de vida da linha de exccugio, 08 14.2 Programagio de prioridales de lintas de execucio. 509 143 _Linhasde execugio dormentes e imprimindo, 510 14.4 Linas de exeeugio produtora e consumidora acessendo um objeto comparithado, sem sincronizagio, 313 14.5 Linas de execugio produtora ¢ consumidora acessendo um objeto comparihado, com sineronizagio. 520 14.6 Linhas de execugio produtera ¢ consumidora acessendo um buffer eirculer. 528 Caritulo 15 Stings, Caracteres @ Expresses Regulares 18.1 Construores de String. 543 15.2 _Indexador. propriedale Length e méodo CopyTo de String. sas 183. Teste de string para determinara igualdade, 546 184 Méiodes StarteWithe EndsWith, sas 15.5 Demonstragio do metodo Get#ashCode. 350 15.6 Procurando caracieres e substringsem strings, 551 18.7 _Substrings geradss a parir ce strings, 333 188 Méwodo static concat. 554 18.9 Méiodos Replace, ToLewor, ToUpper, Trim eTostring de string. 555 15.10 Constevion da clacso OtxingBul dew 559 18.11 Maniptlacio do tamanho de StringBuilder. 559 18.12 Métodes Append de StringBuilder. 560 18.13 Método AppendFormat ds StringBuilder. 562 18.14 Insergao e reniogio de texto de StringBuilder. 563 15.15 Substituigio de texto de StringBuilder. 565 18.16 Metodes static de teste de caractere de Chaz e métodos de conversao nite letras mavsculas © mingiculas 566 15.17 Classe Caza. 569 18.18 Simuazdiode distrbuigbo ¢ embarithamento de caras, 569 18.19 Classes decaracteres. 573 15.20 Expressbes regulares verfieando datas de aniversio. 573 15.21 Quantiticadores usados em expressbes regulares S75 15.22 Validando informagtes do usustio com expressdes reguares2. S75 15.23 Métodes Replace ¢ Split de Regex. 380 Capitulo 16 Elomentor Gr cas © Multimidiar 16.1 Classes estraturas do espago de nomes Byaten.Drewing. 589 16.2 Sistema de coordenadas da GDI+. As unidades sio medidas em pixels 580 16.23 Constantes static da esrutura Color e seus valores RGB. 5391 164 Membros da estrutura Color. 391 16.5 Classes derivalas da classe Brush 302 16.6 Demonstrago de valores de core alfa 592 16.7 ColorDialog usado para mudara cor de fando edo texto. 59s 16.8 Propriedaces somente de eitura da classe Font. 398 169 Fontsc Fontstyles. 398 16.10 Un ilustragio das méticas de Fontes, 500 16.11 Méiodos de Font amd Ly que retomam informagie sobre as métieas da font 500 16.12 Classe Font Fami1y usads para cbterinformagbes sobre métricas de Fontes. 6500 16.13 Métodes Geaphies que desenham linha, retangulos eelipses. 603 16.14 Demonstragao de métodos que desenham linhas,retingulose elipses. 603 16.18 Elipse delimitada por um resingulo 504 16.16 Angulos de avo positivos e negativos. 605 XxIV (C#—Come Progiamar 16.17 Méiodes Graphics para desenhararcos. 05 16.18. Demonstragio de metodos de aco, 606 16.19 Métodos Graphics para deseahar poligonos. 508 16.20 Demonstragia de desenko de poligones. 608 16.21 Figuras desenadas em um formic, on 16.22 Caminkos usados para deseahar esrels em um formuliri. old 16.3 Redimensionamento de imagers. 617 16.24. Animagio de uma série de imagens. 619 16.25 Classe contéiner pare pegas de xadtez eat 16.20 Covigo dojogo de xaare ous 16.27 Demonstragio do Windows Media Payer. 29 16.28 0 Poody aprosentando-se quando 2 janeta bre 632 16.29 Animagio Pleased do Peed. 633 16.30 Reasio do Peedy quando ele € clicado, 633 16.31 Animagiodo Peedy voando. OW 16.32. 0 Peedy esperando pela entra falada. 634 16.33 0 Peedy repetindo 0 pecido do usudrio de pizza tipo Seattle. 635 16.34 0 Peedy repetindo 0 pesido do ustdrio de anchovas como saboradicional 635 16.38 0 Poedy relatando minuciosamente 0 pedo 035 16.36. 0 Peedy calculando o total. 036 16.37 Demonstrogio do Microsoft Agent 37 16.38 GUI do exereicio oto rainhas a7 Capitulo 17 Arquivos e Fluxos 17.1 Hierarcuia de dados. 651 17.2 Visio do C# de um arquivo de a bytes. 652 17.3 Métodos da clsse Fie (lista parcial 653 174 Métodos da classe Dixectory (Ista parcial). 654 17.8 Testando as classes Fite e Directory. ona 17.6 Expresso eyalar usada para determinar pes de argue, 637 17.1 Classe base para GUIs em nosios aplicativos de provessamento de arquivos. 962 17.8 Registro para aplicatvos de processamento de arquivos de acesso seqiencial 664 17.9 Crise grava em um arquivode acesso seiencial 566 17.10. Exempio de dads para o programa da 17 on Y7AA1 Lendo arguivos de acesso seqiencial 673 17.12 Programa de consulta a crédito. 67 17.13. Arquivo de acess aleatério com regisios de tarantofixo, 683 17.14 Registro para apliatvos de processamento de arquivos de acessoaleatrio. 084 Y7A8.Criandoarguivos para apicativos de processamento de arquivos de aceso slewrio 087 1746. Gravandoregstrcs em arquivos de acess aleatio, 690 17.17 Londo rogiatroo caquancialmanio do orquivos do acai alsa. or 178. Classe de iransacio de registro para oestudo de caso de processamento de transagies 699 17.19 A classe Transacti onProcessorFormexecuta 0 aplicativo de processamento de transsdes. 702 17.20 A classe StartDialogForm permite que os usuirios acessem caixas de didlogo associadas a vera tensogdes. 704 17.21 A classe UpdateDialogForn psrite que os usuiros aualizem registro no estudo de easo de processamento de transagdes. 707 17.22 A classe NewDialogrorm permite que os vsuios eriem registro no estudo de caso de processamento de ransagSes m2 17.3 A classe DeleteDialogForm pzrite que os usr removam repisros de arquvos no estado de caso de precessamenio de trnsigdes, ns 17.24 Inventério de um loja de ferragens. mi ‘Cpitulo 18 XML (Extensible Markup Language) 18.1 XML usado para marear um anigo. ma 182 article, xn1 exibido pelo Intemet Explore. 726 18.3. XNML pore fazer mareagao de uma cana comereta. nr BLED aia lustragées xxv 18.4 Demonstragao de espages de nomes XML. n9 18.5 Demonstragdo de espages de nomes padtio. 730 18.6 strata em drvore da 18.1 Bi 18.1 xmlNodeReader wach para percorrer um documento XML. BI 18.8 Esirutura DOM de um documento XML ilustrado por uma classe. 4 18.9 Classe xPathNavigator ussda para navegar em nds selecionados, 740 18.10 Documento XML que desereve vérios esportes 45 18.11. Expresses XPath e deserigies. 746 18.12 DTD parauma carta comercial, 741 18.13 DocuRento AML relerenciandd Sua Lt Y associa, 138 18.14 0 XML Validator valida um documento XML em relagio s urna DTD. 749 18.15 0 XML Vilidstorexibindo ama mensagem de cio, 749 18.16 Documento XML desacord com um documento Microsofi Schema, 750 18.17 Arquivo Microsoft Schema que contém a estrutura cbedecida por bookxd x1. 751 18.18 Documento XML que obedece ao W3C XML Schema, 752 18.19 Documento XSD Schema aque bookxsa. 2am) obedeve. 752 18.20 Exemplo de validagio de esquema, 153 18.21 Documento XML que nio esté de acordo com 0 esquema XSD da Figuras 18.19. 155 18.22 Arquivo XML gue nio ebedece o esquema da Figura 18.17 136 18.23 Documento XML contendo informagies de lives. 757 18.24 Documento XSL que transforma sorting «xan (Figura 18.23) em XHTML. 758 18.25 otha deestilos XSL aplieada em wm documenta XML 761 18.26 Terminolosia BizTalk 163 18.27 Marcagio BizTalk usando um esquema de oferta. 163 Capitulo 19 Bancos de Dados, S@L ¢ ADO.NET 19.1 Estratuca de banco de datos relacional de uma tabela Employes 115 19.2 Conjunto de resultados formado pela selego de dados de Department ¢ Location da tabela Employee. 75 193 Tabela Author's de Books. 116 19.4 Dados da tabela Authors de Books. 1716 198 Tubela Publishers de Books. 16 19.46 Dados da tabola Publ Lohere de Books. 176 197 Tabela AuthorTSBM de Books 6 19.8 Dados da tabela Author TSBN em Books, ™ 19.9 Tabela Titles de Books. m 19.10 Dados da tabela Ti tLes de Books. 78 19.11. Relacicnamentos de labela em Books . 19 19.12 Palavras-chave de consulta SQL. 780 19.13 authorID e Lastiame da tabela Authors, 781 19.14 Litulos com copynignt apos 1999 oa tweNd TEs se 19.15 Autores da tabela authors cyjos sobrenomes comegam com B. 782 19.16 Autores de tabela Authore evjos sobrenomes contim 4 como a segunda lta 783 19.17 Autores ds tabela Authors em ondem ascerderte por LastName, 784 19.18 Autores da tabela Author em ordem descendente por Last¥ane. 784 19.19 Autores da tabela Authors em ondem ascerdente por LastName e por firs tWane. 785 19.20 Livros da tabela 7.€2e8 cujosttulos terminam com Bow to Program, em ordem ascendente portitle. 786 19.21 Autores da tatela Authors e nimeres ISBN des livros dos autores, ordenadios em ordem ascendemte porlast-Nauec firstName. 187 19.22 Consulia 74 tLeauthor do bince de dados Booke 787 19.23 Pari do conjunto de resaltalos produrido pela consulta da Figura 1922 788 19.24 Autores aps uma operacio INSERT para adicionar um registro, 790 19.25 A tabela Authors ap6s uma opencio UPDATE para alterar um registro. 791 19.26 A tabela Authors apds uma operiedo DELETE para remover um regis, 791 19.27 Acessando e exibindo dados de um banco de datos. 193 19.28 Exccusto de instrugbes SQL em um banco de dads, 799 XXVI_ El C#—Como Programar 19.29 MMoeando weisros de umn banco de datos soi 19.20 Aplicaivo que gravarepresentagdo XML de um Dazaget ent umn axuive 307 19.31 Documenta XML gordo a panie do DataSet de BatabaocMcies tor 09 CCarituio 20. ASP.NET, Formulérios WEB e Controles WEB 20.1 Intergio servidor da Webiciont. Passo 1:0 pedido GER. GET /books/downlonds hem HTTP/1.1. 817 20.2 Clienteimeragindo como servdor da Web. Passo 2: wesposta HTTP, HTTPYI.! 200 OK 318 20.3 Arqutetura de trés eames, ai9 204 Pégina ASPX que mostra hora do servidor da Web 819 205 Arquivo de edi de reawuarda ds uma pégina que exibea hora do servidor da Web, 821 20.6 Respexta HTML quando o navegador chama WebTme. aspx. 23 20.7. Criando un ASP .NETWeb Application ao Visual Siu 323 20.8 0 Visual Studio eiando vinculando um diretio vital para a pasta de projet WebTime. 826 20.9 _Jancla Solution Explorer para o projets WebTie 26 20.10 Menu Web Forms is Toolbox 927 20.11 Modo Design ( projto) do proeista de formulcios Web, 827 20.12 Modo HTML do projtsta de formulécis Web, 328 20.13. Arquivo de cio de reaguarda de WebFoxm2 . aspx, gerado polo Visual Stadio NET, 829 20.14 lusragio de Gridtayout e Flowtayout. 329 20.15 Web¥orm. aspx apis sadigao de dois Labese a coafgurasso de suas propedades 830 20.16 Coniroles Web nermalmente usides em. 831 20.17 Demonstragto de contoles Web. wi 20.18 Clase AdRotator demonsirada em vm form 35 20.19: Arquivo de cts» de reiapearda da pga que demons 836 20.20 Advert cenent File usido no exemslo de RdRotator. 337 20.21 Validadores usados em um formulério Web que gera as combinagbes de letra possiveisa partie. de um aero de telefon. 340 20.22. Arquivo de e6dign de reiaguarda da pena geradora de palavras (observe qu, quando fornecido odigito 1, eleg subsituido porum espago em Dano). si 20.23 C6cigo HTML c ECMAScript cnviado pura o navegador cine 6 20.24 Arquivo ASPX que apresena umalista de inguegens do programagto 149 20.5. Arquivo de eéig de ragaréa que grava cookies no sien 851 20.36 Pisina ASPX que exbe informagiesée ives. 854 20.27 Cookies sendolidos de um cliente em umapicaivo ASP NET. 855 20.28 Proprieaes de HttpCookie. 856 20.29 Opgdes fomecidas em uma pgina ASPX. 857 20.30_Sessoes sao enadss para ca uswério em um aplicaive da Wed ASP.NET. 359 20-31 Propricdaes We Reepsessicnszate. 02 20.32 Instrigio do sesso exibdas om una Ld st Box. 862 20.33 Dados de sess idos por um epicaivo da Web ASP .NETT para fornecer rsomendagies par ousuério. 62 90.24. Gt do alietvo de vad ition 268 20.38. Arquivo ASPX do aplicaivo de lvo de visitas. 865 20.36. Arquivo de c6dign de reaguarda do aplicatvo deliv de visitanes. 867 2037 Formulirio Web de login. 870 20.38 Cédigo ASCX docabegalho. wn 2039 Arquivo de cig de eiaguara da pigira de login doaplcaivo de autores 873 2040 Arquivo ASPX que permite a0 usuirio selecionar ura autor em uma lista suspensa. 7 2041 ColocaydodsinformugSes de banco de dadcs em uma Datagrid. we 20.42 Pégina ASPX com rstwamonto desligade. 883 20.48. Rasreamentoativado nm ua pina ea 20.4 Informagées de rasteamento de un projeo. sad Capitulo 21. ASP.NET e Servigos da Web 211 Arquivo ASMX exibidono Intemet Explorer 396 21.2Desergio de um servigo da Web. 897 21.3 Chamando um método de um srvigo da Web apatr de um navegador éa Web. 397 4214 Kesullados da chamada a um metodo de servgo da Web a parr de um navegador ds Web. wm BLED aia lustragées Xxull 21.5 Requisigao SOAP para o servo da Web Hugeznteger. s98 21,6 Servigo da Web BugeInteger. 599 21.7 Modo de visualizagio de projeto ds um servigo da Web, 905 21.8 _Adisionanio ums referéncia de servigo da Web em um projete. 906 21.9 Caixa de didlogo Add Web Reference. 907 21.10 Selec e descrigao de refertncia Web, 907 21.11 0 Solution Explorer ap6s a ico de uma referéacia Web em um projet 908 21.12 Usando o servigoda Web HageZnteger. 908 21.13 Serviga da Web Blackjack. 913 421.14 Jogo de vinte-2-um que usao servo da Web Blackjack. wy 21.15 Servigo da Web de reserva de pussagens areas. 923 21.16 Servigo da Web de rescrva do passagens afreas no modo de 926 21.17 Arquivo ASPX que pega informagies de eserva 926 21.18. Arquivo de eédign de retaguarda d pégira de reserva. 927 21.19 Servigo da Web TemperatureServer. 929 21.20 Classe que armazena informagies climticas sobre uma cidade 932 21.21 Recebendo dados de temperatura eclima de um servigo da Web. 934 21.22 Classe que armazena informagies de equscao, 938 21.23 Servigo da Web que gers equagoes aleatorias. vai 21.24 Retornando um objeto de um métado de servigo da Web. 942 21.28: Aplicaivo de ensino de matemitcs a3 Capitulo 22 Redes: Soqueles e Datagramas Baseados em Fluxos 22.1 Parte do servidor de ams conexio de saquete de fluo cliente/servidor 955 22.2. Pane do eliente de uma conexto de soquete de fhixa cliente/servidor 958 22.3 Pant do lado do servidor da computago clienteservidor sem covexdo. 963 224 Pant cliente da computagao cliente/srvidor sem conexio. 965 228 Lado do servidor do programa de joge-da-velha clientlservidor. 968 22,6 Lado cliente do progratra de jogo-da-velka ciente/servidor. 913 22.7. Classe Square. 979 22,8 Letas do alfabotoe algaismos des oe Capitulo 23. Esituturas de Dados ¢ Colecdes 23.1 Exemplo de defnigdo da classe Rede auto-referencal 987 23.2 Dos objetos de classe auto-eferencial vinculades. 987 23.3 Uma represeniagio gritien de uma lista encadeata, 989 234 Dofinighes das classes LietNode, List e EmptyListExeepticn. 990 235 Demonstrando listas encadeadss. 993 236 Uma represeniacio gritica da cperagio TnsextatPront. 995 23.7 Uma represen grtica da operagio Inger tataack. 996 23.8 Umu represenaio grafica da cpersgo Memoverromrront. 990 23.9 Unn represemagio grifica da cpenigio RemoveP-romBack. 397 23.10 Stackrnherieance estende a clasie Lat. 908 23.11 Usando a classe StackTnkeri tance. 399 23.12 A classe StackComposi tion encapsula a furcionalidade da classe List. 1001 23.13 Queuernheri tance estende a classe List. 002 23.14. Usando heranga para criar uma fila, 1003 23.15. Uma represeniagio gritica de uma érvore bina 1005 23.16. Uma arvore de pesquisa binaria contendo 12 valores, 1005 23.17 Delingies de TeeeNode eT zee para uma érvore de pesquisa bin 1006 23.18 Criando e pereorrendo uma érvore bins, 1009 23.19. Uma dvore de pesquisa biniro. won 23.20 Definigtes das classes TreeNode ¢ Tree pira manipalarabjetos Tomparable. 1013, 23.21, Demonstrando a classe Tee com objetos Comparable. 1017 23.22 Programa que demonstra a classe Array. 1019 23.23. Alguns métodos da classe ArrayLiet. 1022 2324 Demonstanlo a classe Arraybist. tox XXVIII C#—Como Programar 23:25 Usando a casse stack 1027 236 Usindo acasic Hashtable. 1032 Caritulio 24 Acessiblidade 24.1 Les evade para methorara acessiidae da Intemete dos computadres par pessoas poradres de defcincis. 103s 242 Pigina principal da We Media. (Cortesia da WeMedia, Inc) tas 243 Ampliando fcones como recurso Customize. 1049 234 fecnesampliados na jarelade desemolvimento toa 24S _O'Text Ector anes da mosiicago do tamanho da fone 1080 24.6 Ampliando otexo ra janela Options. 1030 247 Text Esitor apés otamsanto da fnte ser modiicado. 1051 24s tad gins ra Toolbox. 1081 149 de tela de atl, 4032 24.10. Removendo suis do ambiente Visual Stadio. 1053 24.11. Janes de console come sem guias 1053 24.12. Propriedales da classe Contizol relacionadas 3 acessbilidade tos 24.13 Aplicaivo com recursos de sesssibilidad 1055 24.14 “Tabela XHTML sem mificagdes de acessibildade. 1039 24.15. Tabela oimizads pra letores de teas, usando o auibuio Readers. 1061 24.16. Pagine principal esertacm VoiceXML, 1063 24.17 Pigina VeiceXML de publicagio da Deitel and Associates, 1068 24.18 ‘Tags VoiceXML. 1069 24.19 Excmplo de CallXML Hello World. (Comtesia dh Voxeo. © Vexeo Corporation 2000-2001.) 1070 2420. Exemrlo de CallXML que 6 tes valores ISBN. (Conesiada Voxeo,© Voxeo Corporation 2000- 2001.) 1071 2421. Elemeatos de CallXML. 1073 24.22, Dislogo Confguragbes de exbigio. 1076 2423 Opyies deincilizayo do Assistente de acessibllidade. wn 2424. Didlogo Tamanho da barra de olagem e da borda da jana, 077 24.25. Ajostandoo tamanho dos elementos da jane 1077 24.6 Opyocs de Exibie configuragéee do cores. 1078 24.27. Fenamenia de configuagio do curso: do muse do Assistente de acessil 178 2428. Didlozo Sinaizador de som. 1079 2429. Dislogo Mostrar sons. 1079 2430. Jancla Teclas de aderéncia 1080 2431. Didlogo Teclas de repercussao. 1080 2432. Janela Teclas de altemnancia 1080 2433. Dislogo Ajuda extra sobre 0 teclade, 1081 2434 Jarcla Teclas para mouse. 1081 2438. Jarola CenfiguragSes de botées do mouse. 1082 1436. Dislogs Valanidarie da mawee 1089 2437 Dislogo Definir tempos limites autométicos. 1082 24.38a Dislogo Configuragdes padrao de acessibilidade, 1083 24.38b Concluindo o Assistente de acessiblidade. 1083 2439 Janela Narrator. tos 2440. Janelade controles de voz. 1084 244L_O Narrator lenco tex do Bloco de notas. 1083 2442. Teolade virtual de Micros. 108s 2443. Opyioe de avssbilidade do Microslt Internet Explorer 6 1086 24.44. Convigurages de aessblidade avangadhs no Microsoft Intemet Explorer 6 toss Apéndice A Tabela de precedéncia de operadores, Ad Tabsla de precedéncia de operadores. 1097 Apendice B Sistemas de numeragao (no CO) Apendice © Oportuniataues ve carrera (no CO) BLE aia Hustragées Xxx Apéndice D-Depurador do Visual Studio .NET Di Erro de sintaxe, 1102 D.2-_Exemplo de depuragio de programa. 1103 D3 _Configurando um ponto de parade Nos D.A__Ajuite da conliguragio de dopuragio, 10s DS _Aplicativade console suspenso para depuracio. ios D.G __Execucio suspensa em um ponto de para 10s D7 Janela Wateh, 1106 DS _Janelasautos, Locals e This. 1107 D9 Janela Immediate. 1107 D.10 {cones da barra de Feramentas Debug. 1108 Dill Janela Breakpoints. 1109 D.A2 Ponto de parada desstivado. 1109 DiA3 Caixa de didlogo Now Breakpotnt. 110 D.1d Caixa de idlogo Breakpoint Hit count, 110 D.1S Caixa de diglogo Breakpoint Condition, 110 D.16 Depurando métodes. un DAT Janela cal stack, m2 D.18_ 0 IDEeexibindo o pontode chamada de um métedo, m2 D.A9_ Recursos de controle de programa para depuragio. m2 D.20._Usindo. janela immediate para depurer meétados. m3 D.21_Exemplo de depuragio de objets. m3 1.22 Localizagio do ponte de parads paras depuragdo de lasses. us D.23 Classe expandida najanela Watah, ms D2 Army expanuid na jinela wate ms Apéndice E Gerando documentagdo no Visual Studio (no CD) Apéndice F_ Conjunto de Caracteres ASCII FI Conjunto de caracteres ASCH. m9 Apandice G Unicode® (no CD) Apéndice H_Infegragée COM (no CD) Apéndice | Introducdo & Hypertext Markup Language 4: Parte 1 Apéndice J Inlroducdo & Hypeifext Markup Language 4: Parte 2 Apendice K IniroducGo ao XHTML: Parte 1 Apendice L_ Inlrodugdo Go XHTML: Parte 2 Apéndice M Caractores eepeciais do HIML/XHTML Mul Caracteresespecials XHTML, 1126 Apéndice N. Cores no HTML/XHTML Na Cores padio do HTMLXHTML ¢ valores RGB hexadeeimais correspondeates, 127 N2__ Comes estendidas do XHTML e valores RGR hexadecimais comespondentes. un Apéndice © Manipulagdo de bits (no CD) Apéndice P_ Crystal Reports for Visual Studio .NET PA _Opgies do especiaista em relatrio. (Conesia da Crystal Decisions.) 4131 2 Opgdes do menu de formatseo do especialista (Cortesia da Crystal Decisions) 1132 P.3 Interface do projtista do Crystal Repos. (Comtesta da Crystal Decisions.) 1133 PAGINA EM BRANCO PREFACIO Viver em fragmentos ndo mais. Apenas conectado. Edward Morgan Forster Tecemos wna teia na infncia, uma teia de aspecto alegre Charlote Bronte Bem-vindo ao C# € a0 mundo da programagao Windows, Internet e World Wide Web com o Visual Sludio ¢ a plataforma -NET! Este liv € 0 segundo de nossa nova série .NET How to Program, que apresenta Yarias tecnologias de compuagio de ponta, no coniexto da platafoma .NET. 0 Cit —a fase seguinte na evolugio do C e C+, desenvolvido expressamente para a plataforma NET da Microsoft — fornece os recursos que sto mais importantes para os programadores, como programagao orientada a objetos, strings, elementos gréficos, componentes de interface com 0 usuario gréfica (GUD, tratamenio de excegdes, maltiplas linhas de execugio, multimidia (udio, imagens, animagio e video), processamento de arquivos, estruturas de dados pré-empacota- das, processamento de banco de dados, redes cliente/servidor com base na Internet ¢ na World Wide Web ¢ computagio dis tribuida, A linguegem ¢ apropriada para implementar splicativos para a Intemet e World Wide Web que se integram de forma tranyparenie com 09 aplicativos bascades em PC. A plataforma .NET oferece poderosos recursos para o desenvolvimento e a distribuigdi de software, incluindo a independéncia de uma linguagem ou plataforma especffica. Em vez de exigir que os desenvolvedores aprendam uma nova linguagom de programagio, os programadores podem contribuir para © mesmo projeto do software, mas eserever eédigo usando qualquer uma (ou vérias) das linguagens .NET (como C#, Visual Basic .NET, Visual C++ .NET e outras) pelas ‘quais tém preferéncia e/ow nas quais so mais experientes. Além de fornecer independéncia de linguagem, © .NET amplia a portabilidade dos programas, permitindo que os aplicativos .NET residam e se comuniquem entre varias plataformas — facilitando assim a distribuigdo de servigos da Web pela Internet. A plataforma NET permite que os aplicativos ba- seados na Web sejam distribuidos para aparelhos eletrdnicos de consumo, como telefones celulares e assistentes dizitais pessoais, assim como para computadores de mesa, Os recursos que a Microsoft incorporou na plataforma .NET criam um novo paradigma de desenvolvimento de software, que aumentard a produtividade do programador e diminuiré o tempo de desenvolvimento. BLED aia 00K C#— Como Programar Recursos neste livio Esta edigito contém muitos recursos ttis: + Convengoes na apresentagio do cédigo. Este livro apresenta 0 c6cigo com alguns tipos de fortes diferentes, de acordo com o tipo de informagao, Nossas convengOes para a sintaxe Sao as seguintes: conentérios palavras-chave valores literais erros e diretivas do ASP .NET texto e nomes de classes, métodos e varidveis + “Lavagem de eddigo”. Essu & nossa expresso para © processo que usamos para formatar os programas do livre, de modo que cles tenham um layout aberto ¢ euidadosamente comentado. O eédigo aparece com Fontes diferentes, © 6 agrupado em pequenas partes bom documentadas. Isso melhora muito a legibilidade do eédigo — um objetivo especialmente importante para nés, eonsiderando que este livre contém aproximadamente 23.500 linhas de esdigo. + Servicos da Web eASP .NET. A estratégia NET da Microsoft considera a Internet ea Web como partes integrantes dos processos de desenvolvimento distribuigao de software. Os servigos da Web —os Web Services, umatecnolo- gia importante nessa estratégia— permitem 0 compantilhiamento de informagies, comércio ¢ outras interagdes usan- do protocolos ¢ tecnologias padrdo da Intemet, como Hypertext Transfer Protocol (HTTP), Simple Object Access Protocol (SOAP) ¢ Extensible Markup Language (XML). Os serviges da Web permitem acs programadores empa- covar a funcionalidade de aplicativos de uma maneira que transforma a Web em uma biblioteca de componentes de software is No Captulo 21 apresentamos um servigo da Web que permite que 0s usuétios fagam reservas de poluun ein una Compania vies, Nese exempl, un usuatiy avesat ui pga Web, esculle wins opyay de poltrona c envia a pégine para o servidor da Web. EniZo, a pégina chems um servigo da Web que verifica adisponi- bilidade do assento, Também apresentamos algumas informagies relacionadas aos servigos da Web no Apéndice P que discute sofware de produgio de rela6rios popular para aplicatives que usam bancos de dados intensivamente. 0 Caystal Reports, que € integrado no Visual Studio. NET, fornece a eapacidade de expor um relatério como um ser ‘coda Web. 0 apéndice fornece informagies inirodutérias e condu7 es leitores em uma excursio por esse process no site Web da Crystal Decisions (www. crystaldecisions .con/net). + Web Forms, Web Controls ¢ ASP .NET. Os desenvolvedores de aplicativos devem eriar aplicatives baseados na Web robustos ¢ flexivels. A arquitetura da plataforma .NET suporia esses aplicativos. A tecnologia do lado do servidor INET da Micresoft, Active Server Pages (ASP) .NET, permite que os programadores construam docu ‘mentos da Web que respondam a solicitagdes dos clientes. do lado do servider processam as informagSes que 0s usu 6 um desvio significative das verses anteriores de ASP e permite que os desenvolvedores programem aj baseados na Web usando as poderosas linguagens orientadas a objetos do .NET. © ASP NET também fornece roeursos de prearamagao vioual melhoradce, comolhantoe Aquolee wad. joo Windows para programas para microcomputadores. Os programadores podem criar pginas Web visuslmente, arrastando e soltando controles Web em formulirios Web. Capitulo 20 apresenta essas poderosas teenologias, 1a conetragdo do Formal + Programagio orientada a objetos. programagio orientada a objetos &a técnica mais amplamente empregada para desenvolver software robusto e reutlizavel, ¢ 0 C# oferece recursos aprimorados de programagao orienta bjetos. Este texto oferece uma rica apresentagdio da programagdo orientada a objetos. O Capitulo 8 mostra como criar classes ¢ objetos, Esses conceitos sao estendidos no Capitulo 9, que discute como os programadores podem criar novas classes que “absorvem’” os recurses de classes jé existentes, © Capftulo 10 famniliariza 0 leitor com os conceitos fundamentais do polimorfismo, das classes abstratas, das classes concretas ¢ das interfaces, que facili- tam manipulagSes poderoses entre objetos pertencentes a uma hierarquia de heranga. + XML. O.uso de Extensible Markup Language (XML) esté explodindo no setor de desenvolvimento de softwai ‘nas comunidades de e-business e e-commerce e penetra em toda a plataforma NET. Como a XML € uma tecno- logia independente de plataforma para descrever dadios e para criarlinguagens de marcacao, a portabilidade dos dados da XML se iniegra bem com os aplicalivos e servigos portéveis do C#. 0 Capitulo 18 spresenta a XML. BLED aia Preficio XXXII 'Nele apresentamos a marcagtio XML bisica ¢ discutimos teenclogias como DTDs e esquemas, que so usadis para validar conteddo de documentos XML. Tumbém explicamos como manipular documentos XML por meio de programas usando © Document Object Mode! (DOM™*) ¢ com transformar documentos XML em outros tipos de documentos utilizando o de Extensible Stylesheet Language Transformations (XSLT). ‘Miltiplas linhas de execugo (multithreading). Os computadores nos permitem executar muitas tarefas em para lelo (ou concorrentemenie), como a impress de documentos, o dovnload de arquivos de uma rede e a navegagio nna Web. As meltiplas linhas de execucdo representam uma tecnologia por meio da qual os programadores poclem desenvolver aplicativos que executam tarefas concorrentes, Historicamente, um computador possui um tnico pro- cessador caro, que seu sistema operacional comparitha entre todos os aplicativos. Atvalmente os processadores esto se tornando tio baratos que & possivel construir computadores acessiveis com muitos processatlores que fun- cionam em paralelo — esses computaclores sao chamados de multiprocessadores. As miltplas linhas de execugio stio eficazes nos sistemas de um dnico processador em multiprocessadores. Os recursos de multiples linhas de ‘execugdo do C# tornam a plataforma e stas tecnologias relacionadas mais bem preperadas para trtar com os atuais aplicativos distribuidos sofisticados de uso intenso de multimidia, banco dedados, bescados em rede multiproces- sadores. Capitulo 14 fornece uma discuss deialhada scbre maltiplas linhos de execugio. ADO.NET. Os bances de dados armazenam arplos volumes de informagZo que as pessoas e empresas dever aces- sar para fazer negécies. Como uma evolugdo do ActiveX Data Objects (ADO) ca Microsoft, o ADO .NET representa ‘uma nova estratégia para construir aplicativos que interagem com bancos de dados. 0 ADO NET usa XML e um ‘modelo de objeto methorado para fornecer aos desenvolvedores as ferramentas que precisam para acessar e manipu- larbancos de dados, para aplicativos de grande escala, extensiveis, de missdo critica e miftiplas camadas.O Capitulo 19 deialba os recursos do ADO .NET e a Structured Query Language (SQL) para manipular baneos de dados. Visual Seatio NET Debugger. Depuradores 380 programas que ajudam es programasores a cncontrare corrigirerros sgices no e6digo do programs. © Visual Sudio NET contém uma poderosa ferramenta de depuragio que permite que 0: programadlores analisem seus programss linha a linka enquanto eles executam. No Apéndice D explicamos ‘como usar 0s principais recursos do depurador, como a configuracio de pontos de parada e “watches”, pereorrendo procedimentos ¢ examinando a pilla de chamada de procedimento, Integracio COM (Component Object Model). Antes da introdugdo do -NET, muitas empresas gastavam tempo € dinheiro criando componentes de software reutilizaveis, chamados Componentes COM, que incluiam coniroles ActiveX” € DLLs (Dynamic Link Libraries — bibliotecas de vinculagio dinamica) ActiveX para aplicativos Windows. No Apéndice H discutimos algumas das ferramentas disponfveis ao Visual Studio .NET para integrar esses Componentes ein aplicativos .NET. Essa integrayio permite que os programadores usem conjunios existen- tes de controles baseados em COM, com componenies NET. Daocumentagio em XML. Documentar océtigo do programa € fundamental para desenvolvimento de software, pois, diferentes programadores frequentemente trabalham em um aplicativo durante 0 ciclo de vida do software, que em zgeral inciui varias versGes e pode abranger muitos anos. Se os programadores documentarem 0 célizo e os méiodos do soliware, outros progranadbores que tabalhem no apiicativo poderdo aprender e entender a I6gica subjacente 20 ‘e&iigo, economizando tempo eevitando desentendimentos. Para automatizar a documentagdo de programas, o Visual Studio .NET fornece uma ferramenta XML para programadores de C#, O Apéndice E-explica como um programador pe inserir comentarios no cédigo, o que produ um arquivo separado fornecendo a documentagio do cédigo. Oportunidades de carreira. 0 Apéndice C apresenta servigos de carreira disponiveis na Internet. Exploramos 08 servigos de carreira on-line, da perspectiva do empregador e do empregado, Relacionamos muitos sites Web nos quais vocé pode enviar currieutos, procurar trabalho e examinar candidatos (se veé estiver interessado em. Ccontratar alguém). Tamhém examinamos os servigos que consiroem paginas de recrutamento diretamente nos ce-businesses. Um de nossos revisores nos disse que usou a Internet como principal ferramenta em uma recente pesquisa de emprego e que este apéndice 0 ajudou a expandir enormemente sua busca, Unicode. A medida que 0s sistemas de computador evoluiram no mundo todo, os fornecedores de computador desenvolveam repesentagbes numéricas de conluntos de caraterese sfmbcos especas para os idiomas locals falados em diferentes pases. Em alguss cass, diferentes represcaiages eram desenvolvides para os mesinas ious, Eases conjuntin de cracires disput auajallavan 4 comunicaydo enue us sistas Ue copula, BLED aia OV C#— Como Programar C# suponta 0 padrélo Unicode (mamido por uma organizago sem fins lucrativos, chamada Unicode Consortium), que maniém um dico conjunto de caracteres especificando valores numéricos exclusivos para caracteres sfmbo- los especiais na maieria dos idiomas do mundy. O Apéndice G discuteo palrdo, dé umn Unicode Consortium (www. unicode .org) ¢ apresenta um aplicativo C# que mostra “Welcome to Unicode!” com virios idiomas. + XHTML. 0 World Wide Web Consortium (W3C) declarou o HTML como uma tecnologia legada que ni ter mais desenvolvimento. 0 HTML esti sendo substituido pelo Extensible Hypertext Markup Language (SHTML) — uma tecnologia baseeda no XML que esté se tornando rapidamente o padro para descrever contetdo da Web. Usamos XHTML no Capitulo 18 ¢ oferecemos uma introcugio a tecnologia nos Apéndices K e L. Esses apéndi- ‘ces dio um panorama dos eabecathos, das imagens, das listas, dos mapas de imagem e de outros recursos dessa ‘emergente lingvagem de mareagao, (Também apresentamos o HTML nos apéndices Le J, pois ASP .NET, usado ‘nos capitulos 20 € 21, gera contetido HTML.) + Acessibilidade. Embora.a World Wide Web tenba se tornado uma parte importante da vida de muitas pessoss, atusl- ‘mente o meio apresenta muitos desafios para os portadores de deficigncias. As pessoas portadoras de deficiéncia auditiva e visual, em particular, t&m dfculdade de acessar sites da Web ricos em muitimiia. Em uma tentativa de methorar essa sitvagao, o World Wide Web Consoriium (W3C) langou a Web Accessibility Intiaive (WA), ue fornece diretrizes para tomar os sites Web acessiveis para pessoas portadoras de deficiéncias. O Capitulo 24 descreve essas diretrizes e destaca virios produtos e servigos projeiados para melborar a experiéncia de navega- «40 na Web de pesscas com deficigncias. Por exemplo, o capitulo apresenta a VoiceXML e a CallXML — duas tecnologias baseadas em XML para aumentar a acessibilidade do conteddo da Web para pessoas portadoras de deficiencia visual, + Manipulagio de bite. Oo compuiadores trabelhom oom dadoo na forma de digitos bindrioe ou bito, que podem astumir o$ valores 1 ou 0. Os circuitos do computador realizam vérias manipulagSes de bit simples, como exa- minat o valor de um bit, configuear o valor de um bit e inverter um bit (de 1 para 0 ou de 0 pata 1). Os sistemas operacionais, equipamentos de teste, software de redes e muitos outros tipos de software exigem que os programas se comuniquem “diretamente com o hardware”, usando manipulaedo de bits. © Apéndice O d& um panorama dos recursos de manipulegao de bits fornecidos pela plalaforma NET. Algumas notas para instrutores s alunos gostam de aprender uma linguagem de ponta ‘0 Dr. Harvey M, Deitel deu cursos intcodutérios de programagio em universidades por 20 anos, com énfase no desenvolvi- mento de programas bem projetados eescitos claramente. Muito do que foi ensinad nesses cursos representa 0s prineipios bisicos da programagd, concentrando-se no uso eficente de tipos de dados,estrturas de controle, array e fung@es. Nossa cexperiéncia tem sido a de que os estudantes tratam o material deste livro praticamente da mesma maneira como trtam outros cursos de programagio introdutéres ¢ intermedifrios. Contudo, hé uma diferenga notavel: os alunos ficam altamente mot- ‘des pelo fato e estar aprendendo uma linguagem de pont, C4, e um paradigma de programacdo de ponta(programagio ‘orientaéa 2 objetos), que serdo imediaiamente utels para eles quando entrarem no mercado de trabalho. Isso aumenta 0 en- tusiasmo pelo material — que ¢ fundamental, quando vece considera que existe muito mais a aprender em um curso sobre ‘CA, agora que os estudantes precisim dominar a linguagem bésica e muitas bibliotecas de classes. Embora 0 Ci seja uma Tinguagcm nova, que pode exigir que os programadores renovem suss habilidades, eles ficario moiivados a fazer isso, em Virtue da poderosa gama de recursos que a Microsoft esié ofereeendo em sua iniiatva NET. Um mundo da orientacao a objetos No final dos anos 90, as universidades ainda enfatizavam a programaco procedimental. Os cursos de ponta estavam usando ‘C++ orieniado a objetos, mas esses cursos geralmente misturavan uma grande cuantidade de programacio procedimental com programacio crientala a cbjetos — algo que o C++ permite que os programadores facam. Muitos instrutores esto agora enfatizando uma estratégia de programacdo orientada a objetos pura. Este livro —o segundo texto de nossa série NET — adota uma estratégia predominantemente orientada a objetos, devido & orientagio a objetos fomecida no C#. Foco do tivro Nosso objetivo era claro: produzir um Livro-texto de C# para cursos introdutGrios e intermedifrios, universitirios ou nil, BLE aia Prefacio XXXV Sobre programago de computadores, destinado a estudantes com pouca ou nenhuma experiencia em programagao, e ainda oferecer a profundidade e 0 tratamento rigoroso da woriae pritica exigides por profissionaise estudantes decursos de progr rmagio de nivel superior radicionais, Para atingir esses objetives, produzimos um livro abrangente que ensina pacientemente ios da programago de computadores ¢ da linguagem C#, ineluindo estruturas de controle, programagio orientade a tecas de classes do C#, conceitos de interface com 0 usuirio grfiea, programagio dirigida para eventos e muito mais. Ap6s deminar 0 material deste livro, 05 estudantes estario bem preparados para programar em C¥ e para empregar os recursos da plataforma NET. Comunicacdo com uso intenso de multinidia ‘As pessoas querem se comunicar. E claro que elas se comunieam desde 0 comeco da civilizagio, mas 0 petencial para troca de informagies tem aumentado dramaticamente com a evolucao de virias tecnologias. Até recentemente, mesmo a comuni- pelo computador era limitada principalmente a disitos. carecteres alfabéticos e caracteres especiais. A onda atual da tecnologia de comunicacdo envolve a distribuigao de multimidia — as pessoas gostam de usar aplicaivos que transmitem figuras coloridas, animagdes, vores, clipes de dudio e até video colorido com movimento por meio da Internet. Em algum Ponto insistremos na transmissfo de imagens tridimensionais em movimento. Muitas previsdes apontam que a Internet finalmente substtuird o ridio ¢ a televisio como os conhecemos hoje. Analogamente, nao € diffeil imaginar jornais, revistas ¢ livros distibufdos para “a palma de suas mos” (ou mesmo éeulos especiais), por comunicagdo mével. Muitos jormas € revistas ja oferecem verses baseadas na Web, ¢ alguns desses servigos {mse difundido no mundo da comunicagio mével. Quando os telefones celulares foram introdzidos, eles eram grandes de- sajeitados. Hoje, eles séo pequenos dispositivos que cabem em nossos boisos € muitos so habilitados para a Internet. Perante avelocidade do avango atval, a tecnologia de comunicagio mével em breve ofereceri servigos melhores de fluxo de video e elementos grficos empacotados, como chamades em conferéncia por video e jogos de video para vaos jogadores. Estrategia de ensino Ente livro contém uma riea colegio de exemplos, exereieios ¢ prajetos extraidos de muitos campos e destinados.a forneeer aos cestudanies uma chance de resolver problemas interessantes do mundo real. Os exemplos de eédigo deste texto foram tesiados no Windows XP. O livro se concentra nos prineipios da boa engenhatia de software e enfatira a clareza do programa. Somos educadores que ensinam t6picos priticos avangados em classes do setor por ‘odo 6 mundo, Evitamos a ierminologia e as cespecificagdes de sintaxe complicadas para favorecer 0 ensiro por meio do exemplo. O texto enfatiza a boa pedagosia’. Abordagem de ensino Live-Code™ Exte livro esti repleto de exemplos Live-Code™, Esse estilo exemplifica a maneira como ensinamos ¢ escrevemos sobre Programacio e € 0 foco de nossas Cyber Classrooms de multimidia e cursos de ireinamento baseados na Web. Cada novo ‘conceito € apresentado no contexto de um exemplo funcional completo, que ¢ imediatamente seguido de uma ou mais janelas rmostrando. caixa de diélogo de entrada/saida do programa. Chamamos esse método de ensino ¢ escrita de abordagem Live- ‘Code™, Usamos linguagens de programacao para ensinar linguagens de programacao. Ler os exemplos do texto & muito parezido com digité-los e executi-los em um computador Acesso it World Wide Web ‘Todos os exemplos deste livro (e de nossas outras publi sites Web: is na Internet para download, nos seguintes 1gdes) esto disper srw. deitel com www -prenhali.com/deitel registro € rapido e facil, e esses downleads so gratuites. Sugerimos fazer o download de todos os exemplos e depois exe- ccutar cada programa, quando voc¢ ler 0 texto correspondente. Faga alteragdes nos exemplos ¢ veja os efeitos dessas alleracoes Imediatamente — uma maneira excelente de aprender a programar. Cada conjunto de insirugdes presume que 0 usutio esteja 1. Usams fontes para disinguir entre recursos do Integrated Development Environment (IDB), do Visual Studio NET (como nomes de me- nas tens de menv).e oukros elementos que aparecert no IDE. Nossa convenso &enfatizar os recursas do IDE na fonte Helvétca,negrio, sem serila (por exemplo, menu Project e enlatizar texto de programa na fonte Courier, negito, com serifa (por exemplo, bool x= true/). BLED aia OVI (C# — Como Programar do 0 Windows 2000 ou © Windows XP ¢ esteja usando o Internet Information Services (IIS) da Microson. 0 Visual Studio NET, que inclui o C8, pode ser adquirido junto & Microsoft. Estdo disponiveis ts versbes diferentes do Visual Studio.NET — Enterprise, Professional e Academic. Visite 0 enderego developerstore.com/devstore/ para obier mais detalhes e para ver opgdes de compra on-line. Se voce for membro da Micrasolt Developer Network, visite 0 enderego mén microsoft .com/default. asp. Objetivos Cada capitulo comega com objetives que informam os estudanies sobre o que esperar e que dio a eles a oportunidad, apés lor 0 capitulo, de datorminar co atingiram o¢ objetiver protendidas. Oe objetivo pervem como eonetrutorve de eonfianga © ‘como uma fonte de reforco positive. Citardes Os cbjetivos dos capitulos sio seguidos por conjuntos de citagdes. Alaumas sio hnumorsticas, algumas filos6ficas e outras ‘ferecem idéias interessantes. Achamos que os estudanies gostam de relacionar as citagies com 0 material do capitulo. Muitas das citagées merecem uma “segunda olhada”, apés a leitura de cada capitulo. Resume ‘© resumo do capitulo permite que os estudantes encarem o material de cima para baixo. Junto com os objetivos do capitulo, 0 resumo ajuda os estudantes a aniecipar os tpicos futuros € a definir um ritmo de aprendizalo confonuivel ¢ eficient, Aproximadamente 23.500 linhas de eédigo em 204 exemplos de programas (com saides de programa) Apresentamos os recursos do Ct no contexto de programas funcionais completes. Os programas tém tamanho variado, poucas linhas de eédigo até exemplos substanciais, contendo virias contenas de linhas de e6 igponsveia ne CD que acompanha o liveo ssde igo. Todos es exemplos estio 607 ilustragdesffiguras Muitos grificas, desenhos e saidas de programa esto incluidos. A discussfo das estruturas de controle, por exemplo, apre- senta fluxegramss cuidadosamente desenhiados. (Nota: nio ensinamos 0 uso de fluxogramas como ferramenta de desenvol- vimento de programas, mas usamos uma breve apresentago orientada por fluxogramas para explicar a operagiio precisa de ceada estrutura de controle do C#.] 509 dicas de programaciio Inclufmos dicas de programagdo para ajudar os estudantes a focalizar aspectos importantes do desenvolvimento do programa. Destacamos centenas dessas dicas na forma de Boas priticas de programacéo, Erros de programagéo comuns, Dicas de teste e depuragio, Dicas de desempenho, Dicas de portabilidade, Observacées de engenharia de software ¢ Observagées de aparéncia e compontamento. Essas dicas ¢ priticas representam 0 melhor que os autores vislurmbraram em uma combina- ‘¢lo de sete déadas de experiéncia em programagao e ensino. Uma de nossas alunas — formada em matemitica — disse-nos ‘que acha que essa estratégia & como 0 destaque de axiomas, (eoremas € coroldrios nos livros de matemidica; ea fornece uma base na qual se constrol um bom software. 91 Boas préticas de programagéo. SS irantaumnamasnien a a EE Re ‘mas meliores. Quando damos cursos inurodudrios para quem nao € programador divemos que d “dica” de cada curso€ a “cla- rexa"¢ felamos ao: estudantes que desiacaremos (nessas Beas pritices de programaedo) as Kenicas para eserever programas mais claro, intligiveis e manuteniveis. iF i) 165 Ettos de programacdo comuns 0s estudantes que estio aprendendo uma linguagem — especichmemte em seus prineiros cursos de programagdo — rendem a cometer certostipos de errs regiienemente. Apontar esses Err de proeramecdo comuns redt: a prebabilidde de que os est- antes cometam os mesmos erro. sso tambim diinu as longasflas fora dos escritéros des isirwtores, durante o expedient! ® 44 Dicas de teste e depuracao ‘Quando praietanos pela primeira ver esse “tipo de dica”. ackdvemas que elas conteriam supestées estriamente para expor BLED aia Prefacio Ml XXXVII ‘eros e remové-ios dos progranas. Na verdede, muitas das dicas descrevem aspectos do CH que inypedem que os “erros" eurem nos programas, simplifcando assim 0 processo de teste e depurapa. 57 Dicas de desempenho 00 rans an os oe poe en OP sic tr pin cura ppmsgts Was bs Goins eres Setar rornemec a estes Salo cic aie cllg osu hee pers es eer ad ciation ne see eos retin see dceger Oe etter Sr espn ee a Taina” wel perma eer Ra ple papel tape cae preload ros fase plaice os ea a comical ena lone 16Dicas de portabilidade RYE Inctuinos Dicasde ponabildde para ciudar os exudantes a escrevercéiigo portéele para dar idéins sabre como. CB atinge set alo sraude ponabilidade [7a] 118 Sbservacties de engenharia ce sofware © paradigna de programacdo orienada a objeto necesita de une manera de pensar comperanente wove sebre como cons Iruinos sistemas de software. C# é uma linguagem efciente para se realizar une boa engenheria de sofware. As Observages de enzenkaria de software destaca problemas arqutetinicose de projeo que afetam a constracdo de sistemas de sofavare, ‘especialmente sistemas de larga escola. Grande porte do que oestudante aprende agi sera til em: cursos de nel superior e na indisiria, quando o estudante comegar a trabalhar com sistemas grandes e complexes do mundo real. i) 21 Observacdes de aparéncia e comportamento ESS) Fernecemos Obsernagées de aparéncia e comporamente para destacar comengSes da interface com o usuirio grifica. Essas observacies ajutam os esudantes a projetar inerfaces erdficas atraentes e anigdveis para o usuério, que obedecam as normas dosetor. Resumo (1.277 itens de resumo) Cada capitulo termina com dispositivos pedag6sices adicionais. Apresentamos um resumo completo do capitulo, no estilo de uma lisia de itens. Em média, existem 39 itens de resumo por capitulo. Isso ajuda os estudantes 2 revere reforgar conceitos importantes. Terminologia (2.932 termos) Inclufmos uma lista em ordem alfabstica dos termos importantes definides no capftulo, em uma seco chamada Terminologia. Novamente, isso serve como mais um reforgo. Em média, existem 89 termos por capitulo. Cada termo também aparece no fndice, para que o estudante possa localizartermos e definigdes rapidamente. 098 xereicios de revisdo e resposias (a contagem inclut as partes Separadas) Extensivos exercicios de revisio e respostas sio ineluidos para estudo individual. Essas perguntas e respostas lio a0 estu- ‘dante uma chance de ganhar coafianga com o material e preparar-se para os exercicios regulares. Os estudantes devem ser estimulados a tentar todos os exercicios de revisio e confer suas respostas, 367 Exerctcios (a contagem inclut as partes separadas) ‘Cada capitulo termina com um conjunto substancial de exereicios que eavelvem a simples recordapao de terminologia € conceitos importantes; a escrita de instrugdes C# individuais; a escrita de pequenas partes de métodos € classes Ct ‘aeserita de métodes, classes ¢ aplicativos C# completos; ¢ a escrita de projetos maiores, Esses exercicios cobrem uma ampla variedade de t6picos, permitindo aos instrutores personalizar scus cursos sogundo as necessidades exclusivas de ‘cu pliblico e variar as tarefas do curso em cada semestre. Os instrutores podem usar os exerefeies para formular tarefas para casa, pequenos testes © exames maiores. “Indexacdo dupla” de todos os exemplos de Live-Code™ C# Bate livro tem 204 exemplos Live Code™, que “indexamos duplamente”. Para eada programa cm eédige fonte CH no BLED aia YOCAVIIL HL C# — Como Programar livro, pegamos © nome do arquivo com 2 extenso «ce, como em ChessGame. cs, ¢ 0 indexamos em ordem alfabética (nesse caso, sob “C") e como um subsndice sob “Exemplos”. Isso tomna mais fécil encontrar exemplos usando recursos emt particular, C# Multimedia Cyber Classroom e The Complete C# Training Course Preparames uma versfo em software interativa desde livro, baseadaem CD-ROM, chamaila C# Multimedia Cyber Classroom. Exse recurso est repleto de recursos e-Learning, que sio idesis para aprendizado e reforéncia, O Cyber Classroom esti empa- eatada cam a livra-texia, com desconta, no The Complete Cll Training Conrse (om inglés). Se vood jé tomo livre @ quer ad ‘quitir 0 C# Multimedia Cyber Classroom separadamente, visite 0 endereco www .TInformI?. com/cyberclassrooms. 0 niimero ISBN do C# Multimedia Cyber Classroom € 0-13-064587-7. Todos os Cyber Classrooms da Deitel™ estio dispo- niveis no CD-ROM e em formatos de treinamento bascados na Web, Inicictivas de e-Leaming da Deitel e-Books e suporte para dispositivos de comunicagto mévet 0s dispositivos de comunicagdo mével desempenhario um papel fundamental no futuro da Internet, Dadas as receates me- Ihorias na largura de banda e a aparigao de tecnologias de 2,5 ¢ 3G, esta previsto que, dentro de poucos anos, mais pessoas acessario a Internet por meio de dispasitivos de comunicagio movel do que airavés de computadores de mesa. A Deitel & Associates, Inc. esti comprometida com a acessibilidade de comunicaylo mével e recentemente publicou o Wireless Internet & Mobile Business How 19 Program, Para atender ds necessidades de uma ampla gama de clientes, estamos desenvolvendo alualmente nosse contctide nos formatos impressos tradicionais © nos formatos eletrénicos reeentemente desenvolvides, bvoks, pata que estudlantcs © professores pussain accsset uconteddy @ quclqucs ‘enderego wwrv:deiteleom para ver auslizagées perisdicas sobre essa iniciativa (em ingl oo a Visite ent de qualqucs Ie ). e-Matter A Deitel & Associates, Inc. est4 se associando & empresa controladora da Prentice Hall, a Pearson PLL, ¢ seu site Web de tec- nologia da informacio, InformIT. com, para lancara série Deitel e-Matter no endereco www. InformIT .com/deitel. Exsa série fornecera uma fonte de informagao adicional para professores, esiudantes ¢ profissionais sobre tpicos especificos da programagio, O e-Matier co 's ndependentes exirafdas de textos publicados, textos fuluros ou partes eseti= ‘as durante © processo de pesquisa e desenvolvimento da Deitel, Desenvolver e-Matter baseado em livros antes de sua publi- ‘eagio nos permite oferecer quantidedes significativas do material para uso em cursos por quem os adota previamente. Alguns titulos possiveis de e-Matier sobre C# que estamos considerando ineluem Object Based Programming and Object-Oriented Programming in Ct, Graphical User interface Programming in Cd, Multithreading in C#, ASP NET and Web Forms: AC View, e ASP NET and Web Services: A C# View. Sis ty de cursus. WebCT, DlucKbvurd © Cour seCompuss Estamos trabalhando com a Prentice Hall para integrar nossos cursos How fo Progra Series em tres sistemas de geren- clamento de cursos: WebCT, Blackbaard™ e CourseCompass. Esses sistemas de gerenciamento de cursos perm ‘8 instrutores criem, gere dos programas educativos baseados na Web, Os recursos do si _gerenciamento de cursos incluem personalizagio de cursos (como o envio de informagées de conto, planos, detalhamen- tos, antineios, tarofas, notes, avaliagBes de desempenho e controle de progresso), ferramentas de gerenciamento de turmas © alunos, um boletim de notas, ferramenias de produco de relatérios, ferramentas de comunicagio (como salas de bate-papo), ‘um quailro-branco, compartilhamento de documentos, quados de avisos ¢ muito mais. Os instrutores podem usar esses pro- ‘datos para se com alunos, eriar testes on-line e testes de perguntas diretamente igavlas ao texto, e dar nota automaticamente e controlar os resultades do teste. Para mais informagSes sobre esses futuros produtos, visite 0 endereso www. dei tel .con/whatsnew.html, Para demonstragdes de cursos WebCT, Blackboard ¢ CourseCompass existentes, ite os enderecos cms.prenhall.com/WebCT, cns.prenhall.com/Blackboard ¢ cns.prenhall.con/ CourseCompass, respectivamente nas de gevereiaan em © usem sof Boletins da Deitel e Informit BLED aia Prefacio XXxIX Deltel Column nas InformIT Newsletters A Deitel & Associates, Inc. colabora semanalmente com uma coluna no popular boletim InformiT, stualmente assinado por mais de 800 mil profissionais de IT no mundo inteiro. Para se registrar, visite o endereco www.InformIT.com. Boletim da Deitel Nosso boletim gratuito contém comentarios sobre tendéncias e desenvolvimentos lo setor, links para artigos e recursos de nossos livros publicados e fuwuras publicagdes, informagdes sobre publicagdes futuras, agenda de langamento de produto € ‘muito mals, Para registarse, visite 0 endereyo www.deitel «com. Agradecimentos Um dos grandes prazeres de eserever um livro-texto & agradecer os esforgos de muitas pessoas cujos nomes podem afio apa- recer na capa, mas cujo trabalho drduo, cooperacdo, amizade e entendimento foram cruciais para a produgio do livro. Muitas ovtras pessoas da Deitel & Associates, Inc. dedicaram longas horas para este projet. + Sean E. Santry, graduac em ciencia da computagao ¢ filosofia pelo Boston College, diretor de desenvolvimento de software da Deitel & Associates, Inc. ¢ co-autor do Advanced Java 2 Plaiform How 10 Program, colabor0u nos capitulos 18 10, 12, 13 ¢ 18.423. + Matthew R. Kowalewski, graduado em sistemas de informagio de contabilidade pelo Bentley College, € 0 diretor de desenvolvimento de comunicaydo mével da Deitel & Associates, Inc. Ele colaborou nes capitules 19 ¢ 20, nos aptndices B, F La Ne Pe editouo indice. + Jonathan Gadi, graduado pela Columbia University School of Engineering and Applied Science, com especializa- ‘cao em ciencia da computagio, € 0 co-autor do Capitulo 17¢ colaborou nos capitulos 9 ¢ 22 e nos apéndices De E. + Kyle Lomeli, graduada em ciéncia da computagdo pelo Oberlin Collegee com énfase em estudos da Asia Oriental, colaborou nos capituios 11, 14, 15, 19 ¢24. + Lauren Trees, graduada no idioma inglés pela Brown University, editou o manuserito inteiro para dar suavidade, clareza ¢eficdcia 4 apreseniagio; ela também & co-autora do Prefacio, do Capitulo | edo Apéndice P. + Rashmi Jayaprakesh, graduado pela Boston University com especializagdio em ciéncia da compatacio, & co-autor do Capitulo 24.€ do Apéndice G. + Laura Treibick, graduada em fotografia e mullimidia pela University of Colorado em Boulder, é diretora de mul- timfdia da Deitel & Associates, Ine. Elacolaboroa no Capitulo 16 e aprimorou muitos dos elementos grdficos por todo o texto, + Betsy DuWaldt, graduada pelo Metropolitan State College de Denver, com especializacao em comunicacio t6e- nica (com éafase em redacZo ¢ edicdo) e énfase em sistemas de informacao de computador, ¢diretora editorial da | & Associates, Inc, Ela & co-autora do Prefacio, do Capitulo I e do Apéndice Pe gerenciou o provesso de permissoes do liv. + Barbara Deitel aplicew as ee nanuscrito. Ela fer isso em paralelo com sas amplas responsabilc dades financeiras e administrativas na Deitel & Associates, Inc.,o que inclui atuar como diretora financeira chefe. [Todo mando na empress trabatha no contetido do livro.} + Abbey Deitel, graduada em programa de gerenciamento industrial pela Carnegie Mellon University ¢ presiden- te da Deitel & Associates, Inc., recrutou mais 40 funciondrios em tempo integral e internos durante 2001. Ela também alugou, equipou e mobiliou nosso sezundo prédio para criar © ambiente de trabalho no qual este livro € nossa outras publicagdes do ano 2001 foram produzidas. Ela sugeriuo titulo da série How to Program e editou este preficio e varios capitulos do livr. 2.0 Deitel & Associates, Inc. College latemship Program oferece um nimero limitado de estgios remunerados para os estudantesuniver- itt da egido de Boston, nos Estados Uns, fazendo expectalizagio em elénckada compuiagia, cenologta da informa, marketing, _gerenciamento inglés. Os estudartes traballam em nessa sede conporatva, em Sudbury. Massachasets, om tempo integral, dursnte 6 vero € (para aqueles que fazem faculdade na regio de Boson), em meio perfodo, durante 0 sno ltivo, Também oferecemas estigios em tempo integral para osestudantes imteressados em tratcara matricula por um semeste, para ganhar experifncia ra industria. Esto dispont- veis vagas em tempo integral para formados. Para mais informagOes sobre esse competitivo programa, ene em contato com Abbey Deitel, no emlerego deittel@dei tel .com,e visite nosso ste Web, no enderego werw.deitel com. BLED aia XL C#— Como Programar ‘Também gostariamos de agradecer aos participants do Deitel & Associates, Inc. College Internship Program’. + Jeffrey Hamm, estudante de segundo ano de cigneia da computardo da Northeastem University € 0 co-autor dos ‘capftlos 16, 18, 20 ¢ 21 e dos aptndices D eH. + Kalid Azad, estudamte do segundo ano de ciéncia da computago da Princeton University. coluborou nos capitulos 1,2, 12, 13e 16 eno Apéndice D. Ele criou slides auxiliares no PowerPoint para os capftulos 1a 7 € pesquisou 0 Visual Studio NET ¢ a iniciativa .NET da Microsofi + Christopher Cassa, calouro de cigncia da computago do MIT, colaborou nos capitulos 3 a 7 18, + David Tutte, bacharclanlude vigneia da computay ficou exemplos para os capitulos 3.46, 7, 11, 16, 17, 19, 23 €26. + On Schwarz estudante de segundo ano de ci2ncia da computago da Boston University, produziu solugbes para todos 0s capitulos e colaborou no Capitulo 16, + Thiago Lucas da Silva, estudante de segundo ano de ciéncia da computacdo da Northeastern University testou todos os exemplos de programagéo nas varias versOes beta e cankidatas a langamento do Visual Studio .NET. + Matthew Rubino, estudante de segundo ano de ciéncia da compuiagio da Northeastern University, ericu materiais auxiliares para o livro inteito, + Elizabeth Rockett, bacharelanda em inglés da Princeton University, editou os capftulos 1.43, 7, 8, 14, 17e 19.424, + Barbara Strauss, bacharelanda em inglés da Brandeis University, editow os capftulos 16, 9a 13 ¢ 18a 24. + Christina Carney, bacharelanda em psicologia © comércio do Framingham State College, ajudou no Preficio. Harvaid, vulabuoe nus capitulos 8, 18, 19 © 24 © vad + Reshma Khilnani, caloura de ciéncia da computagdo © matemitica do Massachusetts Institute of Technology, ‘colaborou no Capitulo 18 eno Apendice E. + Brian Foster, estudante de segundo ano de ciéacia da computagdo da Northeastern University, ajudou n0 Preficio ‘ena Bibliogratia, + Mike Preshman, estudante de segundo ano da Nerthzastera University com especializago em ciéneia da compu- tagdoe énfese em engenhatia eltrica e matemstica, ajudou na Bibliografia Temos a sorte de ter tabalhado neste projeto com a talentoss e dedicada equipe de profissionais de publicagio da Prentice Hall, Apr jalmente os extraordinirios esforgos de nossa editora de eigncia da computagio, Peta Recter,¢ de sua chefe e nessa mentora na publicagio, Marcia Horton, diretora editorial da divisio de engenharia e cincia da ‘compurtagdo da Prentice-Hall, Camille Trentacoste e seu chefe, Vince O’Brien, fizeram um trabalho maravithoso de gerencia- mento da produgio do livro. Sarah Burrows foi a responsivel editorial no amplo pacote auxiliar do livro. 0 C# Multimedia Cyber Clessroom foi desenvolvide em paralelo com este livro. Apreciamos sinceramente as idéis {de “nova midi”, 0 hom senso e a experiéncia téenica de nessos editores de midia eletrinica, Mark Taub ¢ Karen McLean. Elese o gerente de projeto, Mike Ruel, fizeram um trabalho magnifico na publica do C# Multimedia Cyber Classroom do The Complete C# Training Course. Tovenios agradecer especialmente 3 criatividade de Tamara Nownam (amaxt_axt@oarthlink not), que pro- dazin aarte final de nossos feones de dicas de programagio e da capa. Ela criow a criatara encantadora que compartilha com voeé as dicas de programacdo do livro. Barbara Deitel e Abhey Deitel colaboraram com os nomes dos besouros da capa. Durante o desenvolvimento deste manuscrito, tivemos a sorte de contar com duas universidaddes — o Massachusetts Institute of Technology e a Yale University — fazendo o beta-teste do livro, no segundo semestre de 2001. 0 professor do MIT. John Williams, usou o texto para dar aulas em nivel de graduagio, Web System Architecting — Part I: Programming Clients and Web Services Using C# and .NET, para o Off-Campus Advanced Study Program. Chris Cassa, estagiria do pri- meiro semestre de 2001 na Deitel & Associates, Inc, foi a professora assistente da classe. O professor da Yale, Paul Hudak, sou 0 manuscrito para uma aula de Introduction to Prograraming, que ensinava linguagens de programacio orientada a ob- Jetos. Gostarfamos de agradecer ao professor Williams, ao professor Hudak e & Chris, por suas contribuigdes. O retorno que recebemos foi fundamental para a otimizagao deste texto, Queremos revonhecer os esforgos de nossos revisores cia primeira e da segundo etapa, e a Crissy Statuto e Jennifer ‘Cappello da Prentice Hall, que os recrutaram e gerenciaram o processo de revisio. Obedecendo a um eronograma apertado, iamos expel esses revisoes examinaram 0 texto € os programas, dando da apresenscio, um priviégo tera orienego de profs: inconlivesssugestoes para melhorar a precisio ea intetreza soma ialenfosos e ocupados. BLE aia Preficio XL Revisores da edicdo original em inglés: Hussein Abuthuraya (Microsoft) Lars Bergstrom (Microsoft) Indira Dhingra (Microsoft) Bric Gunnerson (Microsoft) Peter Hallam (Microsoft) Habib Hegdarian (Microsoft) Anson Hoxton (Miczosoft) Latha Lakshminarayanan (Microsoft) Kerry Loynd (Microsoft) Tom MeDade (Microsoft) Syed Mehdi (Mierosofi) ‘Cosmin Radu (Microsoft) Raita Rakshminorayana (Microsoft) Imtiaz Syed (Microsofi) Ed Thomburg (Microsoft) Richard Van Fossen (Microsoft) Rishabh Agarwal (Delteq Systems Pte. Lt.) José Amonio Gonzélez Seco (Sadiel S.A.) Paul Bohman (WebAIM) Alex Bondarey (SureFire Commerce, Inc.) Kon Braithwaite (Nutriware) Filip Bulovic (Objectronics PTY Lid.) Mark Burhop (University of Cincinnati) Carl Burnham (Southpoint) Matt Butler (Oakscape Ine.) Andrew Chau (Rich Solutions, Inc.) Dharmesh Chauban (Microsoft Corsulkant, Singapore) Shyam Chebrolu (SAIC Broadway & Seymour Group) Kunal Cheda (DotNetExtreme.com) Edmund Chou (MIT Student, www.devhood.com project, Microsoft Intern) James Chegwidden (Tarrant County College) jay Cinnakonda (University of Toledo) Michael Colynuck (Sierra Systems) Jay Cook (Canon Information Systems) Jeff Cowan (Magenic Technologies) Robert Dombroski (AccessOnTime) Jesse Wilkins (Metalinear Media) ‘Warren Wiltsie (Fairleigh Dic Phil Wright (Crownwood Consulting Ltd.) Norimasa Yoshida (MIT Graduate Student) ‘Shaun Eagan ((Eagan Consulting) Brian Erwin (Extreme Logic) ‘Hamilton Fong (Montag & Caldwell, Inc.) Gnanavel Gnana Arun Ganesh (Arun Microsystems) ‘Sam Gentile (Consultan) ‘Sam Gill (San Francisco State University) John Godel (TIX) David Haglin (Minnesota State University in Mankato) Jeff Isom (WebAIM) Rex Jaeschke (Consultant) Ait Kalani (MobiCast) Priti Kalani (Consultant) Bryan Keller (csharphelp.com) Patrick Lam (EiigeNet Communications) ‘Yi-Fung Lin (MIT Student, www.devhood com project. Microsoft Intern) ‘Maxim Loukianov (SoloMio Corporation) Gaurav Mantro (EDS PLM Solutions) Jaimon Mathew (Osprey Sofivare Technology) Robert Meagher (Compuware NuMega Lab) ‘Arun Nair (iSpan Technologies) ‘Saurabh Nandu (Macieresharp.com) ‘Simon North (Synopsys) Jibin Pan (esharpeorner.com) Graham Parker (VBUG) Bryan Plaster (Valtech) ‘Chris Rausch (Sheridan Press) Debbie Reid (Santa Fe Community College) Bryn Rhodes (Softwise, Inc. Craig Schofiing (C.A.S. Training) Rahul Sharma (Maxutil Software) Devan Shepitent (XMaL_pha Technologies) David Talbot (Reallinx, Ine.) Satish Talim (Pune-Csharp) Pavel Tsekov (Consultant) John Varghese (UBS Warburg) Peter Weng (MIT Student, wwww.devhood.com project, Microsoft Intern) on University/Seton Hall University) Apreciarfamos sinceramente seus comentitios, eriticas, corregGes e sugesifes para melhorar o texto. Mande corres pondéncia para: XL (C#— Como Programar Bera ions. qasrandyuanice Bertwindo ao excitante mundo da programaglo C#. Esperamosque voce goste dessa visto {dos aplicativos de computador de ponta. Boa sorte! Dr Harvey M. Deitel Paul J. Deitel Tem R. Nieto Cheryl H. Yaeger Marina Ziathing eff Liufichd BLED aia Preficio XL Sobre os autores Dr. Harvey M. Deitel, dirctor-presidente da Deitel & Associates, Inc., tem 40 anos de experiéncia no campo da computagao, incluindo ampla experiéncia na indistria e académica. O Dr. Deitel tem bacharelado e mestrado do Massechusetts Institute ‘of Technology e doutorado da Boston University. Trabalhou nos projetos de sistemas operacionais de meméria virtual pio- neires da IBM e do MIT, que desenvolveram técnicas agora amplaniente implementadas em sistemas como UNIX, Linux ¢ Windows NT. Tem 20 anos de experigneia de ensino superior, sendo titular © presidente do departamento de ciéncia da ‘computacdo do Boston College, antes de fundar a Deitel & Associates, Inc. com seu filho, Paul J. Deitel. & autor ou co-au- tor de dezenas de livros e pacotes mukimidia € esté escrevendo muitos mais. Com tradugdes publicadas em japones, nusso, ‘espanhol, chines tradicional, chines simplificado, coreano, francés, polonés, italiano e portugues, os textos do Dr. Deitel @m vento internacional. O Dr. Deitel profere seminéios profssionais para importantes empresas € pata or _ganizagSes governamentais¢ vérios setores militares. Paul J. Deitel, vice-presidemte executivo e direior iéenico da Deitel & Associates, Inc., é graduado na Sioan School of do Massachusetts Institute of Technology, onde extudou tecnologia da infownaao, Por meio da Deitel & Associates, ira cursos de Java, C, C++, Intemet ¢ World Wide Web para clientes do setor, incluindo Compag, Sun Microsystems, White Sands Missile Range, Rogue Wave Software, Bocing, Dell, Strats, Fidelity, Cambridge Technology Partners, Open Environment Corporation, One Wave, Hyperion Software, Lucent Technologies, Adra Systems, Entergy, CableDaia Sysiems, NASA, Kennedy Space Center, National Severe Storm Laboratory, IBM e muitss cutras empresas. Profere conferéncias sobre ‘C++ e lava para o Boston Chapter da Association for Computing Machinery e cursos de Java, bnseadlos em sate, através de ‘umacooperacio entre a Deitel & Associates, Inc. Prentice Hall e Technology Education Network. Ele e seu pai, Dr. Harvey M. Deitel, sioos autores de livro-texto sobre ciéncia da computacdo que mais vendem no mundo. ‘Tam R. Nieto, dirt de desenvalvimenta en Institute of Technology, onde estudou engenharia e computagio. Através da Deitel & Associates, Inc., ministra eursos para clientes do setor, incluindo Sun Microsystems, Compaq. EMC, Stratus, Fidelity, NASDAQ. Art Technology, Progress Software, Toys “R” Us, Operational Support Facility da National Oceanographic and Atmospheric Administration, Jet Propulsion Laboratory, Nynex, Motorola, Federal Reserve Bank of Chicago, Banyan, Schlumberger, University of Notre Dame, NASA, varias instalagdes militares ¢ muitas outras. E co-autor de numerosos livros ¢ pacotes multimidia com os Deitel e tem colaborado em praticamente todas as publicagdes da Deitel & Associates, Inc. Cheryl H. Yaeger, diretora de publicagdes de sofiware da Microsoft ra Deitel & Associates, Inc, graduou-se pela Boston University em trés anos, com bacharelado em ciéncia da compatasio. Outras publicagdes da Deitel em que colaborou incluem Perl How to Program, Wireless Intemet & Mobile Business How to Programe Internet and World Wide Web How to Program, Second Edition. Cheryl esté cada vez mais interessada naestratégia NET da Microsoft eem saber como. inicativa NET se desenvolverd no proximo ano, Marina Zlatkina graduou-se pela Brandeis University em ciéneia da computago e matemética, em trés anos, e esté fazendo mestrado em ciéncia da computagdo pela Brandeis. Durante sua carreira na Brandeis, tem feito pesquisas sobre bancos de dados bém colaborou no livro e-Business & e-Commerce for Managers da Deitel & Associates, In. Jeff Listfield ¢ bacharelando em cincia ds computagao pelo Harvard College. Seu trabalho de fim de curso inclai aulas de computagao grdfica, redes e teoria compuacional. Jeff tem experiéncia em programacao com C, C++, Java, Perl e Lisp, ele também colaborou no livro Perl How fo Program, da Deitel & Associates, Inc. imerecido reconhe 2 prodlutne da ie es Massacho Sobre a Deitel & Associates, Inc. ‘A Deitel & Associates, Inc. ¢ uma empresa de treinamento corporativo e eriagain de conteido reconhecida internacional- mente, especializada em tecrologia de software para Internet/World Wide Web, e-business/e-commerce. tecnologia de ob- jelos e educagdo de linguagens de programacao de computadores. A empresa fornece cursos sobre Internet e World Wid ‘Web/programacdo, programayao de Internet mével, tecnologia de objetos ¢ sobre as principais linguagens de programagio ce plataformas, como Visual Basic .NET, C#, Java, Java avangado, C, C++, XML, Petl, Python e muito mais, Os fundadores «da Deitel & Associates, Inc. sio 0 Dr. Harvey M. Deitel e Paul J. Deitel Os clientes da empresa incluem muitas das maiores ‘empresas de compulagio do mundo, agéneies do governo, setores militares e organizagies comerciais. Em seus 25 anos de de publicagio com a Prentice Hall, a Deitel & Associates, Inc. publicou livros-texto sobre programacao de ponta, prolissionais, Cyber Classrooms, Complete Training Courses, multimidia interativos baseados em CD-ROM, e-books, BLED aia ‘e-matter, cursos de treinamento baseados na Web e e-conten! de sistemas de gerenciamento de curso. A Deitel & Associates, ‘os autores podem ser encontradcs via e-mail no enderego deiteledeitel.con Para saber mais sobre a Deitel & Associates, Inc., suas publicagdes € seu curriculo corporative mundial, visite 0 enderego, wnrv.deitel.com Quem quiser adquirir livros da Deitel, Cyber Classrooms, Complete Training Courses ¢ cursos de treinamento baseados na ‘Web, pode fazer isso por meio das livrarias, vendas de livros on-line ¢ dos enderegos ‘Qu envie um e-mail para vendas@pearsoned.com. O World Wide Web Consortium (W3C) A Deitel & Associates, Inc. ¢ membro do World Wide Web Consorium (W3C). O W3C foi fundado em 1994 “para desenval- ver protocolos comuns para a evolusdo da World Wide Web”. Como membro do W3G, a Deitel & Associates, Inc. tem lugar no W3C Advisory Commitee (0 representaate da empresa é nosso diretor de tecnologia chefe, Paul Deitel). Os membros do Advisory Committee ajudam a dar “diregio estratSgica” ao W3C por meio de reaniSes mantidas em todo o mundo. As ‘organizagdes membros também ajudam a desenvolver recomendagses de padres para teenologias da Web (como XHTML, XML e muitas outras) por meio da participagio nas atividades e grupos do W3C. A participayio como membro no W3C & dostinada a empresas 2 grandos oeganizagtes, Para obvor informagios cabre coma se tomar membro de W3C, visite 0 endo reco www .w3.org/Consortiun/Prospectus/Joining. PAGINA EM BRANCO BLED aia RSS ( INTRODUCAO AOS COMPUTADORES, A INTERNET, A WEB E AO C# Obienvos + Entender os conccitos bisicos de compatago. + Aprender sobre vérias linguagens de programacao. + Familiarizar-se com a histéria da linguagem de programago CH, + Entender a iniciativa.NET da Microsoft® + Vor uma prévie dos capitulos restantes do livro. As coisas so sempre melhores no inicio. Blaise Pascal Alltos penscamentos devem ter alta linguagem. Arist6fanes ‘Nossa vide é desperdicada pelos detalhes.. Simplijique, simplique. Henry David Thoreau Antes de comecat; planeje cuidadosamente.. Marcus Tullius Cicero Procure comecar de maneira atdaz. Virgilio Acho que estou comecando a aprender algo sobre isso. Auguste Renoir BLED aia Capitulo 1_Introducaio acs Computadores, a Internet, & Web e ao C# 47 i, Resumo = We 1 intoauceo NE 12 Oqueeuncorpuioa? 1.3 OrgarizagGo de computadores 1.4 Evolugéo des sistas oporacionals ‘omputacdo pessoal, cormpulagio distibuida e computagéo clente/senidor Linguagens de méquina, Inguagens assernbly e Inguagens de ato nivel C. C44. Visual Ree: NET Jena ce (Outros inguogens de alto nivel Progromagdo estuturada Pacipal tendéncio de sortware: tecnologia de objets Terdéncias de horcware Anistéria da internet o do World Wide We> wac XM. infrodugGo co Microsoft NE} Apiotafoma .NTe oC \Visa0 geral Go vio Recuisos da Internet e da World Wale Webs Restono» Terminologia + Esericios de revisdo» Respostas dos exerci de revisio'» Exenccio 1.1 Introdugao Bem-vindo ao C#! Neste livro, projetado para Iitores de todos os niveis, de programadores habituais a pessoas com pouca ‘ou nenhuma experiéneia em programagio, trabslhamos arduamente para fornecer informagdes precisas e completas sobre a linguagem C# e a plataforma NET. Esperamos que trabalhar com este texto seja uma experiéncia de aprendizado inferma- iva, divertida e desafiadora para voe®. Como um livro pede ser atraente tanto para iniciantes como para programadores experienies? A base deste livro cenfaiiza a obtenciio da clareza do programa, por meio de téenicas comprovadas de programacio estruturada, programacdo ‘aseada em objetos, programacto orientadaa ebjetos (POO) ¢ programacéo dirigidla por eventos. Aqueces que no so pro- ‘gramadores aprendem as habiidades que servem de base & boa programacdo: os desenvolvedores experientes recebem uma cexplicagdo rigoresa da linguagem e podem methorar seus estilos de programagdo. Talvez.0 mais importante, o liv apresenta ‘centenas de programas C# completes efuncionais e mostra suas saidas. Chamamos iso de abordagem Live-Cooe™. Todos 0s ‘exemplos do livro estdo disponfveis no CD-ROM que o acompanha. 0 uso do computador esté aumentando em quase todos os campos de trabalho. Em uma era de custos sempre cres- ccentes, 0s custos da computacao tém diminuido substancialmente, em virtude de ripidos desenvolvimentos na tecnologia de hardware e software. Os computadores que ocupavam enormes salas € custavam milhdes de détares hé apenas duas décadas agora sio feitos na superficie de chips de silicio menores do que uma unha, custando talvez poucos délares cada um. O si- Icio & um dos materiais mais abundantes da Terra — ele é um ingrediente da areia comum. A tecnologia do chip ¢e silicio barateou a computagao de tal maneira que centenas de milhSes de computaklores de propésito geral estio em uso no mundo todo, ajudando as pessoas no comércio, na indistria, no governo e em suas vides pessoais. Dada a taxa corrente de desenvel- vimento tecnoldgico, esse ntimero pode facilmente dobrar nos prosimos anos, Voeé estd comezando a percorrer um caminho educacional desafiador e recompensador, Esperamos que vor@ apro- weite 0 aprendizado de CH, 1.2 O que é um computador? Um computador & um dispositivo capa. de realizar célculos ¢ tomar decisbes I6gicas milhdes e até bilhdes de vezes mais ripido do que os seres humanos. Por exemplo, muitos computadores.pessoais podem realizar centenas de milhdes — até BLED aia 4B (C#—Come Programar .— de operagoes de soma por segundo, Uma pessoa operando uma calculadora necessita de décadas para concluir o mesmo ndmero de calculos gue um computador pessoal poderoso consegue realizar em um segundo. (Pontos a ponderar: ‘como saber se a pessoa somou os miimeres corretamente? Como saber se © computador scmou es niimeres corretamente?) Os supercomputadores mais répides da atualidade podem efeiuar centenas de bilhdes de operagdes de soma por segundo lculos que centenas de milhares de pessoas levariam cereade um ano paracfetuar! Os compuladores capazes dereclizar twilhSes de instrugSes por segundo jé esto funcionando em laborat6rios de pesquisa! Os computadores processam dados sob 0 controle de conjuntos de instrugdes chamadas programas de computador Esses programas guiam es computadores através de conjuntos de ages ordenadas, especificadas por pessoas conhecidas ‘como progrimadores de computador ‘Um computador € composto de vérios dispositives (como o teclado, tela, mouse, discos, meméia, CD-ROM e uni- ddades de provessamento), conhecidos como hardware. Os programas executados em um computador so chamados de soft ware. Os eustos do hardware tm deelinado substancialnente nos Gltimes anos, a ponto de os compuatadores pessoais terem se tornadlo uma mereadoria comm, Entretanto, os custos do desenvolvimento ée software tém aumentado constantemente, & medida que os programadores desenvolvem aplicatives ainda mais poderosos ¢ complexos, sem serem capazes de melhorar jgnificativamente atecnologia do desenvolvimento de software. Neste livro, vocé vai aprender métodos de desenvolvimento de software comprovados que podem reduzir os custos do desenvolvimento de software — refinamento “top-down” passo apasso, andlise funcional e programacio orientada a objetos. A programagio orientedaa objetos é amplamente tide como a ruptura significativa que pode melhorar de mancira substancial a produtividade do programador. 1.3 Organizagao de computadores ‘Todos es computadores, independentemente das diferengas na aparénciafisica, podem ser divididos em seis seges ou uni- dades tgicas: 1. Unidade de entrada. Bssa segio “receptors” do computador obtém informagSes (dados e programas de computador) de virios dispositivos de entrada. A unidaile de entrada coloca entZo essas informages 3 disposigo das ovtras unidades, para faclitar seu processamento, Atualmente, a maioria dos usudrios introdus. informagSes nos computadores por meio de teclados ¢ dispositives de mouse. Outros dispositivos de entrada ineluem microfones (para falar com o computador), scanners (para digitalizar imagens) e cimeras digitais (para tirar folografias e fazer videos). Unidade de saida. Essa segio de “distribuiga” do computador pega as informagdes que 0 computador processou e as, coloca em virios dispositives de saida, tornando-as disponiveis para uso fora do computador. Os computadores podem produzir saida das informagdes de varias maneiras, incluindo apresenté-la em telas, reproduzi-la em dispositivos de fiudio/video, imprimi-laem papel ou usé-la para controlar outros dispositivs. 3. Unidadle de memoria. Essaé asegaio de “armazém” de acesso répido e capacidade relativamente baixa do computador, {que facilita o armazenamento tempordrio dos dados. A unidade de mem@ria mantém as informages que foram intro- duzidas por meio da unidade de entrada, permitinde que elasestejam imediatamente disponts ‘Além disso, a unidade mantém as informagSes processadas até que elas possam ser transmitidas para os dispositi- ‘vos de sefdo. Froqiiontomonto, a unidado do moméria & chamada de montdria ou meméria principalsa RAM (random aceess memory — meméria de acesso aleatério) um exemplode memériaprincipal. Amemériaprincipalé normalmen- te voliti, 0 que significa que ela é apagada quando a miquina é desligada 4. ALU (arithmetic and logic unlt —unidade de ariunética ¢ tdgica). A ALU € a sezd0 de “fabricaglo” do computador. Ela responsével por efetuar eélculos como adigdo, subtragio, multiplicaggo e divisio. Ela também contém mecan >. permitindo que o computador realize tarefas como determinar se dois itens armazenados na meméria sio iguais. mos de 5. CPU (central processing unit — unidade central de processamento). A CPU serve como a segio “administrativa” do computador, Trata-se do coordenader do computador, responsavel por supervisionar a operagao das outras segdes. ACPU alerta a unidade de entrada quando as informagoes devem ser lidas na unidade de memeria, instrui 2 ALU a respeito de quando usaras informagies da unidade de meméria em célculos e diz & unidade de sada quando enviar as informag6es da unidade de meméria para certos dispositivos de sai. 6 Unidade de armacenamento secundério, Essa unidade € a secao de “armazenamento” de longo prazoe alta capacidade do computador. Os dispositives de armazenamento secundario, como unidades de disco rigido e discos, normalmente coatém programas ou dads que outras unidades nao estio usando ativamente; o computador poder entdo recuperar essas inlormagies quando forem necessirias — horas, dias, meses ou mesmo anos mars tare. As intormagées do BLED aia Capitulo 1 Introdueo acs Computadores, a Internet, Web e a0 C# 4 ‘armazenamento secunditio demoram muito mais para ser acessadas do que as informagdes da memsria principal. Entretanto, o prego por uniade de armazenamento secundrio € muito menor do que o prego por unidade de meméria principal. O armazenamento secundério normalmente € ndo voldri! — ele martém as informagSes, mesmo quando o ‘computador é desligado. 1.4 Evolu¢do dos sistemas operacionais (Os primeiros compatadores eram capazes de realizar apenas um trabalho ou tarefa por vez. Nesse modo de operacao do ‘computador. frectientemente chamado de pracessamento de lotes (baich) monousttio. o computador executa um programa Por vez e processa os dados em grupos chamados Jotes (batches). Os usuarios desses primeiros sistemas normalmente sub- mmetiam seus trabalhos a um centro de computagio, em magos de cartbes perfurados, Freqientemente, horas ou mesmo dias ‘se passavam antes que os resultados retornassem para as mesas dos Us Para tornar 0 uso do computador mais convenient, foram desenvolvidos sistemas de software chamados sistemas ‘operacionais. Os primeiros sistemas operacionais supervisionavam e gerenciavam as transigbes entre tarefes do computador. Minimizando o tempo para que o operador do computader trocasse de uma tarefa para outra, osisiema operacional aument va o volume total de trabalho, ou volume de travatho (throughput) que os computadores podiam processar em determinado periodo de tempo. A medida que 0s computadores se tornaram mais poderosos, 0 processamento de lotes monousuario se tornou inefi- ‘exZ, pois os computadores despendiam muito tempo esperando por dispositivos de entrada/saida lentos para completar suas tarelas. Entdo, os desenvolvedores criaram téenicas de multiprogramagao que permitiam que muitas tarefas compartithas- ‘sem os recursos do compatador, para melhor uilizé-lo. A multiprogramardo envolve a operagio “simultanea” de muitas tarefas em um computador, que divice seus recursos entre essas tarefas. Eniretanto, 0s usuirios dos primeiros sistemas ‘operacionais de multiprogramaeao ainda submetiam os trabalhos em magos de cartOes perfurados e esperavam horas ou ‘las pelos ressnados. Nos anos 60, virios grupos industria & universitérios criaram os sistemas operacionais de tempo compartithado (imesharing), Tempo compattilhado um tipo especial de muliiprogramagio que permite aos usuarios acessarem um com patador por meio de rerminais (dispositivos com teclados ¢telas). Dezenas ou mesmo centenas de pessoas podem usar um “Gounpucador de wemipo compertiihado ao mestio tempo. & imporsiore noter qué o computador fio cxecuta Os pedldos de todos os usuarios simultancamente. Em vez disso, cle exccuta uma pequena parte da tarefa de um usuério e passa aseiviro usudrio soguiate, Entretanto, como 0 computador faz isso mute rapidamonts, cle pode atender cada usurio Virias vezes por segundo. 0 dé aos programas dos usuérios a aparéneia de execugio simultinea. O tempo compartilhado oferece vantagens importantes sobre os sistemas do computagZo anteriores, pois os ususirios reecbem resposias aos pedidos prontamente, em ver de esperar longos periods de tempo para ober resultados. 0 sistema operecional UNIX, hoje amplaments usado para compotagio avancada, era a prinejpio um sistema opera- ional de tempo compartilhado experimental, Dennis Ritchie e Ken Thompson desenvolveram o UNIX no Bell Laboratories, partirdo iniciodos anos 60, ¢ 0 Ccomoa linguagem em que oesereveram. Bles disribuiram 0 e6digo-fonte gratuitamente para outros programadores que o quisessem usar, modificar € estender. Uma grande comunidade de ususrios do UNIX se desenvalven rpiiamente ©) sistema apericianal caescia \ medida que oe nenétins da TINTY enntrihavam com ses poring Programas e ferramentas. Gracas a um esforgo conjunto de numerosos pesquisadores e desenvolvedores, ¢ UNIX se tornou tum sistema operacional poderoso ¢ flexivel, capaz de manipular praticamente qualquer tipo de tareta exigido pelo usustio. Muitas versdes do UNIX evoluiram, incluindo 0 muito popular sistema operacional de cédigo-fonte aberto Linux atual. Normalmente 0 eédigo-fonte de produtos de e6digo-fonte aberto estd dispontvel gratuitamente na Internet. Isso permite aos desenvelvedores aprenderem a respeito dele, validé-lo e modificé-lo. Freqientemente, os produtos de eédigo-fonte aberto cexigem que os desenvolvedores publiquem todos os aprimoramentos que fazem, para que a comunidade de cédigo-fonte aberto possa contimuar a desenvolver seus produtos. 1.5 Computacao pessoal, computa¢ao distribuida e computacao cliente/servidor Em 1977, a Apple Computer populstizou o fendmeno da computardo pessoal. Inicialmente, ela era um sonho de diletantes. No entanto, o prego dos computadores logo caiu a ponto de um grande mimero de pessoas poder adquiri-os para uso pessoal ‘04 comercial. Em 1981, a IBM, a maior fornecedora de computadores do mundo, apresentou o IBM Personal Computer. A computagiio pessoal se tornou rapidamente legitima em organizagSes empresariais, industriais e governamentals. BLED aia 50. (C#—Como Programar 0s computadores apresentados pela primeira vez pela Apple e IBM eram unidades “isoladas" (stand-atone) — as pessoas fiziam seus traballios em suas proprias maquinas © wansportavam discos para compartilhar informagdes. (Esse provesso era fregiientemente chamado de sneakernet.) Embora os primeiros computadores pessoas nio fossem poderosos ‘osuliciente para compartilhar vérios ususrios, as méquinas podiam ser interligadas em redes de computador, por meio de io. Bssas redes levaram 40 fenémeno da conputagao distribuida, em que a computagio de uma organizagao & disiribuféa por redes para os leeais em {que 0 trabalho da organizacao ¢ realizado, em ver de ser feito apenas em uma instalagio de computador central. Os com- pataudores pessosis eram poderesos o suficiente para manipular os requisitos de computacao dos ususrios individuais e as tarefas hisicas eavelvidas na tronsferéncia eletiniea de informacies entre os compntailares. Os aplicativas de n eamadas dividem um aplicativo por numerosos computadores distribuidos. Por ecemplo, um aplicative de trés camadas poderia ter uma interfice com o usurio em um computador, processamento de Kggica corporativa em outro e um banco de dados em um terceiro computador; todos interagindo quando o aplicativo € executato. 0s computadores pessoais mais avangades de hoje so to poderosos quanto as méquines de um mithdo de délares de apenas duas décadas atrs. As méquinas de mesa de alto poder — chamadas de estacdes de trabalho — fornecem 0s usiirios recursos enormes. As informagdes so facilmente compartihadas por meio de redes de computador, nas quais computadores cha- tmados de servidores armazenam programas e dados que podem ser usados pelos computaores clientes, distribuidos por toda a rede. Esse tipo de configuragao deu crigema expressio computacio cliente/servidor Os sistemas operacionais populares aluais, ‘como UNIX, Solaris, MacOS, Windows 2000, Windows XP e Linus, fornecem 0s tos de recursos discutidos nesta ses. linhas telef6nicas ou de LANs (local area networks — redes locais), dentro de uma organ 1.6 Linguagens de maquina, linguagens assembly e linguagens de alto nivel (0s programadores escrevem insirugbes em varias linguagens de programa putadores e outras que exigem passos de rradusdo iniermedisrios. Embora centenas de ‘em uso atualmente, as diversas ofertas podem ser divididas em trés tipos gerais: algumas diretamente inteligiveis pelos com- iinguagens de computador estejam 1. Linguagens de méquina Linguagens assembly 3. Linguagens de alto nfvel Qualquer computador pode entender diretamente aperas sua prépria linguagem de méquina, Como a“linguagem natu- je um computadorem particular, alinguagem de midquina é definida peto projeto de hardware do computador. Geralmente, as linguagens de maquina consistem em fluxes de némeros (em dltima andlise reduzidos a valores Ie 0) que instruem os com- Patadores sobre como executar a maioria de suas operagOes mais elementares. AS linguagens de maquina sao dependentes da ‘maquina, 0 que significa que uma linguagem de maquina especitica 56 pode ser usada em um tipo de computador. A segao a suir de um programa em linguagem de maquina, que somao pagamento de horas extras com a remuneragio basica e arma- nao resultado em rentuneragdo brata, i suagem de méquina para 6 sec humane. +1300042774 +1400593419 +1200274027 Se, por um lado, a popularidade dos compuadores aumentou, a programagdo em linguagem de méquina se mostrout cessivamente lenta, macante ¢ propenst a erros. Em vez de usar as strings de nimeros que os computadores podiam en- tender diretamente, os programadores comesaram a usar abreviagdes parecidas com o inglés para representar as operagies elementares Go computador. Essas abreviagbes formaram base das linguagens assembly (lamivém conhecidas no Brastl como linguagens assembler). Programas traduiores, chamados assemblers, convertem programas em linguagem assembly para linguagem de maquina em velocidade de computador. A segio a seguir de programa em linguagem assembly também soma o pagamento de horas extras (HORASEXTRAS) & renuneragdo bdsica (REMUNBASICA) ¢ armazena o resultado na remaneragao bruta (REMUNBRUTA), mas apresenta os passos mais claramente para os letores humaros do que seu ‘equivalents em linguagem de méquina: LOAD REMUWBASICA ADD HORASEXTRAS STORE REMUNBRUTA

Você também pode gostar