662

Click here to load reader

Aprenda Visual Basic .NET Em 21 Dias [Duncan Mackenzie - Kent Sharkey]

Embed Size (px)

Citation preview

I I

I

"da Visu em

Duncan Mackenzie Kent Sharkey

Traduo: Aldir Jos Coelho Co rrea da Silva

Revisc7Q Tcnica:

Marcos JorgeConsultor Espcci[l[ista na Plfllaformu .NET

Analista de Sistemas

PEARSON

Makron BooksSo PauloBrasil Argentina Colmbia Costa Rica Chile Espanha

Guatemala Mxico Peru Porto Rico Venezuela

2003 Pearson Education do Brasil Tilulo Original: Sams, Teach Yourself Visual Basic .NET in 21 Days 2002 Sams Publishing 1! Edio em ingls Sams Teach Yourself Visual Basic .NET in 21 Days publicada pela Pearson Education Inc. , sob o selo Sams Publishing Todos os direitos reservados Diretor Editorial: Jos Martins Braga Editora: Gislia do Carmo Costa Produtora Editorial: Marileide Gomes Designer de Capa: Marcelo da Silva Franozo (sobre o projeto original de Aren Howell) Editorao Eletrnica: ERJ Composio Editorial e Artes Grficas LIda Impresso: So Paulo - SP

Dados Internacionais de Catalogao na Publicao (CIP) (Cmara Brasileira do Livro, SP, Brasil)

Mackenzie, Duncan Aprenda Visual Basic .NET em 21 Dias I Duncan Mackenzie, Kent Sharkey; traduo: Aldir Jos Coelho Correa da Silva; reviso tcnica: Marcos Jorge. -- So Paulo: Pearson Education do Brasil, 2003. Titulo original: Sams teach yourself Visual Basic .NET in 21 days. ISBN : 85.346.1450-4 1. BASIC (Linguagem de programao para computadores) 2. Microsoft Visual Basic 3. Microsoft Windows (Programa de computador) I. Sharkey, Kenl. II. Titulo. 02-4239,

CDD-005-133

Indices para catlogo sistemtico 1. Visual Basic.NET: Linguagem de programao: Computadores: Processamento de dados 005.133

2003 Proibida a reproduo total ou parcial. Os intratores sero punidos na forma da lei. Direitos exclusivos para a lngua portuguesa cedidos Pearson Education do Brasil, uma empresa do grupo Pearson Education Av. Ermano Marchetti , 1435 CEP 05038-001 - Lapa - So Paulo - SP Tel. (11) 3613-1222 Fax: (11) 3611-0444 e-mail: vendas@pearsoned .com

Dedicatria

De Duncan Mackenzie:Enquanto trabalhava neste livro. quase ludo em minha vida se modificou, mas em grande parte, isso no eslava relacionado com ele. Agora tenho um jilho, Connor, me mudei para

oulra regio e es/ou com um 1I0VO trabalho na Microsoft. Gostaria de dedicar este livro a minha esposa, Laura, que sempre apoiou a iniciativa de escrevlo, independentemente de quantos meses ultrapassamos o prazo inicial, e a meu filho , que no linha a mnima idiade que este livro eslava sendo escrito e mesmo assim eslava mui/o feliz e solidrio. Para

concluir. lenho de agradecer a Kent, porque ele escreveu melade do livro, e no acho que eu/erio sobrevivido se tivesse que faz-lo sozinho.

De Kent SI/Grkey:

Em princpio, pretendia parecer inteligente e escrever um poema aqui, mas esse lado de meu crebro est com problemas nestes ltimos dias. Portanto, em vez disso, essa ser uma lista bastanle tpica de todas as pessoas que me ajudaram neste livro. Gostaria de agradecer ao mell co-alllor, Dllncan. Obrigado pela oportllnidade e por nllnca aceitar 11111 "no" ou "Desis/o" como repos/a. Obrigado a lodos os editores que trabalharam no livro, principalmeme Sondra e Todd. Obrigado a Squirre1 por me manter so e salvo e a Cica por deixar meu/aptop aquecido e, s vezes, sem a/ividade. Por ltimo, mas no menos impor/ante. obrigado a Margaret por me apoiar enquanto trabalhava nesta a/ividade, 11m novo trabalho em um novo local. Agora teremos novamente essa coisa que chamam de fim de semana!

Sobre os AutoresDuncan Mackenzie profissional certificado MCSD, MCSE e MCT que trabalha para o grupo MSDN (http://msdn.microsoft.com)daMicrosoftem Redmand, Washington. Ele um programador dinmico do Visual Basic .NET que possui o aborrecido hbito de escrever artigos ocasionais. Duncan tambm alua como instrutor de Visual Basic e ministra muitos cursos, que abrangem da programao intermediria avanada do VB. Escreveu vrios livros e colaborou , em tantos outros sobre as tecnologias da Microsoft. E ainda orador em muitas conferncias que cnfocam o desenvolvimento da Microsoft.

Kent Sharkc)' MCSD, MCSE, MCT e MCP+SB. No momento trabalha na Microsoft corno Instrutor Tcn ico no Grupo de Solues .NET, em que sua ocupao atual o .NET Framework e o Visual Studio .NET. Antes de entrar para a Microsoft, Kent j possua anos de experinciacomo instrutor e consultor, concentrando-se em projetos e desenvolvimento de aplicativos com o uso do Visual Basic. Ele escreveu e co laborou em diversos livros, incluindo sobre MCSD e Visual Basic. Faz exposies regularmente em conferncias de desenvo lvedores dando nfase ao desenvolvimento da Microsoft.

Diga-nos o Que Voc Acha!Como leitor deste livro, voc nosso crtico e colaborador mais importante. Valorizamos sua opinio e queremos saber o que estamos fazendo corretamente, o que poderamos fazer melhor, sobre quais reas voc gostaria de nos ver publicando c qualquer outra sugesto importante que deseje passar para ns.

Receberemos com satisfao seus comentrios. Voc pode enviar um fax , e-mail ou escrever direlamente, para que possamos saber do que gostou ou no neste livro - assim como o que pode-

mos fazer para tornar nossos li vros me lhores.

Por favor, entenda que no podemos ajud-lo com problemas tcnicos relacionados ao tpico

deste livro e que, devido ao grande volume de correspondncia que recebemos, talvez no possamos responder a todas as mensagens.

Quando voc escrever, cenifique-se de incluir o ttulo e o autor deste livro, assim como seu nome e nmero de telefone ou fax . Examinaremos seus comentrios cuidadosamente e os compartilharemos com os autores e ed itores que trabalharam no livro.

Fax: Fone:

(11) 3611 9686 (II) 3613 1213

Endereo Eletrnico: Endereo Postal:

clientes@makron .com.br e livros_infonnatica@pearsoned .com.brPearson Education do Brasil Rua Em lio Goeldi, 747 - LapaSo Paulo - SP/ 05065-110

...CI

...~

-

cc

CI

-

cc

N

CI

-

cc

.ecc

(II

CI

"" cc E

..,~

cc CI

cc CI

~

.N

,

E

II)

ln

N~

.( II

z

~ C,)

CIoo

cc -

CI

:$

'" cc~

CI

-

-cc(II

CIl

cc

...CI

co~

.>ccII)

=

-

cc

CI

-

cc

-= = ... c..

~

...~

cc CI

cc CI

N

CI

:$

cc '"I C

"" :$~

CI

~

CI

-

cc

coCI

ln~

-

cc

CI

-

cc

SumrioIntroduo- ............. .. .. ... .. . .... . . . . .. .. ... . . .. . ..... XXI

SEMANA 1 Viso GeralDia 1 Bem-Vindo ao Visual Basic .NET

1

3 Compreendendo a Programao de Computadores ' .. ... . .. ... .. . .. . .. .. 3

A Funo dos Sistemas Operacionais .. .. .. .. . .... . ... .. .. . .... . .. . 4 O Papel das Linguagens de Programao' ........................... 5 Por Que Escrever Programas de Com putador? ..... . ................. ... . 8 Um Breve Histrico sobre o Visual Basic" ........................ 10 O Que ,NET? . .. ... . .. .. ... . ... .. .. .. .. . ...... .. .. . .... . .. . 13Servidores .NET . .. .. ... .. .. .. .. .. .. .. ... . . ... .. .. .. ..... .NET Framework ... . .. .. ... . .. .. .. .. ... . ... . ... .. . ........ Serv ios .NET ............................................... Disposit ivos .N ET ............................................Desenvolvendo seu Primeiro Aplicativo no Visual Basic .NET .. Preparando-se para Codi ficar .. . ... .. .. .. ... . ... .. .. .. Onde Est meu ID E? . .. .. ... . ... .. .. .. ... . ... .. . ... Uma Tarefa S imples' ............ .. .. .. ... .. .. .. Escrevendo o Cdigo ...... . . . . .. . .. ... . . . ... Resumo' ................. . . . . . .. . .. .... . . . . . .. .. .. .. .. ..

14 14 15 16

. .... . ... 17 . .... . .. . 17 . ... . . 21 . .... . 2 1 . .. ... 22 . ..... 27

P&R ')7 Workshop . ... . ... . .. .. . .. - ... . . .. .. . .. ..... - . . . .. . 28 Teste .. ... . .. .. .. .. .. ... . ... .. . . .. . . . . .. .. .. . . . . ... 28 Exercfdos ....................... . .. ... .. .. .. . . . ..... 28Dia 2 Trabalhandocom o Visual Basic .NET 29

O IDE do Visual Studio . .. .... . . .... ..... ... . . .. . . . .. . . .... . Inic iando' ...... . ....... ... ............. . .. .. .. . . . ..... A Janela Principal do IDE do Visual Studio' . ... . . ........ . . .. . Solues e Projetos ' .. ... . ... .. .. .. .. .. ... . . . ..... . . . . .. . Arqu ivos' .. . .. ...... .. ... ... . .. . ... .. .. . .. . . . . . . . ... . . Criando Nosso Primeiro Aplicativo Windows ....... .. .. . . . . . ...... Crie o Projeto' ............................ .. .. .. . . .. ..... Desenvolva a Interface com o Usurio' . .. .. ... . . . . . . .. .. . ... . .. . Executando o Projeto ... . ... . ... .. .. .. ... . . ... .. .. . .... . .. . Construindo o Projeto' .. ... .. . ... .. .. .. ... . . .... .. .. . .... . ... Adicionando Seu Prprio Cdigo .............. . ............... Resumo' .. . ... . ........................... .. ...............

29 30 32 50 52 53 54 54 55 56 58 60

x

Aprenda Visual Basic .N ET em 21 Dias

P&R ......... .. .. .. ... ... . . . . .. .. . . . .. .. . . . . . . . .. . 60Workshop . ... . .. . . .. . . . ... . . .. . . ... . .. .. . .. . . ... . . 61

Teste 61 Exercc ios' .. .. ... . .. .. ... . ... .. .. .. .. .. ... . . , ... , . . . .. . 61Dia 3 Introduo Programao com o Visual Basic .NET

63

Variveis e Atribu io' . .. .. ... . ... .. .. .. ... . ... . .. ... .. . .. .. . . 64 O Que uma Varive l? . .. ... .. .. .. .. .. ... . ... . . . . . . . . . .. . .. . 64Tipos de Variveis Disponveis' .... .. . . .. ... .. .. .. . . . ..... 64

Variveis Simples' . .. .. ... .. . ... . .. . .. ... . . . . ... . . ... . . 65 Declarando Variveis' .. ... .. .. .. . .. .. . . .. . .. . .. . .. . .. . . .. ... . . 69 Arrays .. .. .. .. ... . .. .. . . .. . .. . . .. .. . . . . .... . . . .. . 70 Atribu io' ............................... .. . . . . . . . ..... 72 Constantes' ............. ...... ............ .. .. .. . . . . .... 72 Algumas Sugestes para os Padres de Nomeao' .... .. . . . . . . . ..... 73 Clculos Simples' ............................ .. . . . . . . . ..... 74 Usando Operadores .. .. .. ... . ... .. .. .. ...... .. . .. .. . ... . .. . 75 Funes Internas' .. .. ... . ... . ... .. .. .. .. .. . .. ... .. . ... .. .. . 75 Escrevendo Suas Prprias Rotinas ' . ... .. .. ... .. . . .... .. .. . .... . ... 80 Sub-Rotinas ............................... .. ............... 80 Funes ' ... . .. .. .. .. ... . ... .. .. .. .. .. .. ... .. . ... .. . ... ... . . 81 Escopo ' . ... . .. .. .. .. ... . ... .. .. .. .. .. .. ... .. . ... .. . .... . ... 8 1

Exemplo de Aplicativo: Calculando um Valor Futuro' ... .. . ... .. .. ... . .. . 83 Resumo' .. ... . .. ... . .. .. ... . ... .. .. .. .. .. ... .. . ... .. .. ... . .. . 88

P&R89 Workshop ................. . .............. . ............... 89Teste' ........ .. ... . ... . . . .. .. .. ....... .. ............... 90 Exerc cios' .. .. .. .. .. .. ... . ... .. .. .. .. .. .. .. .. .. .. . .... . .. . 90Dia 4

91 Tomando Decises com as Instrues de Controle ' ..... .. .. ....... . .. . 91 A In struo If . .. .. .. .. ... . ... .. .. .. .. .. .... . .. .. .. . ... ... . . 92

Controlando o Fluxo dos Programas

Estendendo a Instruo If ................................... 95 Instrues If em SeqiJncia na Mesma Linha' .... . ............... 99 Expresses e Lgica Boo leana' ....................... .. .......... 100 Operadores de Com parao' ....... .. .. .. ... . ... .. .. . .. . ... .. . 100 Operadores Lgicos . .. . .... . .. .. ...... ... . ... .. . ... ... . ... .. . 101 Avaliao Abreviada' .. .. . .... . .. ... . .. ... . ... .. .. .. ....... . .. 103 Lidando com M ltiplas Possibilidades: A Instruo SeI ect Case 104 Laos' ...................................................... 105 For ... Next . . ... .. .. . ....... .. .. .. ... . ... .. .. .. ... . ... .. . 106 A Varivel do Contador ' . . .... . .. .. .. .. ... . ... .. .. .. . .. .. .. .. . 106 Espec ificando O Valor do Incremento com O Uso de Step .. .. . .... .. .. . 108 While ... End While 1 09

Sum rioLao 00 .............. .. .... . .. .. ... . .... ... ...... .... Condies de Sada ' ... . ... .. .. .. .. ........ . .. . . ....... . . . . Laos Infi nitos ' . . . ... . . .. .... .. ....... .. .... .. ... . . . .. ... .. . Implicaes sobre o Desem penho' .. .. .. .. ... . ... .. .. .. .. .. ... .. . Ap licativos Que Faro Uso de Seu Conhecimento Recem-Adqu irido' ........ Leitura de um Arqu ivo' ....................................... Um Jogo Simples' ........................................... Evitando Laos Complexos por Meio da Recurso ' . . ... .. .... ..... .. . .. Resumo' .. ... .. . ... .. .. . .... . .. .. .. .. ... . ... .. . ... - ..... .. . P&R .... . ... . ... . ........ . ... . ............ . ... . . ........ . Workshop' ...... . .... .......... .. ......................... Teste' ....................................... . .......... Exerclcios .. .. . .. ... . .. .... . .. ... . .. ... . ... .. . . .. . . . .. .Dia 5 Arquitetura dos Aplicativos na Plataform a .NET O Que E a Arquitetura do Aplicativo?' .............................. Funo do Arquiteto de Softwares" . .. .. .. ... . ... .. .. .. ... . ... . .. Que Partes de um S istema So Consideradas Arquitetura do Aplicativo? ' .. . Arqu iteturas Viveis na Platarorma .NET . ... . ... .. ...... .. .. . .... . Os Trs Elementos de Qualquer Aplicat ivo'" ...................... Quantas Camadas? .. .. .. . .... . .. .. .. .. ... . ... .. . .. . .. ... . Windows DNA . .. ... . .. ... .. .. ... . .. ... . ... .. . . .. ... .. . Onde a Platarorma .NET Se Encaixa? ... . .. ... . ... .. . . .. ... .. . Escolhendo uma Tecno logia de C liente" . .. ... . ... .. . . .. ... .. . Decid indo Que Arquitetura Usar ' ............................... Fatores Essenciais Que Influenciaro Sua Deciso' ....... . ........ .. Exemplos de Cenlrios' ........................... . . ......... Resumo' .. .. ... . ... .. .. . ... .. .. .. .. .. ... . ... .. . .. ...... .. . P&R .. . .. ... .. . ... .. . .. . . . . . .. . .... . ... .. ...... . . .. Workshop' .... . . . ........... .. ............... ...... . ..... .... Teste' ....................................................

ttt 113 t t4 t t5 116 117 119 121 123 123 124 124 125127

127 128 129 133 133 134 134 135 136 138 139 141 145 145 146 146

Dia 6

O Que Fazer Quando Programas Bons Apresentam Problemas e para Se Certificar de Que Isso No Acontea

147

Tratamento de Excees Estruturadas' .............................. O Que o Tratamento de Excees Estruturadas?' . .. ... . . .. . . . ... Erros e Excees .. ... . ... .. .. .. ... . .. ... . ... .. . .. . ... .. . O Bloco Try' .. . ... .. .. . .... . .. .. .. .. ... . ... .. .. ...... .. . A Seo Catch' ...........................................

148 148 148 149 149

Aninhando Blocos Try . . End Try 155 ASeoFina l ly 156 Lanando Excees . .. . ... ... . .. .. .. .. ... . ... .. . . .. . .. ... .. . 157 Depurando ' ... .. . ... .. . .. .... . . . . .. ... . ... .. . .. . . . .... .. . [57 A fonte dos Erros' . ... . .... . .. . .. .. . . . . . ... . . ... . ... ... . 158

XII

A prenda Visual Bas ic .N ET em 21 Dias

Aprendendo a Depurar com a Prtica' ..... . ... . ...... ... ....... . .. Os Modos na Vida de um Programa ' ... . ...... . .. . . .. .... . . . . . Percorrendo Seu Cdi"o ' . .. .... .. .... ...... ....... . .... .. .. .. . " Exam inando as Variveis' .. ... . .. ... . ..... . .. . . .... . . .. .. . Outras Ferramentas para Depurao' ..... . ..... ..... . ...........

159 167 165 [68 172

Resumo ' ........................... . . ... . .... .. ..... ..... 173

P&R .............................. .. ... . .... .. . ... . ..... 173Workshop .. .. . . . .... . . . . . .. . . .. . .. . . .... . ... . 174

Teste 174

Exercfc ios .. . ... . ........ . ... . ............ . ... . .. .. . .... . 174Dia 1 Trabalhando com Objetos 111

Para Comear: O Que um Objeto? ..... .. . .... . .... .. ....... ... 177 Classes e Instncias ........... ....... . ..... . ...... ..... 178 Referncias ..................... .. .. ... . ..... .. ...... .... 178 Passando o Conceito para o Cdigo' ....... .. . .. . .... .. .. . .. ..... 179 Propriedades ' .. . ... .. .. . ....... .. . . .. ... . . .. . ... .. .. . . .. 180 Propriedades ReadOn l y e WriteOnly .. . ... .. . . .. .. . ... .. . 18 1 Criando a Instnc ia de um Objeto . .. ... . ....... .. .. . .. . . .. . .... . 182 Encapsulando Cdigos em Suas Classes' .............. . ........... 183 Tpicos Avanados' .. ... .. . ... .. .. ... . .. ... . ... .. . . .. . .. ... . 187 Sobreposio ' . . .. ... . .. ... .. .. ... . .. ... . ... .. . . .. ... .. . 187 Herana ' ... .. . .. ... . .... . .. .. ... . .. ... . ... .. . . .. ... .. . 189 A Base de Todas as Classes Bs icas ' .. .. .. ... . ... .. . . . . ... .. . 194 Construtores' .................................. . .......... 195 Espaos de Nome' .............................. . ........ .. 197 Membros e Objetos Compartilhados .. .. .. .. ......... . . ......... 199 Resumo . .. .. ... . ... .. . .. ... . ... .. .. .. ... . ... .. . .. ...... .. . 199 P&R .. . .. ... .. . ... .. . .. ... . ... .. . ... ... . .. . .. . .... .. .. . 200 Workshop' .... . . ....... .. ... . .. .. ... . .... .. ..... ..... 200 Teste' ........ . . .... .. ... .. ... . ... . .... .. ..... .... 201 Exercidos ..... . . .... .. .... . . . . .... . ..... .. ....... ... 201

SEMANA 1 Revis o SEMANA 2 Viso GeralDia 8

202 203

Introduo ao .NET Framew ork 205 O Que E o .NET Framework?' ....................... . .......... . 205

Classes Importantes do .NET Framework' .. . .. ... . ... .. .. .. . ... .. . 206 Console ' ... .. . ... .. . .. ... .. .. ... . .. ... . ... .. .. .. . ... .. . 206 Resultados Ma is Simples . .. ... . .. ... . .. ... . ... .. . . .. . ... .. . 207 Envi ronment (Amb iente) ....................... . .......... 212 Random . ... .. .. .. .. . ... .. .. . . . . .. ... . ... .. . . . .. . .. 213

Sumrio

XIII

I

Math ., , .. " ,., , ,." ,." ,." , .. , ... , , ,.,., .. , ... ... ", .. " 2 14 Classes de Conjuntos no ,N ET Framework ' .. ' , , . ' ' .. , . .... . . ' , . ' , 215 Encontrando o Que Precisa no ,N ET Framework ' ' , . , , .. ' . ...... ' , .. . 2 19 As Regras da Busca . .. .. . ....... .. .. .. ... . .. .. .. .... . . .. . .. 2 19 A Saga pela Classe Perfeita' .. , .. , , ... , ... , , .. ' ... .. .. . .. , , ... 220 Resumo' . , ... , , ... , .. , .... , , .. . . . . . ... . ' ... .. .. . . . , , .. , 223 P&R "." ... " .. " .. , .... " . .. . .. . .. . , ... .. . ... . , ... , 224 Workshop .. .. . . , ..... . ... . . .. . . .... . .. . .. .... . .. . .. 224 Teste .. ... .. . ... .. .. . .... . .. .. .. .. ... . ... .. .. .. ....... .. . 224 Exercfc ios . ... . .. ... . , .. .. .. .. ... . ... .. .. .. .. .. .. .. .. ... .. . 224Dia 9 Desenvolvendo uma Interface com o Usurio com os Formulrios Windows 225

Viso Geral dos Fo rmulrios Windows' ... , ... , , . , , , .. , .... , , . Criando um Aplicativo com Fom1Ulrios Windows' , .. , , ....... . , . Configurando o Projeto' , , .. , , .. , , ...... , , , . , , , ... .. . ... Adicionando Controles ao Fonnulrio ... , ... , , .. , , ... .. . . . . Nomeando Seus Controles . ....... .. .. .. ... . ... .. .. .. ... . Manipu lao de Eventos . .. .. .. .. ... . .. ... .. .. .. .. .. ... .

, , , .. , 225 . , , ... 227 . , , .. , 227 . , , .. , 228 ... . .. 229 ... .. . 229

Criando Vrios Manipuladores de Eventos para um Unico Evento , . ... .. . 23 1 Encontrando Objctos c Eventos por Meio do Editor de Cdigos' , , . , , , .. , 232 Mltiplos Eventos com um Manipu lador . .. ... . ... .. .. .. ... . .. ... . 233 Mais In fomlaes sobre os Controles .. ... . .. ... . ... .. .. .. .. .. ... .. . 233 Criando Grupos de Botes de Opo .. .. .. ... . ... .. .. .. . . ....... . 234 Adicionando uma Ca ixa de Seleo ao Exemplo de Fi 1er .. .. . .. . ... . .. 236 Va lidao de Entradas' ... , ... , , .. , , ... , ... , , . , , , ...... , , , . , , .... 238 Usando a C lasse MessageBox .. , , .. , , ....... , , . , , , ....... , , . , , ... , 24 1 Parmetros' .. , .. , , ... , .... , .. . . , .... , ... , ... ... ... , , .. . 242 Obtendo Resultados .. .. . ..... . . . .. ... . ... .. . .. .. . ... .. . 243 Controles Ocultos . .... . . . . . . .. .. .. .... . ... .. . .... .. . .. 246 Timer' . , ... . , ... , .. . . . ' , . .. . .. ... ' ... .. .... . , ... 247 Noti fy l con . , , .. , , .. , , ... , , . , , . . . . . . ... . , ... .. .... . , , .. ,248 ErrorProvi der' . , , .. , , .. , , .. , , .. . . . ..... , .... .. .. . .. , , .. , 249 Controles das Caixas de Dilogo ... .. ........ . .. .. ... . .. .. .. . 250 Construi ndo Suas Caixas de Di logo .. .. .. ... ..... , .. . . ..... .. .. . 254 Criando a Ca ixa de Dilogo ...... ... . .. ....... .. . . .... . . .. .. . 255 Con figurando o Resultado da Caixa de Dilogo' , . , , , .. , .. . ... . , , .. , 256 Exibindo a Caixa de Dilo"o' . , , .. , ... , ... , , .. , , ... .. .. .... , .. , 257 Resumo' .. ... .. . ... .. .." . .. , ........ .. ... . ... .. . .. . ... . . , .. . 259 P&R .. . .. ... .. . ... .. .. . ... . .. .. . .. ... . ... .. . ... ...... .. . 259 Workshop .. .. . . .. .. .. .. ... . . . . .. ... . ... .. . . .. ...... .. . 260 Teste' , , ... , , .. , , .. , ... , , , . , , .. , ... , , .. , , ... .. . , , . , , , .. , 260 Excrcfcios ... , .. , ... .. ... , .. .. , .... , .. , , .... , .... , ... 260

XIV

Aprenda Visual Basic .NET em 21 Dias

Dia 10 Construindo a Interface com o Usurio com os Formulrios da Web 263 Modelo de Programao da Web . . ................. . ............. 263

o

ASP,NET ........ . ................................. 265 Como a Criao de Programas com Base na Web Difere da de Programas comBase no Windo ws ' .. .. .. . ....... .. .. .. ... . ... .. .. .. ....... .. . 266

Usando os Controles-padro dos Formu lrios da Web ... .. .. .. ... . .. . . .. 268Usando os Controles Avanados dos FomlU lrios da Web ..... . ..... .... 277

Usando os Controles Va 1i dator ........................ . . .... ... . . 279Resum o ' .. ... .. . ... .. .. . ... . .... .. . .. ... . ... .. .. . ...... ..... P&R .. . .. ... .. . ... .. .. . ... .. . . ....... . . .. . . ...... .. . .. Workshop .. .. .. . ... .. ... . .... . ... . .. .. ...... .. . .. Teste' ..................... . .. . . . . .... . ..... .. ..... ..... Exerc c io' .................................................Dia 11 Introduo aos Bancos de Dados

283 283 284 284 284285

Um Banco de Dados a Soluo para Todos os Problemas Cot id ianos' ...... 285 A Dec Iso E Tomada' . .. .. ...... ... . .. ... . ... .. .. .. ... . ... .. . 286 A Passagem para um Banco de Dados Real . ... . ... .. .. .. ... . ... .. . 287 Uma Introduo SQ L' . . .. . ....... .. .. .. ... . ... .. .. ...... .. . .. 288 Recu perando Registros com a Instruo SELECT ........ .. ..... . 288 Adicionando Novos Registras' ...................... .. ..... ..... 290 Alteran do Registras' ............................ .. . .. . . ..... 291 Removendo Registros Indesejados' .. .. .. .. ... . ... .. .. . . . .. . ... . .. 29" Para Onde Ir a Partir Daqui Abordando a SQL' .. . ... .. .. . .. . . . .. . .. 29" Problemas Comuns dos Bancos de Dados e Suas Solues' . .. . .. .. . ... .. . 293 Incons istncias de Atualizao . . ..... . .......................... 293 Campos Multivalorados ....................................... 297 Associaes: Consultando Vrias Tabelas de uma S Vez ' . .. . .. . .. ... . 298 Re lacionamentos Mu itos-para-Muitos ... . .. ... . ... .. . ... . .. . ... . .. 300 Integridade Referencial .. .. ...... .. .. .. ... .. .. .. .. .. . .. . ... . . . 300 Criando Chaves Prim rias ................ . .. ..... 301 Criando o Banco de Dados de Exemplo ' ................ .......... 304 Access 2000 ou Access 2002 ...................... . .......... 304 MS DE e SQ L Server 2000 . ....... .. .. .. ... . ... .. .. . .. . ... .. . 305 Testando a Confi gurao com $ystem. Data .. ... . ... .. .. ... .. . ... .. . 305 Resunlo . .. ... .. .. .. .. . ... .. .. .. ... . .. .. . . .. . .. ..... .. . .. 307 P&R .. .................. . ............. . . . . .. .. ..... ..... 308 Workshop ..... ....... . ... . .. . .... . .. .. .. ..... ..... 308 Teste' .. ... .. . ... .. .. . ... .. .. ... . ... .. . . .. . ...... .. .. . 309 Exerccios .. .. . ... .. .. .. ...... .. .. .. ... . ... .. .. .. .... .. .. . 309Dia 12 Acessando Dados com a Plataforma .NET 311 Uma Viso Geral do Acesso aos Dados na Plataforma .NET .. .. . .. . ... .. . 3 11

OADOeoOLEDB 3 12

Sumrio ADOoNET o o o oo o o oo o o oo o o oo o o oo o o o o" oo o o o o oo o o o312 Tareras-padro dos Bancos de Dados o o o.. o.. . ... o.. o o .. . . o o. o o314 Conectando-se ao Banco de Dados o o.. o. o . o.. o o o. o . o o.. . 3 14 Executando uma Instruo SQL' .... .. . o o o o o. .. . o o o o o .. . .. 3 19 Recuperando Dados o. o o o. o o o. o o o.. o. . o o.. o. o o .. o. . o o o oo o o32 1 Trabalhando com Data Sets ' .. o o o oo o o. . o. . o o.. o.. o .. o.. o o oo o o323 Inserindo Dados em um DataSet . o o... o.... o. . o... .. o.. o o... o323 Navegando pe los Dados ' . . ....... ... . .. ... . . . .. . . ... o .. . .. 326 Editando Dados (Adicionar, Editar e Excluir)' ... . ... .. . o o. . . ... .. . 329 Editando Registros . .. o . o. o .. . o .. .. o . .. o .. . o .. . o . .. . .... . o . 33 1 Atualizando o Banco de Dados o. o o o.. o o.. o o o. o o o. o o o o o. o o oo o o334 Trabalhando com Mltiplas Tabe las o... o... o o. o o o... . o o. o o... o346 Visualizaes ' . . ... .. .. . ....... ... . .. ... . ... .. . .. . ... .. . 348 Vinculao de Dados . ... .. . ....... ... . .. ....... .. . .. . ... .. . 350 Vinculao de Dados com os Fonnulrios Windows ' .. .. .. .. . ... . .. 35 1 Resumo ' .. ... .. . ... .. .. .. .. .. .. ... . .. ... . ... .. .. ...... .. . 354 P&R o. o o o. o o o o. o o.. o o.. o o o. o o o.. o o.. o o o. o o o. o o . o oo o o o. o o355 Workshop .. .. . .. ... . o.. .. .. . . .. ... .. .. .. . .. o... o.. . 355 Teste' .. ... .. . ... .. .. .. .. .. . . . .. ... . ... .. . o . .. .. ... . 355 Exercc ios' . .. . ... .. .. . .... . o . .. o. ... .. . o .. o .. . .. 35600 0 .0 0 .0 0.0

Dia 13 Usando o Server Explorer

357

O Que o Server Exp lorer .. . ....... . .. ... . ... .. . .. . ... .. . 357 O Que um Servio?' . .. o ....... .. .. . o ... .. .. .. .. .. ... . ... . .. 359 Examinando os Servios' o o.. o o o. o o o.. o o.. o o o. o o o. o o.. o o o o. o o.. o o359 Caminho a Ser Percorrido para Estabelecer uma Conexo com o Banco de Dados . . . o. . o. . . . o. . o o. . . o. . . . . . . o. . . o. . . . o. . . o. . . o. . . . . . . o o. . . 363 Trabalhando com os Servios' ....... .. .. .. ... . ... .. .. .. ... . ... .. . 364 Visualizando os Serv ios' .. ... . ... .. ... o ... . . .. o . o. o o .. o .. 365 Conectando-se com Outro Servidor' o.. o . .. o . o. o . oo o o oo o o . o. o o. o . o366 Escrevendo Programas Que Usam os Servios' .. o o.. o o... o... o o.. o o.. o366 Escrevendo Cdigos de Acesso a Dados com o Server ExploreI' . o o. o o o.. o366 Resumo' .. ... .. . ... .. .. .. ...... ... . .. ... . ... .. .. .. ... . ... . .. 379 P&R .. . .. .. ... . ... .. .. .. .. .. .. .. .. ... .. . ... .. .. .. .. .... . . .. 380 Workshop' . ... .. . o o. o o .. o.. o o. . .. . o o. o o .. o . . 380 Teste' o o.. o o o. o o... o o. o o o. o o o.. o... o o o. o o.. o .. o. o o o o. o o380 Exerccios' .. o.. o o.. o.... o o.. o... o... o o.. o... ... o . o.. o380Dia 14 Introduo Programao Orientada a Objetos 381

Viso Geral da Programao Orientada a Objetoso o o. o o o.. o... Comparando a Programao Orientada a Objetos com a Linear' Usando os Objetos na Organ izao do Cdigo .. . ... .. .. .. Conceitos Importantes na POO o ... . .. ... . .. ... .. .. .. .. .. Classes, Objetos e Instncias o o o. o o o.. o... o o o. o o.. o ..

o o o. o o o. o o381 ... . . .. .. . 387 ... . o .. .. . 384 o .. o o .. o . . 385 o.. o o o. o o385

XVI

Aprenda Visua l Basic .NET em 21 DiasPropriedades' ..... . . .. ... ... .. . . .. . .. . ..... .. ... ....... 387 Mtodos ' .. ... . .. . .. ... . . . . . . . . ... .. .. . . .... . . .. . .. 388

Herana' ... .. .. .. .. .. .. ... . .. ... . ... ... ..... ... ...... .. .. . 389 Construtores' .. . ... .. .. . ....... .. .. .. ... . . .. .. ... ...... .. . .. 393Projetando um Aplicativo com o Uso da roo .... . . .. .... .. .. . ....... 396 Ident ificando os Objelos ................... . . ... .. ... ....... 397

Determinando as Propriedades e Mtodos' ..... . . .. .... .. . ... ...... 398M odelando Seus ObjclOs' . . ........ . ... . . . .. . .. . .. .... . .. . .. 399 Resumo . .. ... .. . ... .. .. . ... .. .. .. .. .. ... . ... .. . - ..... .. . 400

P&R .. . .. .. ... . .. ... . ... .. .. . . . . ... .. .. .. .. . ... . .... .. . 400 Workshop' ................................................ 400 Teste' ...................... .............. .. ......... 401 Exercidos .. .. . .. .. .. . ....... . .. ... .. .. .. . ...... .. . 40 ISEMANA 2

Reviso

403 405

SEMANA 3 Viso Geral Dia 15 Criando Objetos no Visual Basic .NET

Criando Objetos .................................. .. . ... Declarando uma Classe Nova no Visual Basic .NET .. .. .. ... .. Herana' ... .. . ... .. .. . ....... .. .. .. ... . ... .. .. .... . Adicionando Propriedades ' . ....... .. .. .. ... . ... .. . .. ... . Usando Rotinas de Propriedade para Validar Dados' ...... .. . ... ...... 413 Criando Mtodos' . ... .. .. .. .. .. ...... ... . ... ... . ... . .. .. ... 41 7 Adicionando Eventos' ........................... .. . ... ...... 423 Defin indo e Usando Interraces' ..... .. . . .. ... . ... .. .. .. .. . ... . . 425 Usando os Objetos Que Voc Criou' ................... . . .. .. .... 434 Espaos de Nome' .. .. .. . . . . ... . ...... ... . ... .. . .. . .. . ... ... 434 Criando e Usando urna DLL da Biblioteca' ............ . .......... 436 Resunlo . .. ........... .. ....... . ....... .. . ... ... . .. . ... ... 438 P&R .. . .. ... .. . ... .. . ... .. .. .. ... . .. ... . ... .. .. .. . ... . .. 438 Workshop' .............. . ......... . ....... .. .. ...... .. . 438 Teste' .. ... .. ...... . ... .. .. .. . . ... .. .. .. .. . . ... .. .. . 438 Exerccios' .................... .. ............. .. .......... 439Dia 16 Formulrios Windows Avanados

407 ...... 407 . .. .. . 408 . .. .. . 408 . .. .. . 410

441 Menus ......................................... .. .......... 44 I Adicionando um Menu a um Formu lrio' ............. o 441 Os Teclados e os Menus ' . . ........ . .. .. ... . ... .. .. .. . ... .. . 444 Adicionando Cdigo .. .. . ........ .. . .. ... . ... .. . .. . ... .. . 445 Algumas Sugestes ' ..... . ........ . .. .. ... ... . .. .. ...... .. . 448 Programas de Interrace de Documentos Mlt ip los ......... . .......... 449 , O Que E uma Interrace de Documentos Mltiplos? ... .. ... . . .. ... .. . 449

S um rio

XV II

I

Adicionando o Fonnulrio pai ............... . .... ... .. . .. ..... 450 A MD I e os Menus ' ... . ... .. .. .. ... . .. ... . . . .. . . .... .. . . . . . 45 1 Controles Avanados dos Formu lrios Windows' .. . . . .. . . ...... .. .. . 458 TreeView 459 ListView 462 Controles Splitter 463 Resumo ' ............... . ... .. . .. . .. . .... .. . ... ..... 470 P&R Worksho p Teste Exercc ios' ..................Dia 17 Usando o .NET Framework

.. .............

.. .........

47 1 47 1 47 1 472

473 Fluxos e Arquivos' .............. . ....... . .... .. ...... ..... 473 , O Que E um Stream? .......... .. . . .. ... . .... .. ...... .. .. 474 Arquivos e Diretrios' ............... .. . .. . .... .. .. . .. .... 474 Lendo um Arquivo de Texto ' ...... .. .. .. ... . .. .. . ... . . . .. . . 476 Gravando em um Arqu ivo de Texto ' . ... . .. ... . ... .. . . .. .. . ... .. . 478 Desenhando com as Classes de Figuras .. .. .. .. ... .. .. . .. . . .. . .... . 492 Exam inando as Classes de Figuras' .................. . ........... 492 Onde Posso Desenhar? . .. . .... . .. .. .. .. ... . ... .. . .. . .. ... . 498 Desenhando Fomlas . .. .. . ... .. .. ... . .. ... . ... .. . . .. ... .. . 503 Salvando Figuras ' . ... . .. .... . .. . .. ... . ... .. . . . .... .. . 506 Resumo . .. ... .. . .. ... .. . ... .. .. . .. ... . ... .. . .. . ... .. . 509 P&R .......................... . ....................... 509 Worksho p' ...................... . ............. . ........ .. 510

Teste 510 Exerc cios' ... . ... .. .. . ..... . . . .. ... . ... .. . .. ...... .. . 5 10Dia 18 Retoques Finais

511

Documentando Seu Aplicativo' ....... . .. ... . ... .. .. .. . ... . .. 5 11 Crie So lues Mais Simples ' ... . .. .. .. .. ... . ... .. . . .. ... .. . 5 12 Evitando Conjecturas' ........................... . .......... 515 No comente o bvio, S6 o Que For Confuso' .................... 516 Documente o Sistema, e No Apenas o Seu Cdigo ...... . .......... 516 Melhores Prticas e Padres de Cod ificao ' . .. ... . ... .. . .. . . .. ... .. . 5 18 Nomeao de Variveis, Controles e Objetos ' ... . ... .. . . ... .. . .. . . . 519 Blocos de Comentrio' . .. . ... .. .. ... . .. ... . . .. . .. . . . .. .. . .. 52 1 Usando o Controle do Cdigo fontc ................. .. .. .. ... ... 522 Extraindo o Cdigo' ............................ .. ...... .... 522 Annazenando o Cdigo' .. . ....... .. .. .. ... . ... .. .. .. ... . . .. .. . 526 Visua lizando e Retomando Suas Alteraes'" .. . ... .. .. .. ... . . . 528 Cons ideraes sobre Segurana no Uso do Visual Source Safe . . . .. .. . . . 529 Resumo' .................................................... 529

XVIII

Aprenda Visual Basic .N ET em 21 Dias

P&R ..... .. .. . ...... .. . . ... . .. . .. . .... ... . .. ....... 530Workshop' . ... .. . ... .. .. . ...... . . . . ... . . ... . .. . . . . .. . .. 530

Teste' . .... .. .. .. .. .. .. .. . ... . . ... . ... . . .. .. ... ..... . .. .. . 530 Dia 19 Implantando Seu Aplicativo 53' Int roduo Implantao ' .. . ....... . . . . .. ... . ... .. .. . .. . ... . .. 53 1Criando uma Instalao Simples . .. . . .. .. ... . .. .. . . ... . . . .. .. . 533 Crie o Projeto e a Soluo ' . ....... . . .. .. ... . . .. . .. ... .. . .. .. 533Arqu ivos de Configurao' ......... .. . .. . .. . ..... ... . .. . ...... 540

Implantaes de Mltiplos Projetas ' . .. . . Resum o' .. ... .. . ... .. .. . ... . ..... P&R .. . .. .. ... . ... .. .. . ... . ... . . Workshop' ....... . . .... .. ... . Teste' ........... .... . ... .. Exerccios ......... . . .. ... ..Dia 20 Introduo XML,

... . .... ... . .. . . . . .. .. . 542 ... . ... . . ... . .... . . .. . .. 545 ....... . . .. .. ...... .. . .. 545 . . . .. .. .... .. . ... ...... 546 . . . . ... . ..... . ...... ..... 546 . . .. . . . . ..... .. . .. . . ..... 546547

O Que E XML? ....... .. .. ... . .. . . .... .... .. . .... .... . 547 E[ementos .. .. . ... .... . .... ... . ... . . .. . . ...... .. .. . 55 1 Atributos' .. .. . ... .. .. . ... .. .... . . . . .. . . . ... .. . .. 552 Esquemas' . ... . ... .. .. . ..... . ....... . .. .. ...... .. . .. 553 Trabalhando com a XML ............. .. . ..... . .. .. .... ...... 556 O Document Object Model .......... . . .. ... . .... .. . .... ..... 556 Objetos de Leitura e de Gravao' .... . . .. . .. . .... .. . .. . .... . . 559 LendoXML ,, 56 1 Gravando XML . .. ... .. . ........ . . . .. ... . ... .. . . . .. . ... .. . 566 Resumo . .. ... .. . ... .. .. .. ... . . . . . .. ... . ... .. . . . ...... .. . 569 P&R .......................... . .............. .. .......... 569 Workshop' .... .. . .... . .. ... ..... ... ... . ... .. . .. . ... . .. 571 Teste' .. ... .. . ... .. . .. ... .. .. .. .. .. ... . ... .. . . .. .. ... . 571 Exercc ios' ... . ... .. .. . ....... .. .. .. ... . ... .. .. ...... .. . 57 1Dia 21 Criando Servios Web com o Visual Basic .NET 573

O Que um Serv io Web? ' . . .... . .. .. .. .. ... . ... .. ... . .. . ... .. . 573 O Sim p[e Object Access Protocol ..... .. .. .. ... . ... .. . .. . .. . ... .. . 575 O Protocolo' .................................. . .......... 575 Web Service Description Language (WSD L) ........... .. .......... 576 Discovel)" ... . .. . ... .. .. ... . ... . .. .. .. ........ .... ... .. . 579 Criando um Servio Web Simples ' . . .. ... . .. ... . ... .. .. .. . ... . .. 580 Criando o Projeto ' .. .. .. . ....... . .. ... . ... .. .. .. . ... . .. 58 1 Adicionando o Cdigo' . ........................ .......... 584 Compilando o Servio Web' ........ .. ............. .. .......... 585 Criando um Serv io Web Cliente .... .. ............. . .......... 587 Criando o Projeto' .. .. .. . ....... . . . . .. ... . ... .. . . .. .. . ... . .. 588 Adicionando O Cdigo' . ... ... . .. .. .. .. ... .. . .. ... .. .. . . ... . 589

Sumrio

XIX

Um Servio Web Mais Complexo Criando o Servio' .. .. . Testando o Servio Web' Criando o Cliente ' .. . Adicionando o Cdigo Resumo P&R .. Workshop ' Teste' . Exercfc ios SEMANA 3 Resumo

592

. . . .. . . .. . ...

597 596 597600 604

. . . .. . . ... .. . . . . .. .

605 605 605 605606

Apndice A - Respostas dos Testes/ Exerccios

609

Respostas do Dia [ Teste' ... Exercfcios Respostas do Dia 2 Teste' .. Exercfc io Respostas do Dia 3 Teste' ... Exerccios Respostas do Dia 4 Teste' .. Exercc io Respostas do Dia 5 Teste' ...... . Respostas do Dia 6 Teste' .. . Exercc ios Respostas do Dia 7 Teste' ... Exerccios Respostas do Dia 8 Teste ' .. . Exerc cios Respostas do Dia 9 Teste' .. . Exerccios Respostas do Dia 10 Teste' ... Exerccios

. . . .. . . ... .. .

609 609 610 61 I 611 611 611 611 612 613 6\3614

615 615 615 615 615 617617 617

. . . .. . . .. . ... . . . ...

. . .. . . .

... . ..

619 619620

621 621

622623 623

67'

-,

xx

A prenda Visual Bas ic .NET em 21 Dias

Respostas do Dia 11 ... ... ..

Teste' .. .. . .. . .. . .. ... . .

Exerc cios' Respostas do Dia 12 . . .. . .

. . . . . . . . . . . . . . . . 627 . . . . . . ... ... .. . . . . . . . . 628

.. .

627

. . . .. . . .. . ...

. ...... . . . . . . 629

. . . . . . . .. . . . 630 . . . . . . . . . . .. 630 Teste' . . . . . . . .. . . .. . .. . . . ... . ... . ... . . . . .. . . . . . . . . . . . . . 630 Respostas do Dia 14 ... .. - . . .... . . . . .. ... . ... .. . . . . - . . . . . . . . 630 Teste' .. ... . . . . . ... . ... . . . . . . . . . . ... .. . .. . .. . .. . . . . . . . . . . 630 Exercc ios' .... . ............ . .. .......... . .. . ... ........ . 630Exercc ios' .. . . .. ... .. . . .. .. .. .. . . . . .... . .. .. . Respostas do Dia 13 .... . .. . . ... ... . .. .. ... . . . ... . Respostas do Dia 15 ....... . ....... . .. .. . .... .... . . . . .. .. .. . .. Teste' .. . . . .. . .. . . . . . . ... .. .. Exerc cios . . . . . . . . . . . . . . . . .. . ... .. . . . .... Respostas do Dia 16 ' . ... . . . . ... . .. . .. ... . ... .. . . .. ... . . . Teste ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...... . . . Exerc c ios' . . . . . . . . . . . . . . . . . . . .. . .... . .. . .. . . . ...... . .. Respostas do Dia 17 . . ... . ... . . .. . .. ... .. . .. . .. . .... . ... ... . Teste' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... .. . .... .. . .. . .. Exerccios ... .. . . . . . .. . . . . . . . . . . .. . ... .... .. Respostas do Dia 18 . ... . .. .. . Teste' ............. . .. .. . .. . .. .... . .. Respostas do Dia 19 ..... . .. .. . . . . ... .... .. .. .. Teste' .............. .. .. . . . . . Exerc cios Respostas do Dia 20 .. . ... .. . . . . . . . .... . .. . . .... . . .. . Teste ' .. ... .. . ... . . ... . .. . . ... . ... . . . . .

Teste ' . . .... . ...... .. . . .... ... . . . . . ... . . ... ... .. ... .... . . . 629

63 1

63 1 63 1633 633 633 638 638

........ ..... .. .. .. .. .. . .. ..... . . .. . . .

638639 639

Exerc c ios ... .. .. ... .. . .. . .. . .. ..... . ... . . . . . Respostas do Dia 21 .. .. . .. . .. . . . . . . Teste' .. . . . .. . ... .. . . . . . .. . .. .. ... . . .. . . ... . .. .. .ndice

640 640 640 . . 64 1 . . 641 .. 641 . . 644 .. 644645

IntroduoBcm-vindo a uma lio estimulante e informativa de 21 d ias sobre o Visual Basic .NET, a mais nova encarnao da linguagem de programao mais popu lar do mundo. Este livro foi planejado para fornecer a voc uma introduo ao .NET Framework e ao Visual Basic .NET, e faz-lo comear a programar aplicativos reais o mais rpido possvel.

Viso Geral

o .NET Framework o conjunto bsico de conceitos e tecnologia subjacente ao mais novo grupo de ferramentas de desenvolvimento da Microsoft e constituir a base para a nova srie de servidores, apli cativos e servios com base na Web implantados ao redor do mundo. Como j de se esperar, a plataforma .NET no algo que possa ser completamente discutido em uma hora ou mesmo em 21 dias, portanto, este livro ter uma abordagem mais especifica. Voc precisar se tomar produtivo rapidamente e isso o que conseguir nos prximos 21 dias enquanto ler este livro e trabalhar com os exerccios dele. Pelo fornecimento dos elementos bsicos da linguagem do Visual Basic .NET e li ma expl icao s uficiente do prprio .NET Framework, voc estar pronto para j comear a programar e preparado para continuar aprendendo ao progred ir. Desde o incio, importante observar um fato essencial sobre a plataforma .NET: a linguagem que voc lisa menos relevante do que foi no passado. O Framework (o conjunto de tecnologia em que toda a plataforma .NET est baseada) a prpria plataforma .NET e tambm pode ser acessado sem problemas por qualq uer linguagem .NET (incl uindo o Visual Basic, C#, C++ e outras). Essas so notcias excelentes tanto para os desenvolvedores novos do Visual Basic quanto para os experientes. O Visual Basic no mais uma linguagem de segunda classe, com certos recursos avanados do sistema operacional restritos apenas aos programadores que usam C++. Agora, qualquer sistema, independentemente do tipo, pode ser criado no Visual Basic. Essa independnc ia tambm significa que voc (ou sua empresa) est livre para escolher qualquer linguagem com aqual que ira trabalhar. Dada essa opo, mu itas pessoas, incluindo os autores deste livro, iro adolaro Visual Bas ic .NET. Sua sintaxe e est ilo fceis de usar o tornaram a linguagem de programao mais popular do mundo, mesmo com as limitaes que a verso anterior apresentava. Agora, com a plataforma .NET, nada ir imped i-la de ser usada em qualquer projeto de todos os tipos de empresa. Se voc estiver interessado cm aprender mais do que apenas o Visual Basic .NET - talvez a C# possa ser bem interessante - , continuar tendo um bom ponto de partida. Este livro vai fornecer uma abordagem de como usar o .NET Framework, conhecimento que pode ser transferido facilmente para qualquer linguagem .NET. Este livro foi planejado como uma srie de lies, cada uma representando a lgum conceito importante no desenvolvimento de aplcativos (como o acesso a bancos de dados) ou um trecho es-

XXII

Aprenda Visua l Basic .NET em 21 Dias

senc ial com conhecimento para tornar voc produt ivo (o uso do IDE, por exemplo). Essas lies podem ser examinadas em qualquer ordem, mas se voc for novo na atividade de programao em geral, ento, ser mais vantajoso seguir a partir do incio, na primeira vez que o livro for usado. A maioria das lies, mesmo a primeira, inclui algum exemplo de cdigo e exerccios para os quais ser necessria a elaborao de mais um pouco de codificao. Para aprovei tar ao mximo o tempo gasto no livro, tente realizar todos esses exemp los e exerccios. Nada aumentar sua compreenso desses tpicos mais rapidamente do que co locar a mo na massa e cod ificar.

Quem Deve ler Este livro?Embora o objetivo principal deste livro sejam as pessoas iniciantes na at ividade de programao em geral e no Visual Basic .NET especificamente, ele ser t il a uma variedade maior de leito res. Se vocj for um programador do Visual Basic, ento, procure nos diversos tpicos do livro algumas das timas explicaes e exemplos que envolvam os novos recursos. Ser possvel per ceber que h mu itas diferenas no universo do Visual Bas ic 6.0, e o nvel de abordagem forneci do neste li vro deve ajudlo a fazer a transio. Se voc j for um programador experiente que no conhece o Visual Basic, poder ficar tentado a saltar ou ler de modo superficial grande parte das primei ras Iies. Independentemente de seu nvel de habilidade, ser bom examinar com detalhes a introduo (Dia I) para compreender o conceito geral da plataforma .NET e a abordagem do IDE (Dia 2) para ganhar ve locidade ao tra balharcom o Visual Studio .NET. Em seguida, poder passar pelo resto do livro com seu prprio ritmo, verificando por alto algumas das sees que abordam conceitos gerais de programao e se dedicando aos captulos que explicam como o Visual Basic .NET realiza tarefas avanadas, como a criao de objetos, o acesso a bancos de dados e a gerao de aplicativos na Internet.

o Que Voc AprenderEste livro ensi nar a voc como criar vrios tipos di ferentes de aplicat ivos usando o Visual Basic .NET, incluindo tanto os cliente/servidor quanto aque les com base na Web. Quando passar pe los tpicos sobre o Visual Basic .NET, tambm aprender muito sobre o .NET Framework e conhe cer alguns servidores .NET, inclusive o SQL Server e o Internet Informati on Services. No que diz respeito ao projeto e arquitetura, voc aprender sobre os recursos orie ntados a ob jelos do Visual Basic .NET, como, por exemplo, a criao de classes e o uso de objetos, alm dos princpios bsicos da herana, sobreposio, anulao e outras funciona lidades avanadas fome cidas por esse tipo de programao. Na etapa de desenvolv imento que envo lve a interface ou sada, voc aprender a criar aplicat i vos ' Windows' por meio dos novos recursos de formulr ios do Visual Basic .NET, a construir interfaces com base em pginas da Web usando fo rmulrios da Web e a gerar um servio simples disponvel na Web que podera ser utilizado por qualquer linguagem ou plataforma de programa o capaz de acessar a rede e compreender a XML.

Introduo

XXIII

I

Nosso objetivo prepar-lo nos prximos 21 dias para que voc possa criar muitos de seus prprios apl icativos simples no Visua l Basic .NET e trabalhar como parte da equipe que est desenvolvendo um grande aplicativo Windows ou com base na Web.

o Que No AbordaremosApesar da discusso anterior sobre a independncia da linguagem e a importncia das tecnologias subjacentes, este um livro que tem como prioridade o Visual Basic .NET. Como tal, no abordaremos a C# ou qualquer outra linguagem .NET que no seja o Visual Bas ic. Mencionaremos a utilizao de bancos de dados, como o SQL Server, mas voc no precisar recorrer a livros sobre ele para obter detalhes completos sobre como configurar e gerenciar seu servidor de banco de dados. Tambm no pretendemos abordar todo o Visual Basic .NET neste livro. Essa uma linguagem portentosa, com muitos recursos. Apenas para listar todos eles e a sintaxe usada para empreg-Ias, preci saramos facilmente de um livro deste tamanho. Discutiremos o Visual Basic .NET com detalhes sufic ientes para que voc se torne produtivo ao us- lo e seja fornecido o conhecimento necessrio para que comece a projetar aplicativos que se beneficiem dos novos recursos da plataforma .NET.

RequisitosJ que se trata de um livro sobre o Visual Basic .NET, o requisito mais premente um sistema

que execute o Visual Studio .NET, e que tenha no mnimo as especi ficaes bsicas a seguir:o

o

Sistema operac ional Windows XP Professional, Windows 2000 (Dalacenler Server, Advanced Server, Server ou Professional) ou Windows NT 4.0 Server. O Visual Stlldio se encarregar da instalao de qualquer pacote de servios. arquivos atllalizados de acesso a dados e da verso 6 do Internet Explorer, todos sendo req uisitos para o Visual Studio .NET. Hardware Pentium II com 450 Mhz ou equ ivalente, 128 MB de RAM, placa de vdeo com capacidade para resoluo de 800 x 600 pi xels, 256 cores e no mn imo I OB de espao em disco rgido. Uma unidade de CD-ROM necessria para instalao, mas voc pode colocar seus CDs em out ra mquina e instalar por meio de uma conexo LAN.

Alm do Visual Studio, os exem plos deste livro requerem a possibi lidade de acesso a um servidor Web que esteja na mesma mquina do Visual Studio ou tenha o SDK do .NET Framework instalado nela. O melhor a fazer se certificar de que sua mquina principal de desenvolvimento tenha um servidor Web em execuo nela, como no Windows 2000 ou no Windows NT. Outro requisito bsico usado pelos exemplos na ltima metade deste livro O acesso a um banco de dados, especificamente o SQL Server 7.0 ali 2000. Se voc no tiver o SQL Server, ento poder usar o Microsoft Data Engine (MSDE), que funciona de maneira semelhante ao SQL Server completo. Pode ser usado um banco de dados Access, se for esse o seu, mas ser preciso alterar alguns dos exemplos nas lies de acesso a bancos de dados para faz-los funcionar sem o SQL Server.

XXIV

Ap renda Visua l Bas ic .NET em 21 Dias

Habilidades Que Voc Precisa TerEste um livro destinado a programadores iniciantes, mas algumas habilidades bs icas so necessrias. Espera-se que voc esteja familiarizado com o uso de computadores com base em Windows, incluindo o sistema operacional que esti ver instalado para executar a platafonna .NET.

Copiar arquivos, imprimir, abrir arquivos no Bloco de notas e habil idades de edio bsica de texto(recortar, cop iar, colar) so todas necessrias, e no sero explicadas nas li es. Saber como conectar sua mquina Internet e navegar em si les da Web tambm so habilidades exigidas .

Alm desse conhecimento bs ico em computadores, voc no precisa ser um programador ou

saber como construir bancos de dados. Qualquer conhecimento efetivo nessas reas provavelmente ser til, mas nossos exemplos e explicaes foram elaborados para serem claros mesmo para algum que nunca tenha tentado codificar antes .

o Site da WebEste Iivro possui um site da Web associado a ele no endereo http: //www.makron.com.br . Localize a pgina do livro no site, digitando seu ttulo na caixa Pesquisa. Ao entrar na pgina do livro, procure o link MATERIAL COMPLEMENTAR. Voc pode fazer o downJoad de todos os cdigos do livro e alguns Iinks ou materiais complementares que achamos ser teis para o leitor com, preender o Visual Studio .NET. E claro que totalmente possvel usar este livro e acompanhar todos os exemplos, sem ser preciso visitar o site, mas em alguns dos exemp los mais longos, pode ser melhor economizar algum esforo em digitao fazendo o download dos arquivos que contm os cdigos.

Layout dos CaptulosVinte e um dias um perodo longo, portanto, alm de dividir as lies em dias, organizamos o livro em sees com durao de trs semanas (ou partes). Na primeira parte, nos dedicaremos a introduzi-lo nos conceitos gerais de programao e da platafonna .NET, e abordar a sintaxe e tcnicas bsicas para a criao de programas COI11 o Visual Basic .NET. Na segunda parte nos aprofundaremos no .NET Framework para fomecer uma compreenso mais detalhada dessa base essencial de toda a programao e tambm discutiremos os fundamentos da criao de programas reais, como a maneira de gerar uma interface com o usurio (com formulrios Windows e da Web) e como trabal har com bancos de dados. A llltima pm1e introduzir alguns dos tpicos mais avanados da programao .NET, incluindo a cfiao de seus prprios objetos, a implantao de seu aplicativo nos computadores de outras pessoas e o trabalho com a XML e os servios da Web. Como falamos anteriormente, tente percorrer essas lies em ordem, mas fique vontade para saltar adiante se houver um tpico sobre o qual queira muito ler mais no momenlo que desejar.

Introduo

xxv

RetornoTrabalhamos duro para tornar este Iivro urna ferramenta til de aprendizado da plataforma .N ET e uma aquisio valiosa para sua biblioteca de desenvolv imento. Se voc achar que deveramos ter gasto mais ou menos tempo em algurn tpico especfico ou tiver sugestes para melhorar o livro, faa cantata conosco (c 1i [email protected]). Tentaremos incorpor-las em livros futuros e, se for o caso, na prxima reviso deste mesmo volume.

Convenes Usadas Neste LivroEste livro usa vrias convenes para ajud-lo a priorizar e recorrer s informaes que ele contm:

NOTA

As notas fornecem informaes teis em destaque, que voc pode ler imediatamente ou retornar a elas sem perder o fluxo do tpico que estiver examinando.

DICA

As dicas rea lam as informa es que podem tornar sua programao no VB mais eficaz.

Os alertas de cuidado concentram sua ateno em problemas ou efeitos colaterais que podem ocorrer em situaes especificas.

FaaOs q uadros FaaJNo Faa enfatizam prticas boas que voc deve adotar ... . .. e ruins que devem ser evitadas.

Novo TERMO

Os cones Novo Termo assinalam locais onde uma nova lenninologia foi usada e definida pela primeira vez. Essa terrninologia aparece destacada com uma fonte em itlico. Os cones Cdigo so usados em exemplos de cdigo que o usurio deve inserir. Os cones Anlise apontam para discusses com explicaes sobre os exemplos de cdigos.

CDIGO

ANLISE

o cdigo apresentado em fonte monoespaada.

SEMANA

1

Viso GeralDurante esta parte, voc aprender varias tpicos essenciais: O Visual Basic .NET c o conceito de programao (Dia 1). Configurao e uso do Visual Studio .NET para comear a escrever programas (Dia 2). A sinta"e e as tcn icas de programao do Visual Basic para tipos de dados, procedimentos e variveis (Dia 3); o controle do fluxo dos programas - laos e instrues condicionais (Dia 4); e o tratamento de erros (Dia 6). Organizao e projeto de uma soluo no Visual Basic .NET (Dia 5). Conceitos importantes relacionados ao desenvolvimento orientado a objetos com os quais voc trabalhar por todo o livro (Dia 7).

Esta parte importante. Ela define os fundam entos do conhecimento bsico nos quais todos os outros conceitos de programao do Visual Bas ic .NET se basearo. O Dia I preparar voc para comear a explorar e aprender o Visual Basic, por meio da introduo dos conceitos fundamentais de programao e da plataforma .NET, junto com um breve histrico do prprio Visual Basic. No Dia 2, aprenderemos a usar o ambiente de desenvolvimento com todos os recursos do Visual Studio para criar projetos . Nos Dias 3 e 4, voc ir programar com muitas informaes sobre a sintaxe e conceitos (incluindo variveis, laos, instrues i f e mais) que faro parte de todos os programas do Visual Basic escritos desse ponto em diante. No Dia 5, voc conhecer todos os tipos diferentes de projeto que poder criar no Visual Basic .NET e aprender a adapt-los arquitetura geral do sistema. Para concluir, os Dias 6 c 7 retornam ao mundo prtico da codificao cm que aprenderemos a lidar com erros e a usar objetos em programas. Esta parte fornecer as informaes de que voc precisa para prosseguir com a leitura do livro, provendo todos os detalhes sobre os quais os outros captulos se desenvolvero.

SEMANA

1

DIABem-Vindo ao Visual Basic .NETa segUI r: Hoje, o introduzirei no universo da programao do Visual Basic respondendo s perguntas .

O que programao e por que seria interessante aprend-la? Como o Visual Basic se encaixa em tudo isso? O que .NET?

Nos dias de hoje, o computador j coisa trivial, e muitas pessoas que conheo passam o dia inteiro trabalhando com eles. Mas, mesmo assim, a pergunta mais comum : "O que um programador de computadores faz?" . Essa pergunta tem sido feita tantas vezes, que na lio de hoje, usarei um pouco do tempo discorrendo sobre o que programar e por que voc gostaria de fazer

ISSO.

Compreendendo a Programao de ComputadoresEmbora falemos com freqncia em computadores no que diz respeito ao hardware ( comum ouvir comentrios como "Tenho um Pentium III com 600 MHze 256 MB de RAM", por exemplo), s isso no o bastante. A CPU (Central Processing Unit ou unidade central de processamento do com putador), por exemplo, pode realizar muitas tarefas importantes como clcu los matemticos ou a transferncia de dados entre vrias partes do sistema. Sozinho, no entanto, no capaz nem mesmo de ler um arquivo no disco rgido. Um programa de compulador um con-

4

Dia 1

junto de instrues para todos esses elementos de hardware, em geral escrito para execuo de alguma tarefa que esse no poderia concluir sozinho. Todas as operaes bsicas que envolvem o uso de unidades de disco, memria, monilare impressora so complexas. Um programa que tivesse de interagir com essas operaes gastaria a maior parte de seu tempo nelas, e s6 um pequeno percentual seria empregado em sua finalidade real. Escrito no hardware, um programa para calcular os pagamentos de uma hipoteca provavelmente teria centenas ou mi lhares de linhas para gerenciar a exibio e outras questes, e apenas algumas li nhas para fazer o clcul o. Assim a programao era fei ta no passado, sem que fosse muito produtivo porque mu ito pouco tempo podia ser gasto na finalidade real do aplicativo. O que se precisava era de alguma maneira pela qual todos esses detalhes fossem manipulados para que os programas pudessem se dedicara suas tarefas especficas.

A Funo dos Sistemas OperacionaisPara fornecer essa camada bsica de funcionalidade nos equ ipamentos, os sistemas operacionais foram criados. Eles mesmos so programas de computador, mas sua funo manipular todos os detalhes de gerenciamento de memria, entradas/sadas do disco (E/S) e outras tarefas de nvel inferior. Quando h um sistema operacional (OS, Operat ing System) em um computador, outros programas podem ser escritos que no tenham de lidar com todos os detalhes de nve l inferior; se os programas precisarem abrir um arquivo ou formatar um d isquete, podero solicitar ao sistema operacional que execute essa funo para eles. Examinando isso graficamente (veja a Figura 1. 1), voc poder vis uali zar as relaes entre o hardware do computador e o sistema operacional, ou desse com outros programas, como vrias camadas de funcionalidade.

1.1 O sistema operacional se toma a iII/e/face emre o equipamelllo do computador e seu programa. permitindo que voc evile cdigos especficos deFIGURA

Aplicativo do Usurio (incluindo seus programas!)

Sistema Operacional Drivers de Dispositivos Componentes do Hardware Drivers de Dispositivos

Iwrdll'lIrc.

Com freqOnc ia, os relacionamentos no so definidos com muita clareza; um programa pode precisar acessar o hardware diretamente (sem passar pelo sistema operacional) para usar um recurso dele ao qual o sistema operacional no d suporte ou para tentar melhorar o desempenho. Isso decerto foi o que aconteceu, no incio, com um dos pri meiros sistemas operacionais de r es, no qual muitos programas tinham de interagir diretamente com o hardware . Essas limitaes significavam mais trabalho para as pessoas que quisessem escrever softwares para rcs, j que cada programa precisava manipular suas prprias impressoras e outros detalhes. Ao mesmo tempo em que verses sucessivas dos sistemas operacionais forneciam um aumento na funcionali-

Be m -Vi n do ao Vis u a l Basic .NET

5

dade, se tomou mais fci l escrever programas para eles. Por fi m, o Windows substituiu esses sistemas. Uma das maiores melhorias oferecidas pelo Windows que o sistema operacional agora prov recursos de interface de usurio para outros programas. No Windows, se um programa de computador precisar mostrar uma caixa de dilogo na tela (como a da Figura 1.2), ele apenas solicita ao sistema operacional para exibi -Ia e fornece a mensagem que a acompanhar. Para acessar toda a funciona l idade que o sistema operacional prov, um conj unlo de APls (Appl ical ion Programming Interfaces) disponibil izado. Essas AP ls representam a exposio de todos os recursos do sistema operacional e podem, portanto, ser usadas em seus programas.

FIGURA 1.2

O Windows manipula a

~~ ...

daIo(J boxl

exibitio de elementos de GU!.s (Gl'aphicafUseI' Ime/faces.

p.,tef ... Gr~lcel Use. Interf~e.

fme/faces gr4ficas com o usurio) como esta caixa de dilogo. o que fa= pane do. servios que ele fornece aos programas.

II '" II

o resultado de todas essas melhori as que cada programa tem de manipular cada vez menosoperaes genricas do computador e pode, portanto, se dedicar a sua fi nal idade real. O utro grande beneficio da remoo de cdigos especficos de hardware dos apli cativos que, quando ocorrem alteraes no hardware (impressoras e unidades novas de disco rgido, c r us mais velozes), o sistema operacional pode ser atuali zado para manipu lar o equ ipamento novo, mas os programas executados nesse computador no devem ser afetados. O que isso signi fica para voc como programador do Visual Bas ic? Bem, significa que poder criar programas de computador para reali zar uma tarefa espec fi ca sem ter de saber nada sobre como o Windows desenha as figuras no monitor, emi te documentos na impressora ou salva arqu ivos no disco rgido. Voc se tornar produti vo rapidamente, com a ajuda deste livro.

o Papel das linguagens de ProgramaoEnto, agora voc sabe o que o sistema operacional fornece, mas e os programas propriamente ditos - como so criados? Antes, neste captulo, defini um programa de computador como um conj unto de instrues para o hardware. J que o hardware s pode real izar operaes re lativamente fceis, as instrues tambm devem ser simples. O resultado final do programa um cd igo que o hardware pode entender, chamado com freqnc ia de linguagem de mquina ou cdigo nativo. As instrues, depois de carregadas na memria pelo sistema operacional , so compostas de comandos como "transfira a memria de um local para outro" ou "execute uma funo matemtica com os valores". Milhares desses comandos formam um programa comp leto.

Dia 1

possvel escrever programas usando di retamente esse cdigo nati vo, com a criao de um arquivo no disco rgido repleto de instrues, mas seria necessrio muito trabalho para produzir at mesmo um programa mais simples. Para evitar todo esse esforo e permitir que os programadores se dediquem fina li dade de seus programas, linguagens de nvel superior foram criadas. Essas linguagens permitem que voc use instrues mais avanadas e complexas que so, ento, convertidas para as diversas instrues necessrias que sejam correspondentes s outras na linguagem de mquina. Uma nica linha de uma linguagem desse tipo provavelmente poderia se transformar em dez instrues separadas na linguagem de mquina. NovoTERMO

o processo de converter uma linguagem de computador de alto nve l em cdigo de

mquina ou nativo conhecido como compilao. Os programas que fazem essa converso so chamados de compiladores.

Muitas dessas linguagens foram criadas com o passar dos anos. FORTRAN, COBOL, APL, Pascal , C e BAS IC so apenas alguns exemplos, mas centenas de li nguagens diferentes esto disponveis. Cada linguagem poss ui seu prprio conjunto de comandos e, com o tempo, novos comandos so criados para simpl ificar ainda mais o esforo de programao. Assim como os computadores evo luram progressivamente, o mesmo aconteceu s linguagens usadas para program- los, sendo adicionados novos recursos s existentes ou com a criao de novas linguagens como a Ctt (que, como voc deve ter adiv inhado, foi baseada na C) e a JA VA. Em geral, os aprimoramentos nas linguagens tm o objetivo de aumentar a produtividade da programao, permitindo que o desenvol vedor crie o programa desejado da maneira mais fcil possve l.

NOTA

simplista decla rar que as linguagens de programao evoluem apenas para tornar o desenvolvimento mais rpido. A velocidade no desenvolvimento apenas uma das motivaes por trs das melhorias que ocorreram. Outros objetivos e resultados so a produo de aplicativos mais rpidos ou estveis (com menos falhas ) ou at mesmo a criao de aplicativos mais fceis de instalar.

Originalmente, a maioria das linguagens de programao era composta de apenas um item, um compilador. O programa era criado com o uso de um ed itor de texto, como o Bloco de notas, e o compilador era executado, passando o nome do arquivo ou programa-fonte. Em seguida, ele produziria o resultado final , um programa executvel, pressupondo a inexistncia de erros. O resu ltado compilado era executado, testado para a verificao de erros e, ento, voc voltaria a seu editor de texto para fazer alteraes no cdigo. Ele seria com pi lado mais uma vez, e o ciclo se repetiria. Esse processo de desenvolv imento (veja a Figura 1.3) no era de uma linguagem especfica; era uma atividade comum para todos os programadores.

Bem-Vindo ao Visual Basic ,NET

7

FIGURA 1,3

" , (crie/Edite o Cdigo)

Os compiladores eOlll'erlem o cdigo-fonle de lillguagells de alIo nirel em instrues qlle o computador possa compreender.

(

Encontre erros)

C Compile ) ------'-~El(ecute )

Enquanto as li ng uagens de programao evoluam, esse c iclo foi melhorando tambm, resul tando no desenvolv imento de compi ladores mais avanados e no conceito de um Ambiente Integrado de Desenvolvimento ( IDE, Integrated Development Environrn ent). A finalidade de um IDE combinar os componentes de edio, depurao e compilao do desenvolv imento de softwares em lima llnica interface para o programador (veja a Figura 1.4). Apesar da interface llnica, a tecnologia real muito semelhante. Na maiori a dos casos, o cdigo ainda compi lado (veja a Nota a seguir para mais infonn aes) e o programador ainda cria arquivos de texto, mas o ambiente de trabalho muito mais amigvel.

FIGURA 1,4

O Visual Studio 11m IDE quefomece lima ime/face nico para qualquer lipo de linguagem, inell/sire para o Visual Basic.

,

.... """

"'. . 01 .

r. ".c".. ,................,

.... . _""o U

... . .

CO_I . ' ' ' '~," vbc step2.vb jt:exe Microsoft {R)Visual 8asic.NET Compiler version 7 . 00 . 9254 for Microsoft (R) ,NET CLR version 1.00.2914.16 Copyright Microsoft Corp 2001. All rights reserved.

C: \TYVB \Cl>step2 Eaqui que entraro as informaes sobre a verso do sistema operacional!

Adicionando a Funcionalidade das Informaes sobre a VersoVoc sabe que o cd igo est correto at este ponto (porque funcionou), portanto, ele fornece um bom ponto de partida para a prxima etapa. O que precisamos fazer agora obter as informaesreais sobre o sistema operacional e, em seguida, ex ibi ~las no lugar do trecho genrico de texto. Teremos de usar o .NET Framework novamente para conseguir essas informaes, por meio de

outro rec urso que ele fornece, o acesso aos dados sobre o sistema operac ional at ual, como o Windows 2000. Essas informaes so disponibi lizadas pelo mesmo objeto Syslem , mas em vez de usar Syslem.Console, empregaremos Syslem.EI/\Jironmenl.OSVersioll. Altere o cdigo de Slep2.vb para que tenha a aparncia do descrito abaixo e, ento, salve o arquivo como Step3 . vb. Imports Sys tem Public C lass Step3 Shared Sub Main{) System.Console.WriteLi ne{ System.Environment.OSVersion.ToString{)) nd E Sub End Cl ass A compi lao do cdigo vbc step3. vb It :exe no ser diferente do que foi fei to nos dois exemplos anteriores. Essa compilao produzi r um programa executvel com o nome step3 .exe. Executar esse programa exe, digitando Step3 En t er na janela aberta da linha de comando, gerar o resultado a seguir:

C: \ T V \ C1 step3 Microsoft Windows NT 5. 0.2195 . 0Observe que o resultado indica um computador Windows 2000 (NT 5.0); outros resultados sero gerados para com putadores diferentes. Agora voc tem um pequeno programa exe que retornar a verso do sistema operacional , decerto ele ser til pe lo menos para admini stradores de rede. O aplicativo cham ado de s tep3 .exe, mas seu nome pode ser fac il mente alterado para algo mais prximo de sua final idade real.

Usando o Compilador de Linha de ComandoNos exemplos anteriores, voc usou um compilador de linha de comando para especificar dois itens, o desti no dele (ft: exe) e o arquivo-fonte a ser compilado (step I . vb, por exemplo). O compilador fu ncionou muito bem com essas duas opes, produzindo automaticamente programas

Be m -Vi n do ao Vis u a l Basic .NET

executveis com o mesmo nome do arquivo-fonte , mas h muitas opes complementares disponveis como parte desse comando. Aq ui esto alguns parmetros de linha de comando que podem ser mais teis quando comearmos a fazer testes com o Visual Basic .NET: Itarget : (pode ser chamado como It) especifica que tipo de resu ltado deve ser criado pelo compilador. A opo wi nexe cria um apl icat ivo do Windows. A opo exe, usada em nossos exemplos, gera um aplicativo do console ou de linha de comando e o padro se nenhum parmetro It for empregado . As duas outras opes, 1 i brary e modul e, so util izadas na criao de resultados que no possam ser usadas di retamente, mas que estejam destinadas a fazer parte de outro aplicativo. Voc aprender mais sobre todos esses tipos de sada nos dias posteriores.lout: usado para especificar o nome do arquivo criado. Em seus exemplos, voc o omitiu, fazendo com que vbc empregasse o nome de seu arquivo-fonte (Stepl. vb) para gerar o arqu ivo de sada (Stepl.exe, por exemplo).

Ihel p (ou I?) eq uivalente a executar o vbc sem opes : em q ualquer das duas fo rmas, o resultado ser uma listagem deta lhada de lodos os parmetros disponveis. Iverbose faz o compilador produzir resultados mais detalhados durante a compilao e pode aj udar a solucionar problemas.Ireference: (abreviando-se temos Ir :

45I!IIIIgE!

FIGURA 2 .15

A janela Dyllamic Help tellla !/IOSlra/" informaes Ileisme.mlO anles qlle voc

' \!J - t;: g " .l~ ~I ~ -.,- $)- r.. I , _

~

:!O= 12) And (iHour = 12) And (13 = 18) como sua condio, que se toma (l3 >= 18) e tennina como falsa. Felizmente a execuo passa para a ltima instruo End I f na linha 20 e, em segu ida, encerra o programa.

Estendendo a Instruo IfEmbora a Listagem 4.1 seja bem direta e decerto no o programa mais complicado do mundo, efetivamente levanta uma questo: por que se preocupar com a execuo de um cdigo depois que voc tiver obtido sua resposta? Esse um bom ponto. Mesmo que as linhas 18 a 20 da Listagem 4. 1 fossem apenas algumas linhas adic ionais de execuo, poderia haver muitas outras sobrando no final de um programa no mundo real. Nesse programa, a inteno era realmente passar para a prxima instruo If, s se a aluai fosse falsa. Poderia ter sido mais claro em meu pseudocdigo escrevendo-o da maneira a seguir: Quando o programa for iniciado ... Se a hora atual no s istema for menor que meio-dia ento, exiba "Bom Dia!" caso contrrio

Dia 4

Se a hora atual no sistema for igualou maior que meio-dia e a hora atua l do sistema tambm for menor que 6 da tarde ento. exiba "Boa Tarde!" caso contrrio Se a hora atual no sistema for igualou maior que 6 da tarde ento, exiba "Boa Noite!" Conti nue com o restante do prog rama ... Esse exemplo quase o mesmo que o do cdigo anterior, mas agora est claro que voc s passar para a prxima instruo I f quando o valor da expresso no atender condio da aluaI. Como j deve ter sido percebido, a capacidade de aninhar inst rues If, como aqu i, uma necessidade comum na programao de computadores, portanto, o Visual Basic e a maioria das outras linguagens fornecem uma maneira de expressar exatamente esse conceito com a instruo I f. Estivem os examinando a forma simples desta instruo: If Then bloco de cdigo End If Se a avaliao da condio apresentar como resultado True, ento, o bloco de cdigo ser executado; se obtiver Fa l se, o bloco ser ignorado, e a execuo continuar depois de End If. Voc pode tornar isso um pouco mais complexo adicionando uma nova clusula, El se. Agora, a sintaxe se parecer com a descrita a seguir: If Then bloco de cdigo # 1 El se bloco de cdigo ' 2 End If Nessa nova estrutura, se a condio encontrar um resultado True, o bloco de cdigo # I ser execUlado, e o programa continuar depois de End I f. No entanto, se a condio obtiver Fa 1se, ento, o bloco de cdigo #2 ser executado, e o programa continuar depois de End If. J que a condio deve ser uma expresso booleana e todas elas so verdadeiras ou falsas, um dos dois blocos de cdigo ter de ser processado; essa instruo nunca far com que os dois ou nenhum deles sejam executados ao mesmo tempo. Reescrever o cdigo para se beneficiar dessa nova instruo If aperfeioada produzir a Listagem 4 .3.LISTAGEM

4.2

Greeting_IFELSE . vb

1 Imports System 2 3 Public Class Greeting 4 'Execute o aplicativo

Controlando o Fluxo dos Programas

97

LISTAGEM 4.2 5 6 78

Greeting_IFELSE.vb (continuao)

Shared Sub MainO Oim dtCurrent As System.OateTime Oim iHour As Integer dtCurrent =dtCurrent .Now iHour =dtCurrent.Hour If (iHour " 12)And (iHour then bloco de cdigo 12 End I f End Ifpassa a ser

If lhen bloco de cd igo 83 End I f Mesmo com outra clusula E1 self, todo o bloco considerado parte da instruo I f origi nal , e s uma instruo End I f necessria. Voltando ao primeiro exemplo, a exibio da saudao apropriada depender da hora do dia, e a clusula El self (veja a Li stagem 4.3) permitir que voc simpli fique bastante o cdigo.LISTAGEM

4.3

Greetings_Elself.vb

1 Imports System2

3 4 5 6 789

Public Class Greeting 'Execute o aplicativo Shared Sub Ma in() Oim dtCurrent As System.OateTime Oim iHou r As ln teger dtCurren t ~ dtCurrent. Now iHour ~ dtCurrent.Hour If (iHour < 12)Then Conso l e .Writeline(nBom Dia!") Elself (iHour >~ 12)And (iHour < 18)Then

10 11

121314

Controlando o Fluxo dos Programas

99

LISTAGEM 4 .3

Greetings_Elself.vb (continuao) Conso 1e. Wri teU ne (" Boa la rde! ") Else

15

1617 18 19

Console.WriteLine{"Boa Noite!") End If End Sub

2021 End Class

Instrues If em Seqncia na Mesma LinhaAlm da forma em bloco apresentada anteriormente, na qual um conjunto interno de cdigo inserido entre as instrues If e End If, tambm possvel expressar urna instruo If em urna nica linha. Aqui est um exemplo, em que urna condio verificada e uma ao tomada, tudo em apenas uma linha:If iHour>

11 lhen System.Console.WriteLine("No de manh!")

Esse conceito da linha nica pode ser ampliado com a introduo de urna clusula E1 se:

If iHour

>

11 lhen DoSomething{) Else DoSomethi ngEl se( )

Ele pode at ser usado com mais de uma instruo a ser executada em blocos de cdigo verdadeiros ou falsos (ou em ambos) j que instrues mltiplas podem ser separadas com o uso de doispontos, como na linha a segu ir:

If iHour

>

11 lhen DoSomething{): DoMore{) Else DoSomethingElse()

Inclu essa instruo mais para fins de complementaridade do q ue por alguma necessidade real. No h nada que voc possa fazer com a instruo If em apenas uma linha que no seja possvel fazer com a forma habitual em bloco. Colocar todo o cdigo em uma linha no far com que seja executado mais rpido. Tudo que se consegue, na maioria das vezes, produzir um cdigo-fonte que ocupa menos espao em disco e muito mai s dincil de entender. Ocasionalmente, essa verso de linha nica pode dar a seu cdigo uma aparncia melhor, como mostramos na Listagem 4.4. Nessa listagem, vrias instrues If foram necessrias, todas executando um cdigo simples se suas condies forem verdadeiras. Essas situaes so muito raras para j ust i ficar o uso de outra sintaxe em uma instruo to simples. Recomendo a adoo da OUlra forma dessa instruo para que no provoquemos dores de cabea em nossos colegas programadores.LISTAGEM 4.4

Instrues If em uma nica linha Podem Dar ao Cdigo uma Aparnci a Mel hor

1 If X=5 lhen strChar = "A" 2 If X=23 lhen strChar = "8"

1001

Dia 4

LISTAGEM 4.4

Instrues If em uma nica linha Podem Dar ao Cdigo uma Aparncia Melhor (continuao)

3 If X=2 lhen strChar " "C"4o

Expresses e Lgica BooleanaTodas as instrues de controle dependem, de alguma maneira, de tomada de deciso, com base no valor de uma varivel, constante ou fato relacionado com a situao alua i. Independentemente de que valor esteja sendo verificado, o resu ltado s pode ser verdadeiro ou fa lso. Como j discutimos, todas as expresses booleanas geram uma entre duas respostas: sim ou no, verdadeiro Oll falso. No Dia 3, " Introduo Programao com o Visual Basic .NET', voc aprendeu sobre as variveis booleanas, um tipo de varivel que s pode conter valores verdadeiros ou falsos. Esses so os nicos tipos de expresso e valores permitidos como parte de uma instruo de controle porque e la precisa tomar urna deciso com base nesse valor. Expresses que no so booleanas apenas no funcionam; no produziriam urna resposta positiva/negativa ou verdadeira/falsa, e o programa no saberia o que fazer.Os dois estados mais simples das expresses booleanas so verdadeiro e falso; todas as expresses booleanas, quando avaliadas, term inam com um desses dois valores. No entanto, no h muitos programas que os usem diretamente. Em vez disso, so criadas expresses mais complicadas que so comparaes entre dois valores no boo leanos, operaes lgicas com valores booleanos ou uma combinao desses dois tipos de expresses.

Operadores de ComparaoO tipo mais comum de expresso usado em programas uma comparao, duas expresses no booleanas com um operador no meio. Os operadores de comparao a seguir esto d isponve is para serem usados em expresses:

>, ma ior que =, 4 ANO lngQuantidadePessoas < 10 Then 9 Call RetornalmpostoOomiclioGrande() 10 El se 11 Ca 11 Retorna Impos toOomi cl i oMuitoGrande () 12 End If13

Quando voc comear a testar mais do que algumas opes possveis, todas as diversas clusulas If se tomaro excessivamente complexas. Para manipular o teste COm mltiplos valores ou vrios conjuntos de valores, o Visual Basic incluiu a instruo SeI ect Case, que tem a sintaxe a segu ir: Select Case Case bloco de cdigo Case bloco de cdigo Case El se bloco de cdigo End Select

Co ntrol and o o Flu xo dos Prog ramas

105

o uso da instruo Se I eetLI STAGEM

Case no lugar das instrues If da Listagem 4.7 produzir o cdigo alternat ivo mostrado na Listagem 4.8. 4.8O Comando Select Case Pode Simplificar Muito Seu Cdigo

1 Select Case lngQuant i dadePessoas 2 Case 1 3 Call RetornalmpostoPerCapta () 4 Case 2 5 Call RetornalmpostoDuasPessoas () 6 Case 3,4 7 Call RetornalmpostoDocmiclioMdio() Case 5 to 9 8 9 Ca 11 RetornalmpostoDomi cil i oGrande () 10 Case Else 11 Call RetornalmpostoDomiclioMuitoGrande () 12 End Select A clusula Case El se usada exatamcnte como a clusula El se em uma instruo 1f, cxceto por, nesse exemplo, ser executada se nenhuma das condies for atendida. Observe que, na Listagem 4.8 , apenas uma das condies poderia ser verdadeira a cada vcz. No h sobreposio entre as diversas condies Case, o que faz muito sentido. Na verdade, as sobreposies no so evitadas de modo algum pelo Visual Basic; possvel ter condies sobrepostas nas quais mais de uma condio Case pode co incidir com um valor especifico. Se esse for O caso, s a primeira condio que tiver uma correspondncia ser executada porque o programa sai da instruo SeI ect Case depois que uma correspondncia foi encontrada e o bloco de cdigo apropriado fo i processado. Embora no cause um erro, a sobreposio de condies pode ser confusa para o programador, e mel hor evit-la apenas por isso.

FaaAborde sempre toda condio possvel incluindo uma clusula Case El se. Isso capturar toda ent rada inesperada para as quais voe no usou outra instruo Case. Seu programa fica r mais consist ente. No use m lt iplas condies em sua instruo Seleet Case se um nico valor puder ter correspondncia com mais de uma delas. Esse t ipo de cdigo no um erro para o Visual Basic, mas ser d ifcil de entender o que no muito desejvel.

LaosAt agora, nesta lio, voc aprendeu a controlar que cdigo ser executado com o uso das instrues lf e Select, mas h outra necessidade mu ito comum - a de processar o mesmo cdigo

Dia 4

vrias vezes. Esse requisito manipulado por meio de outra espcie de instruo de controle, o lao (loop). Vrios tipos diferentes de laos esto disponveis no Visual Basic, todos podem executar a maioria das tarefas, mas cada um foi projetado para atender a uma finalidade especfica. Comearemos nosso est udo da repetio examinando o mais bsico dos laos, For ... Next.

For NextOobjet ivo do lao executar um bloco de cdigo vrias vezes, em gera l parando quando alguma condio verdadeira. (Embora um lao no tenha de parar realmente; essa situao chamada de lao infinito.) O lao For executa um bloco de cdigo um nlmero especfico de vezes. A sintaxe desse controle For Cdigo a ser executado Next =

to

A incluso da varive l do contador depois da instruo Next final opcional, mas ela ajuda a in-

dicar que lao For essa instruo Next pertence e boa prtica de program ao.

A Varivel do ContadorA varivel do contador incrementada a cada passagem pelo lao, do valor inicial ao final.

Quando esse valor fi nal atingido, o lao encerra sua execuo, e o programa continua na linha imediatamente aps a instruo Next . Para visualizar esse conceito com alguns valores reais, criaremos uma verso no Visual Basic .NET do pri meiro programa que escrevi (veja a Listagem 4.9).LISTAGEM

4.9

Ex i bi ndo Seu Nome Repet i damente

1 Dim iCounte r As Integer 2 For iCounter = I to 10 3 System. Console .Wri teL i ne( "Ouncan Mackenzie") 4 Next iCounter E claro que em geral uso valores na casa dos milhares ... pois adoro ver meu nome rolando na tela!A varivel do contador real e, exatamente como na Li stagem 4.9, deve ser declarada antes de

voc us-la como parte de seu lao. Tambm importante se certificar de empregar o tipo de dado correto para essa varive l. Na Listagem 4.9, a varivel i Counter seria utili zada para armazenar va lores de 1 a 10, o que torna os tipos de dado intei ro (I nteger) e byte os mais adequados. Em outras situaes, poderamos estar lidando com nmeros muito maiores e, portanto, precisar de um inteiro longo (Lo ng I ntege r ). Para obter mais informaes sobre os diversos tipos de dados, incl uindo que intervalo de valores cada um pode conter, recorra ao Dia 3. Como j mcncio-

Controlando o Fl u xo dos Programas

107

nado, a varivel do contador incrementada a cada passagem pelo lao, o que com freqncia ti l porque ela pode ser usada em seu cdigo.

FaaUse o tipo de dado mais apropriado para a situao; no empregue o inteiro longo se o inteiro puder atender bem. Sendo o intervalo fechado ou podendo crescer muito, certifique-se de usar o tipo de dado que melhor manipule o maior intervalo possvel para o contador.

No Faa.~

No altere o valor da varivel do contador dentro do lao. A funciona lidade interna do lao For aumenta o valor da varivel do contador sempre que o cdigo do lao executado, mas voc no tem impedimentos para alterar por sua prpria conta esse valor. Resista ten tao, ela s resultar em erros desconhecidos e em um cdigo incompreensvel.

A Listagem 4. 10 mostra como voc poderia lIsar a varivel do contador como parte de seu cdigo . Uma pequena funo chamada WeekDayName produz uma listagem dos dias teis da semana.LISTAGEM 4 .10

Usando a Varivel do Contador

1 Public Class DaysOfTheWeek2

3 4 5 6 78

Shared Sub Main() Dim sOayName As String Dim iFirstDay As Integer Dim i LastOay As Integer Dim iCurrentDay As Integer iFirstOay = 2 iLastOay = 6 For iCurrentOay = iFirstDay to iLa stOay System.Console.WriteLine{WeekdayName(iCurrentDay)) Next iCurrentOay End Sub Shared Function WeekdayName{ByVa l iDayNumber As Integer)As String Dim sWeekdayName As String Select Case iDayNumber Case 1 sWeekdayName "Sunday " Case 2 sWeekdayName "Monday " Case 3 sWeekdayName "Tuesday

9 1011 12

13 14

1516

17 1819

2021

22

23 24

25 26

II

108

Dia 4

LISTAGEM 4 .10

(continuao)Case 4 "Wednesday" "Thursday" "Friday" "Saturday"

27

sWeekdayName 28 29 Case 5 sWeekdayName 30 31 Case 6 sWeekdayName 32 Case 7 33 sWeekdayName 34 35 Case [1 se 36 sWeekdayN ame 37 E Select od 38 Return sWeekdayName 39 40 End Function 41 Eod Class

"Inval id Day Number"

Observe que na Li stagem 4.10, Sunday considerado o pri meiro dia, portanto, esse cd igo pro duziria os resultados a seguir:

MondayTuesday

WednesdayThursdayFr i day

NOTA

Esse exemplo ainda no est pronto para produo porque gerar a lista de nomes ape nas em ingls, no levando em considerao as configuraes da mquina . H outras manei ras, um pouco mais complicadas, de conseguir essa funci o nalidade integ ral com o suporte a t oda as con figu raes regionai s dos usurios. Retornaremos a esse tpico no Dia 8, " Int rodu o ao .NET Framework" .

Especificando o Valor do Incremento com o Uso de StepNos exemp los anteriores, a varivel do contador era incrementada em I cada vez que o lao era percorrido, mas possvel espec ificar o valor desse aumento. Depois do trecho com o valor final da instruo For, voc pode inserir Step , e a varivel do contador ser incrementada com base no valor que fo r fornecido . Usando o exemplo do cd igo na Listagem 4 .1 1 corno ponto de partido, tente valores diferentes para Fi r st , Last e Increment e veja os res ultados.

Co ntrol and o o Flu xo dos Prog ramas

109

LISTAGEM 4 .11

ForExample.vb

1 Imports System 2 Public Class ForExample3

4 5 6 7 89

Shared Sub Ma i n{) Dim iCounter As Integer Dim iFirstValue As Integer Dim iLastValue As Integer Dim iIncrement As Integer iFirstValue ; O iLastValue : 100 ilncrement : 10 For iCounter = iFirstYalue to iLastYalue Step ilncrement System . Console . WriteLine{iCounter) Next iCounter

10 11 12

13 14 15 16 17 End Sub 18 End Class

Uma caracterstica interessante e ti l de ter a opo Step no lao For que ela penn ite que voc percorra um intervalo de valores de manei ra invertida. Tente os valores 10, O e 1 para as variveis Fi rst, Last e Increment, respectivamente. Nada ser exibido, porque last j ser menor que Fi rst, mas se o valor de Increment for alterado de 1 para -1, algo interessante acontecer (no aceite simp lesmente o que digo, tente!).Ah, voc conseguiu um lao que executado o nmero exato de vezes que quiser, e agora os va-

lores so listados de trs para a frente. dificil acreditar que possa ficar melhor do que est, mas pode . Espere at chegarmos ao lao Do!

hile End

hile

o lao For, embora til , limitado. Foi projetado para situaes nas quais voc sabe quantas vezes quer percorr-lo, o que no sempre o caso. Por estar atualizado com relao a esse fato, o Visual Basic possui dois laos mais flexveis. O primeiro deles, Wh; 1e ... End Wh i 1e, continua sendo executado enquanto uma expresso booleana especfica for verdade ira, como o descrito a segUI r: While Cdigo a ser executado End Whil e

1101

Dia 4

Qualquer expresso booleana vlida pode ser lIsada, exatamenle como em lima instruo If e,

portanto, possvel dar suporte a cond ies complexas. Por exemplo, um lao Whi 1e pode fornecer com facilidade a mesma func ionalidade do lao For, como demonstramos na Listagem 4.12.LISTAGEM 4 .12

WhileExample . vb

1 Imports $ystem 2 Public Class WhileExample 3 Shared Sub Main{) 4 Dim iCounter As Integer 5 Dim iFirstValue As Integer 6 Dim ilastValue As Integer 7 Dim i Increment As Integer 8 iFirstValue = O9 10 iLastValue " 100 i Increment " 10

1112 13 1415

While iCounter

iTotal

Diferente de apenas escolher entre Whi 1e Oll Unt i I, a posio de sua condio de sada ter um efeito maior sobre como seu lao ser executado. Se voc colocar a cond io no incio do lao, ento, ela ser veri fi cada antes de cada passagem pelo cdigo, antes at da prime ira vez que isso acontecer. Se essa condio no for atendida, o lao no ser iniciado, e o cdigo no ser executado nem mesmo uma vez. Ao contrrio, se a condio for colocada na instruo Loop, ento, ela ser verificad