Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu C# e .NET - Guia do Desenvolvedor pdf
Nội dung xem thử
Mô tả chi tiết
I
C# E .NET – GUIA DO
DESENVOLVEDOR
Consultores Editoriais
Lorenzo Ridolfi
Gerente Sênior Accenture
Sérgio Colcher
Professor do departamento
de Informática da PUC-Rio
Preencha a ficha de cadastro no final deste livro
e receba gratuitamente informações
sobre os lançamentos e as promoções da
Editora Campus.
Consulte também nosso catálogo
completo e últimos lançamentos em
www.campus.com.br
© 2002, Editora Campus Ltda. – uma empresa Elsevier Science
Todos os direitos reservados e protegidos pela Lei 5.988 de 14/12/73.
Nenhuma parte deste livro, sem autorização prévia por escrito da editora,
poderá ser reproduzida ou transmitida sejam quais forem os meios empregados:
eletrônicos, mecânicos, fotográficos, gravação ou quaisquer outros.
Capa
Adaptação da original americana por RioTexto
Editoração Eletrônica
RioTexto
Revisão Gráfica
Adriana Kramer
Projeto Gráfico
Editora Campus Ltda.
A Qualidade da Informação.
Rua Sete de Setembro, 111 – 16º andar
20050-002 Rio de Janeiro RJ Brasil
Telefone: (21) 3970-9300 FAX (21) 2507-1991
E-mail: [email protected]
ISBN 85-352-0954-9
CIP-Brasil. Catalogação-na-fonte.
Sindicato Nacional dos Editores de Livros, RJ
L697c
Lima, Edwin
C# e .Net para desenvolvedores / Edwin Lima,
Eugênio Reis. – Rio de Janeiro : Campus, 2002
ISBN 85-352-0954-9
1. C# (Linguagem de programação de computador).
2. Programação orientada a objetos (Ciência da computação).
3. Software de componente. I. Reis, Eugênio. II. Título.
02-0351. CDD – 005.117
CDU – 004.41
02 03 04 05 5 4 3 2 1
Dedicatória
Aos meus filhos Miguel e Henrique, que são as pessoas que mais amo neste
mundo.
Agradecimentos
A Deus por ter me dado a coragem e sabedoria diante do desafio tão grande
como foi escrever este livro.
A tia Ló de maneira muito especial, por ter dedicado boa parte da sua vida em
toda a minha formação e educação e por ter me ensinado o “Caminho” – Jesus
– pelo qual devo andar.
Aos meus pais, Adiel e Yolanda, porque sem os esforços que eles fizeram não
poderia ter chegado aqui.
In memoriam
De “mi hermano” Rubén.
De “mi abuelita” Mamá Sarita.
“…consegui, painho…”
Meu filho de dois anos
Edwin Lima
V
VI
Dedicatória
À minha esposa Flávia e aos meus filhos Thales e Alice. Eles são o meu grande
tesouro e fonte de inspiração.
Agradecimentos
A Flávia, por todo o carinho, paciência e estímulo ao longo desta empreitada.
A todos que, direta ou indiretamente, me ajudaram a ser o que eu sou hoje.
In memoriam
Ao meu pai, que recentemente deixou este mundo de maneira tão serena.
"O amor é um oceano de emoções inteiramente rodeado de despesas"
Lorde Dewar
Eugênio Reis
VII
VIII
Os Autores
Edwin Lima, pai de dois filhos brasileiros, Miguel e Henrique, nasceu em El Salvador, na América Central, em 1972, onde obteve a educação fundamental. Em
1992, recebeu uma bolsa de estudos para estudar no Brasil, onde graduou-se
como Bacharel em Ciências da Computação pela Universidade Federal da Paraíba em João Pessoa.
Ingressou no mercado de trabalho em 1996, numa empresa de consultoria
em João Pessoa, onde trabalhou até o ano 2000. Nesse período, participou como
analista de sistemas/desenvolvedor em diversos projetos, dentre os quais se destacam um sistema de home banking, aplicações Web e de data warehouse em empresas de telecomunicações na Bahia, Pernambuco e Paraíba, e diversos outros
projetos para empresas do segmento público.
No ano 2000, foi contratado para trabalhar na NEC Computers International na Holanda como Data Integration & Oracle Specialist, onde atua até hoje
desenvolvendo sistemas no ambiente Oracle para projetos de data warehouse e
de integração de sistemas.
Acompanha ativamente as tendências tecnológicas tendo em sua bagagem
profissional certificações da Microsoft (MCP), larga experiência em linguagens
de programação, suporte a bases de dados SQL Server. É especialista no sistema
operacional MS Windows NT Server e Workstation 4.0 e trabalha no desenvolvimento de aplicações para plataformas Microsoft e de código aberto. Investe
seu tempo na leitura e na sua atualização profissional investigando as novas tendências tecnológicas no mercado de TI.
Finalmente, como fruto do seu compromisso com a promoção dos valores
do Reino de Deus, ele se identifica profundamente com as causas sociais que concorrem de uma forma ou de outra para a construção de uma sociedade mais justa
e igualitária.
IX
Eugênio Reis começou a estudar programação, quase que por acaso, ainda aos 15
anos de idade, num pequeno computador NEZ-8000 com apenas 2k de memória e um interpretador Basic. Hoje, possui mais de 17 anos dedicados ao assunto e
domina as mais variadas linguagens de programação em diversos ambientes.
Entre 1999 e 2000, obteve as certificações de MCSE (Microsoft Certified
Systems Engineer), MCSD (Microsoft Certified Solution Developer), MCDBA
(Microsoft Certified Consultant), MCT (Microsoft Certified Trainer), OCP
(Oracle Certified Professional) e Borland Delphi Certified Consultant.
Atualmente, trabalha como Consultor de Desenvolvimento Corporativo em
Ambiente Cliente/Servidor e Distribuído sobre uma base de dados de 1,5 bilhão
de registros (aproximadamente 2 terabytes) para o Governo do Estado de Nova
York, nos Estados Unidos.
Seu hobby preferido é música, é multiinstrumentista de cordas e freqüentemente publica artigos sobre o assunto na Internet. Isso, claro, quando seus dois
filhos, Thales e Alice, e sua esposa Flávia assim o permitem!
Seu Web site é http://www.eugenio.com.br.
X
Sumário
Prefácio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIII
PARTE I
Fundamentos de C# .Net
1 A plataforma .NET . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 A linguagem C# . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
As características do C# . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3 Programação Orientada a Objetos (OOP) em C# . . . . . . . . . 68
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4 Namespaces, Assemblies e documentação
de sistemas usando XML . . . . . . . . . . . . . . . . . . . . . . 95
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Namespaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Documentando sistemas em C# . . . . . . . . . . . . . . . . . . . . . . 112
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
5 Windows Forms . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Usando FORMS: o coração de toda aplicação Windows . . . . . . . . . . 119
Usando o componente TabControl . . . . . . . . . . . . . . . . . . . . . 131
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
XI
6 .NET Avançada . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Usando o componente FileSystemWatcher . . . . . . . . . . . . . . . . . 161
Usando a classe Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Coleções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Reflection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
PARTE II
Estudo de Caso
7 ADO.NET – Projeto e Definição de Dados . . . . . . . . . . . . 193
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Por onde começar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Conceito de Middleware . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Namespaces de ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . 197
Codificação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Escolhendo a plataforma-alvo. . . . . . . . . . . . . . . . . . . . . . . . 210
Eventos do formulário . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
8 ADO.NET – Entrada e Validação de Dados . . . . . . . . . . . . 219
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
9 Relatórios – Usando o Crystal Reports . . . . . . . . . . . . . . 302
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Geração de Relatórios . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
10 Empacotando um sistema: Gerando discos de instalação. . . . 332
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332
Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
XII
Prefácio
Decidir que linguagem usar para se construir um sistema sempre foi um dos primeiros problemas enfrentados por qualquer empresa, não importa o seu porte
nem o tipo de sistema. Normalmente a escolha da linguagem é determinada pela
plataforma, pela natureza do sistema e pela cultura da empresa. Em muitos casos,
o uso de múltiplas linguagens se torna necessário e então logo surgem os problemas de integração. A Microsoft .NET resolve este e muitos outros problemas.
A Microsoft .NET é uma plataforma para desenvolvimento de serviços Web
baseados em XML. Essa é, na verdade, uma definição muito simplista. Como
plataforma, a .NET vai muito além de serviços Web. A Microsoft .NET vai permitir desenvolver qualquer tipo de aplicação usando a linguagem de sua preferência. C#, Visual Basic.NET, C++, COBOL, Perl, Fortran, Pascal são apenas
algumas das linguagens suportadas na plataforma .NET, que não apenas permite
o uso de múltiplas linguagens, mas também a completa e perfeita integração entre componentes desenvolvidos em linguagens diferentes. Por exemplo, é possível acessar objetos desenvolvidos em C# a partir de um programa escrito em
COBOL.
Embora seja possível usar várias linguagens na plataforma .NET, C# é aquela que deve sempre ser considerada em primeiro lugar. As razões são simples: o
C# oferece o mesmo poder que o C++ e a mesma facilidade de programação
que o Visual Basic, além de ser a linguagem nativa para a nova plataforma da Microsoft. Até pouco tempo atrás, eu usava o C++ para programas de baixo nível
(usando sockets e threads, por exemplo); o Visual Basic era usado para criar janelas e acessar bancos de dados. Hoje, tudo isso pode ser feito usando apenas uma
linguagem – o C#.
O C# oferece poder, facilidade, flexibilidade e é a linguagem nativa para a
plataforma .NET. O C# resolve o abismo entre as linguagens de “baixo nível” e
“alto nível”. O C# é a linguagem que vai garantir seu sucesso na revolução que a
Microsoft vem prometendo. Este livro vai apresentar o leitor tanto à plataforma
.NET quanto à linguagem C#.
Foi com grande prazer que aceitei o convite dos autores para escrever este
prefácio. Conheci Edwin na Paraíba, quando éramos ainda estudantes da UFPB.
Não acredito que já faz tanto tempo! Trabalhamos juntos no nosso primeiro sistema comercial, um home banking, um dos primeiros do Brasil. Alguns anos de- XIII
pois, conhecemos Eugênio, o senhor dos certificados, então consultor de uma
grande empresa de telecomunicações, na qual tivemos a oportunidade de trabalhar num sistema desafiador que durou cerca de dois anos e envolveu uma equipe
de aproximadamente 15 pessoas. Nesse meio tempo, também pudemos jogar
muitas partidas de xadrez, congregar as famílias e contar muitas piadas durante
os cafezinhos.
José Edvaldo Saraiva
Software Design Engineer
* José Edvaldo Saraiva foi desenvolvedor e consultor de sistemas distribuídos em empresas de telecomunicação pelo Brasil afora. Hoje trabalha em Redmond, Estados Unidos, como Software DeXIV sign Engineer para uma das maiores empresas do mundo.
PARTE
I
Fundamentos de C# .Net