Вы находитесь на странице: 1из 11

Fbio Camara

Dominando o Visual
Studio .NET com C#
2a Edio Atualizada e Ampliada

Visual

Books

Sumrio
Prefcio.................................................................... XIII
1 Introduo ................................................................. 1
1.1 Quem Deve Ler este Livro? ..................................................... 1
1.2 Viso Geral do Contedo ........................................................ 1
1.3 Cdigo de Exemplo ............................................................... 2

2 Comeando... ............................................................ 3
2.1 Verses do Visual Studio .NET .................................................. 5
2.1.1 Visual Studio .NET Professional .............................................. 5
2.1.2 Visual Studio .NET Enterprise Developer ................................... 5
2.1.3 Visual Studio .NET Enterprise Architect .................................... 5
2.2 Comparao entre as Verses .................................................. 6
2.3 Visual Studio .NET A Ferramenta IDE ....................................... 10
2.4 Requerimentos para a Plataforma .NET ...................................... 11
2.5 NET Framework - Redistribuio .............................................. 11

3 Tendo a Programao como Profisso ............................. 13


3.1 Lgica de Programao ......................................................... 15
3.1.1 Seqncia Lgica e Instrues .............................................. 15
3.1.2 Algoritmo ....................................................................... 16
3.2 Programao para Windows ................................................... 17
3.2.1 Interface Windows ............................................................ 18
3.3 Dica para Aprender Novas Linguagens ....................................... 19

4 Conhecendo o Visual Studio .NET.................................. 21


4.1 Gerenciando o Ambiente de Desenvolvimento .............................. 21
4.2 Conhecendo as Janelas do Ambiente de Desenvolvimento ................ 24
4.2.1 Janela Solution Explorer ..................................................... 24
4.2.2 Janela ToolBox ................................................................. 25
4.2.3 Janela Properties ............................................................. 26
4.2.4 Janela OutPut ................................................................. 27
4.2.5 Janela Object Browser ....................................................... 27
4.2.6 Janela Class View ............................................................. 28
4.2.7 Janela Web Browser .......................................................... 29
4.2.8 Janela Favorites .............................................................. 30
4.2.9 Janela Server Explorer ....................................................... 30
4.3 Macro Explorer ................................................................... 31
4.4 Task List .......................................................................... 31
4.5 Command Window .............................................................. 32
4.6 Atalhos da IDE ................................................................... 32
4.6.1 Comentrios ................................................................... 33
4.6.2 Atalho para Tarefas ........................................................... 33

4.6.3 Abrindo/Fechando Blocos de Cdigo ....................................... 33


4.6.4 Linhas de Cdigo ............................................................. 34
4.6.5 Encontrando o Final do Mtodo ............................................. 34
4.6.6 Informaes de Parmetro .................................................. 34
4.7 Criando Aplicaes Baseadas em Templates ................................. 35
4.8 Ocultamento do Texto .......................................................... 36
4.9 IntelliSense ....................................................................... 37
4.10 Obtendo Ajuda ................................................................. 38
4.11 Personalizando o Text Editor ................................................. 39

5 Trabalhando com o Visual Studio .NET ............................ 43


5.1 O Primeiro Contato ............................................................. 43
5.2 Declarando as Propriedades .................................................... 46
5.2.1 Identificadores ................................................................ 47
5.3 Conhecendo as Propriedades mais Comuns .................................. 47
5.3.1 Name ........................................................................... 47
5.3.2 Text ............................................................................. 48
5.3.3 Location X e Y .............................................................. 48
5.3.4 Size Height e Width ....................................................... 48
5.3.5 Font ............................................................................. 48
5.3.6 BackColor ...................................................................... 49
5.3.7 TabIndex ....................................................................... 49
5.4 Desvendando Eventos .......................................................... 49
5.4.1 Click ............................................................................ 50
5.4.2 KeyPress ........................................................................ 50
5.4.3 Enter ............................................................................ 50
5.4.4 Leave ........................................................................... 51
5.4.5 Resize .......................................................................... 51
5.4.6 TextChanged ................................................................... 51
5.5 Mtodos Simples ................................................................ 51
5.5.1 Show( ) ......................................................................... 51
5.5.2 Close( ) ......................................................................... 51
5.5.3 Refresh( ) ...................................................................... 51
5.5.4 Dispose( ) ...................................................................... 52
5.5.5 Hide( ) .......................................................................... 52
5.6 Melhorando nosso Primeiro Contato .......................................... 52
5.7 Debugando uma Aplicao ..................................................... 53
5.8 Um Giro pelos Componentes ................................................... 55

6 Anatomia de Nosso Projeto C# ...................................... 61


6.1 Alternativas Gratuitas .......................................................... 62
6.1.1 Sharp Develop ................................................................. 63
6.1.2 WebMatrix ..................................................................... 64
6.2 Namespaces ...................................................................... 65
6.3 Class .............................................................................. 67
6.3.1 O Assistente Add Class ....................................................... 68

6.4 Procedimentos e Funes ...................................................... 69


6.4.1 Mtodos ........................................................................ 69
6.4.2 O Assistente Add Method .................................................... 70
6.5 Compilando e Executando um Programa ..................................... 71
6.6 Assemblies ....................................................................... 72
6.6.1 Cdigo Gerenciado ........................................................... 74
6.6.2 Verificaes em Tempo de Compilao .................................... 75
6.7 Opes de Compilao .......................................................... 75
6.8 Extenses de Arquivos no Visual Studio .NET ............................... 76
6.8.1 Arquivos .SLN ................................................................. 76
6.8.2 Arquivos .CSPROJ ............................................................. 77
6.8.3 Arquivos .CSPROJ.USER ..................................................... 77
6.8.4 Arquivos ASPX ................................................................. 77
6.8.5 Arquivos ASMX ................................................................. 77
6.8.6 Arquivos CS .................................................................... 77
6.9 Explorando o ILDASM ........................................................... 78
6.10 .NET Remoting ................................................................. 80
6.11 Documentao de Cdigo no .NET ........................................... 81
6.11.1 Documentao XML ......................................................... 84
6.11.2 Integrao com IntelliSense. .............................................. 84

7 Variveis na Linguagem C# .......................................... 89


7.1 Tipos .............................................................................. 89
7.1.1 Tudo Objeto ................................................................. 90
7.2 Inteiros Assinados ............................................................... 91
7.2.1 Tipo Short ...................................................................... 92
7.2.2 Tipo Int ......................................................................... 92
7.2.3 Tipo long ....................................................................... 92
7.3 Inteiros no Assinados .......................................................... 92
7.3.1 Tipo byte ....................................................................... 92
7.3.2 Tipo ushort .................................................................... 93
7.3.3 Tipo uint ....................................................................... 93
7.3.4 Tipo ulong ...................................................................... 93
7.4 Tipos Lgicos .................................................................... 93
7.4.1 Tipo bool ....................................................................... 93
7.5 Tipo de Caractere ............................................................... 93
7.5.1 char ............................................................................. 93
7.6 Ponto Flutuante .................................................................. 94
7.6.1 float ............................................................................ 94
7.6.2 double .......................................................................... 94
7.6.3 decimal ......................................................................... 94
7.7 Tipos de Data e Hora ........................................................... 94
7.7.1 DateTime ....................................................................... 95
7.7.2 Regionalizando o Formato da Data ......................................... 96
7.8 Tipo String (texto) ............................................................ 100
7.9 Tipos Referncia versus Tipos Valor ........................................ 100

7.10 Orientaes Importantes sobre Variveis ................................


7.10.1 Variveis Automticas ....................................................
7.10.2 Variveis de Instncia ....................................................
7.10.3 Variveis Estticas ........................................................

102
102
102
103

8 Modificadores ........................................................ 105


8.1 Modificadores de Parmetros ................................................
8.2 Modificadores para Tudo .....................................................
8.2.1 Modificadores de Classe ...................................................
8.2.2 Modificadores de Membros ................................................
8.2.3 Modificadores de Acesso ...................................................

105
106
107
107
108

9 Conscientizando C# ................................................. 109


9.1 Palavras Reservadas (Keywords) ............................................
9.2 Expresses .....................................................................
9.2.1 Condicionais .................................................................
9.3 Loops ............................................................................
9.3.1 For ............................................................................
9.3.2 Foreach / in .................................................................
9.3.3 While .........................................................................
9.3.4 Do/while .....................................................................
9.4 A Infame Instruo Goto ......................................................
9.4.1 Uma Histria (muito) Breve ...............................................
9.4.2 Utilizando a Instruo Goto ...............................................
9.5 A Instruo Return .............................................................
9.6 Operadores .....................................................................
9.6.1 Operadores Lgicos ........................................................
9.6.2 Operadores Unrios ........................................................
9.6.3 Operadores Binrios ........................................................
9.6.4 Operadores de Atribuio ..................................................
9.6.5 Precedncia de Operadores ................................................
9.6.6 Uma Confuso Conhecida ..................................................

109
110
110
112
113
114
115
115
116
116
116
119
120
122
122
123
125
126
127

10 Converso de Valores e Arrays .................................. 129


10.1 Converso do Tipo Cast .....................................................
10.2 Funes de Converso de Tipos ...........................................
10.2.1 ToBoolean ...................................................................
10.2.2 ToByte .......................................................................
10.2.3 ToChar ......................................................................
10.2.4 ToDateTime ................................................................
10.2.5 ToDecimal ..................................................................
10.2.6 ToDouble ....................................................................
10.2.7 ToInt16 ......................................................................
10.2.8 ToInt32 ......................................................................
10.2.9 ToInt64 ......................................................................
10.2.10 ToSingle ...................................................................

131
132
132
132
132
132
132
133
133
133
133
133

10.2.11 ToString ...................................................................


10.2.12 ToUInt16 ...................................................................
10.2.13 ToUInt32 ...................................................................
10.2.14 ToUInt64 ...................................................................
10.3 Arrays ..........................................................................
10.3.1 Atribuindo Valores aos Arrays ............................................
10.3.2 Arrays Multidimensionais .................................................
10.3.3 Todos os Arrays so Derivados de System.Array ......................
10.3.4 Redimensionando um Array ..............................................

133
133
133
133
134
134
134
135
138

11 Funes Predefinidas ............................................. 139


11.1 Funes Matemticas .......................................................
11.1.1 Abs ..........................................................................
11.1.2 Acos .........................................................................
11.1.3 Asin ..........................................................................
11.1.4 Atan .........................................................................
11.1.5 Atan2 ........................................................................
11.1.6 Ceiling ......................................................................
11.1.7 Cos ..........................................................................
11.1.8 Cosh .........................................................................
11.1.9 Exp ..........................................................................
11.1.10 Floor .......................................................................
11.1.11 IEEERemainder ...........................................................
11.1.12 Log .........................................................................
11.1.13 Log10 ......................................................................
11.1.14 Max ........................................................................
11.1.15 Min .........................................................................
11.1.16 Pow .........................................................................
11.1.17 Round ......................................................................
11.1.18 Sign ........................................................................
11.1.19 Sin .........................................................................
11.1.20 Sinh ........................................................................
11.1.21 Sqrt ........................................................................
11.1.22 Tan .........................................................................
11.1.23 Tanh ........................................................................
11.2 Utilizando Algumas Funes Matemticas ................................
11.2.1 Desenhando Formulrio ..................................................
11.2.2 Criando Funcionalidades ao Programa ..................................
11.3 Criando um Jogo de Lgica .................................................
11.4 Funo para Obter Informaes de Arquivos ............................
11.4.1 Exerccio Utilizando essa Funo ........................................
11.4.1.1 Desenhando o Formulrio ..............................................
11.5 Funo para Obter Informaes de Rede .................................
11.5.1 Exerccio Utilizando essas Funes para Rede ........................
11.5.1.1 Desenhando o Formulrio ..............................................

139
139
139
139
140
140
140
140
140
140
140
140
140
140
141
141
141
141
141
141
141
141
141
141
142
142
143
143
148
150
150
153
154
154

12 Desvendando Aplicaes WinForms ............................ 157


12.1 Um Exemplo MDI .............................................................
12.2 O Projeto SDI .................................................................
12.2.1 O Primeiro Passo: Os Forms .............................................
12.2.2 Passando Valores entre os Forms ........................................
12.3 Propriedades de um Form ..................................................
12.4 Adicionando Componentes ..................................................
12.5 Eventos e Delegaes .......................................................
12.5.1 Por que Precisamos de Delegates .......................................
12.6 Tcnicas de Redimensionamento de Forms ..............................

158
161
161
163
169
170
171
177
178

13 Programao Orientada a Objetos (POO) .................... 185


13.1 Objetos ........................................................................
13.2 Construtores ..................................................................
13.3 Destrutores ...................................................................
13.4 Propriedades ..................................................................
13.5 Herana e Inherit Forms ....................................................
13.5.1 Herdando Componentes Visuais .........................................
13.5.2 Sobreposio de Mtodos ................................................
13.5.3 Sobrecarga de Mtodos ...................................................
13.5.4 O Projeto do Form Base ..................................................
13.5.5 O Form Filho ...............................................................
13.5.6 Cdigos entre Pai e Filho .................................................
13.6 Polimorfismo .................................................................
13.7 Interface ......................................................................
13.8 Por que Importante Usar POO? ...........................................

186
187
187
188
189
190
191
193
194
196
197
201
203
203

14 Criando Componentes ............................................. 205


14.1 Meu Primeiro Componente ................................................. 205
14.2 Evoluindo o Componente ................................................... 207
14 .3 Adicionando Propriedades ao Componente .............................. 212

15 Input e Output de Arquivos ..................................... 215


15.1 O Namespace System.IO ....................................................
15.1.1 Create .......................................................................
15.1.2 CreateText .................................................................
15.1.3 AppendText .................................................................
15.1.4 Exists .......................................................................
15.1.5 Copy .........................................................................
15.1.6 Move ........................................................................
15.1.7 Open ........................................................................
15.1.8 OpenRead ...................................................................
15.1.9 OpenText ...................................................................
15.1.10 OpenWrite ................................................................
15.1.11 GetAttributes .............................................................
15.1.12 SetAttributes .............................................................

215
216
216
216
216
217
217
217
218
218
218
218
219

15.2 A Classe FileInfo ..............................................................


15.3 A Classe Directory ............................................................
15.3.1 CreateDirectory ............................................................
15.3.2 Delete .......................................................................
15.3.3 Exists .......................................................................
15.3.4 GetDirectories .............................................................
15.3.5 GetFiles .....................................................................
15.3.6 GetLogicalDrives ..........................................................
15.3.7 GetParent ...................................................................
15.3.8 Move ........................................................................
15.3.9 GetCurrentDirectory ......................................................
15.3.10 SetCurrentDirectory .....................................................
15.4 A Classe DirectoryInfo .......................................................
15.5 A Classe Stream ..............................................................
15.5.1 Close ........................................................................
15.5.2 Flush ........................................................................
15.5.3 Read .........................................................................
15.5.4 ReadByte ....................................................................
15.5.5 Write ........................................................................
15.5.6 WriteByte ...................................................................
15.6 The FileStream Class ........................................................
15.6.1 BinaryReader ...............................................................
15.6.2 BinaryWriter ................................................................
15.6.3 Directory ....................................................................
15.6.4 DirectoryInfo ...............................................................
15.6.5 File ..........................................................................
15.6.6 FileInfo ......................................................................
15.6.7 StreamReader ..............................................................
15.6.8 StreamWriter ..............................................................
15.7 Aplicando o IO ................................................................
15.8 Exemplo Rpido Abrir e Salvar Streams ................................

219
219
220
220
220
220
221
221
221
222
222
222
222
222
223
223
223
224
224
224
224
225
225
225
225
225
226
226
226
226
227

16 Especializando em C# ............................................. 229


16.1 Manipulando Strings .........................................................
16.1.1 Imutabilidade e a Classe StringBuilder .................................
16.1.2 Teste de Performance: String versus StringBuilder ...................
16.2 Estruturas .....................................................................
16.2.1 O que Voc no Pode Fazer com Struct .................................
16.3 Tipos Enumerados ...........................................................
16.4 Aplicaes Assncronas (MSMQ) ............................................
16.4.1 Por que Usar o MSMQ? ....................................................
16.4.2 Motivos para se utilizar o MSMQ? .......................................
16.4.3 Cenrios Tpicos para Comunicao Assncrona ......................
16.4.4 Implementando ............................................................
16.4.5 Dicas sobre o MS Message Queue .......................................
16.5 Encriptao e Decriptao com o C# ......................................

229
230
231
233
234
234
235
235
236
236
237
237
238

17 Tratando Excees ................................................. 243


17.1 Classes de Excees mais Comuns ........................................
17.2 O Comando Throw ...........................................................
17.3 Liberando Recursos ..........................................................
17.3.1 Tipos de Tratamentos de Excees Suportadas em C# ..............
17.3.2 Try / Catch / Finally ......................................................
17.4 A Classe Exception ...........................................................
17.5 O Componente ErrorProvider ...............................................

244
245
246
247
247
248
249

18 XML A Base do .NET ............................................. 251


18.1 Introduo ....................................................................
18.1.1 Objetivos do Desenvolvimento da XML ................................
18.2 O Documento XML ...........................................................
18.3 Uma Agenda WinForms e XML ...........................................
18.4 Classes XML mais Usadas ...................................................

251
251
252
252
256

19 Trabalhando com Bases de Dados .............................. 259


19.1 Classes do ADO .NET ........................................................
19.1.1 Data Classes ...............................................................
19.1.2 Managed Providers ........................................................
19.1.3 Um Exemplo Prtico .......................................................
19.1.4 Explicando e Excluindo ...................................................
19.2 DataSet ........................................................................
19.2.1 DataSet Tipado ............................................................
19.3 Validaes do XSD ............................................................
19.3.1 Master-Detail ..............................................................
19.4 Um Exemplo DataEntry ......................................................
19.5 Controlando o Estado do Formulrio ......................................
19.5.1 Validaes, Formataes e Excees ...................................
19.6 Realizando Buscas ...........................................................
19.7 Advanced DataBindings .....................................................
19.8 Conectando um Banco MS-Access .........................................
19.8.1 Entendendo Dynamic Properties .........................................
19.9 Classes Data ..................................................................
19.9.1 System.Data ...............................................................
19.9.2 System.Data.Common ....................................................
19.9.3 System.Data.OleDb .......................................................
19.9.4 System.Data.SqlClient ....................................................
19.9.5 System.SqlTypes ...........................................................

259
259
259
260
265
267
267
273
273
278
282
284
287
289
292
295
297
298
298
298
299
299

20 Aplicaes Multiidiomas .......................................... 301


20.1 Adicionando ao Projeto um Arquivo de Resources Padro ..............
20.2 Compilando o Arquivo de Resources Padro ..............................
20.3 Criando Arquivos de Resources Dependentes da Cultura ...............
20.4 Satellite Assemblies .........................................................
20.4.1 Trabalhando com Satellite Assemblies ..................................

301
303
304
305
306

20.5 Uma Aplicao Completa .................................................... 306

21 Smart Devices ...................................................... 313


21.1 Pocket PC ..................................................................... 313
21.2 SmartPhones .................................................................. 317

Apndice A .............................................................. 329


O Frameworks Class Library (FCL) ..............................................
System ...............................................................................
System.CodeDom ..................................................................
System.CodeDom.Compiler .......................................................
System.Collections .................................................................
System.Collections.Specialized ..................................................
System.ComponentModel .........................................................
System.Configuration .............................................................
System.Data ........................................................................
System.EnterpriseServices .......................................................
System.Globalization ..............................................................
System.IO ...........................................................................
System.Messaging .................................................................
System.Net .........................................................................
System.Reflection ..................................................................
System.Resources ..................................................................
System.Runtime.CompilerServices ..............................................
System.Runtime.InteropServices ................................................
System.Runtime.Remoting .......................................................
System.Runtime.Activation ......................................................
System.Runtime.Contexts ........................................................
System.Runtime.Lifetime ........................................................
System.Security ....................................................................
System.Security.Cryptography ...................................................
System.Security.Cryptography.Xml ...............................................
System.Threading .................................................................
System.Timers .....................................................................
System.Web ........................................................................
System.Web.Caching ..............................................................
System.Web.Configuration .......................................................
System.Web.Hosting ..............................................................
System.Web.Mail ..................................................................
System.Web.Security ..............................................................
System.Web.Services .............................................................
System.Web.SessionState ........................................................
System.Web.UI .....................................................................
System.Web.UI.HTMLControls ...................................................
System.Web.UI.WebControls .....................................................
System.Windows.Forms ..........................................................
System.XML .........................................................................

329
329
330
330
330
330
330
330
330
331
331
331
331
331
331
331
332
332
332
332
332
332
332
333
333
333
333
333
333
334
334
334
334
334
334
335
335
335
335
335

Apndice B .............................................................. 337


Garbage Collection .................................................................
Funcionamento do Gerenciamento de Objetos COM ..........................
Nos Bastidores do Garbage Collector ............................................
Trabalhando em Parceria com o Garbage Collector ...........................
Consideraes Finais ..............................................................

337
339
339
340
340

Apndice C .............................................................. 341


O SQL ................................................................................
Comandos SQL-DML ...............................................................
Pesquisa (SELECT) .................................................................
GROUP BY ...........................................................................
Clusula HAVING ...................................................................
Clusula ORDER BY .................................................................
Inserindo (INSERT INTO) ..........................................................
UPDATE ..............................................................................
Excluso (DELETE) .................................................................
Subconsultas SQL ..................................................................

341
342
342
343
344
344
344
345
346
347

Apndice D .............................................................. 351


Exerccios ...........................................................................
Primeiro Problema: Palavras Proibidas ..........................................
Segundo Problema: Movendo o Form ............................................
Terceiro Problema: A Calculadora ................................................
Quarto Problema: Chamando uma Funo VB .NET em C# ...................
Quinto Problema: Adicionando uma Nova Caracterstica a um Objeto .....
Sexto Problema: Como Copiar e Colar Textos e Imagens com o C# .........
Stimo Problema: Trabalhando com Operaes de Datas ....................
Oitavo Problema: Construindo um Visualizador de Imagens .................
Nono Problema: Escrevendo um Editor de Texto Simples ....................
ltimo Problema: A Saideira ...................................................

351
351
353
354
355
356
359
363
370
373
383

Apndice E .............................................................. 387


Nomes para Componentes (Notao Hngara) .................................
Windows Forms ....................................................................
Data ..................................................................................
Bibliografia .........................................................................

387
387
389
389

Apndice F .............................................................. 391


Operadores ......................................................................... 391

Apndice G .............................................................. 393


Caracteres ASCII ................................................................... 393

Вам также может понравиться