• Nenhum resultado encontrado

Dominando o Visual Studio.NET com C#

N/A
N/A
Protected

Academic year: 2021

Share "Dominando o Visual Studio.NET com C#"

Copied!
11
0
0

Texto

(1)

Fábio Camara

Books

Books

Books

Books

Books

Visual

Visual

Visual

Visual

Visual

Dominando o Visual

Studio .NET com C#

(2)

Sumário

Prefácio... XIII

1 Introdução ... 1

1.1 Quem Deve Ler este Livro? ... 1

1.2 Visão Geral do Conteúdo ... 1

1.3 Código de Exemplo ... 2

2 Começando... ... 3

2.1 Versões 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 Comparação entre as Versões ... 6

2.3 Visual Studio .NET – A Ferramenta IDE ... 10

2.4 Requerimentos para a Plataforma .NET ... 11

2.5 NET Framework - Redistribuição ... 11

3 Tendo a Programação como Profissão ... 13

3.1 Lógica de Programação ...15

3.1.1 Seqüência Lógica e Instruções ... 15

3.1.2 Algoritmo ...16

3.2 Programação 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 Comentários ... 33

(3)

4.6.3 Abrindo/Fechando Blocos de Código ... 33

4.6.4 Linhas de Código ... 34

4.6.5 Encontrando o Final do Método ... 34

4.6.6 Informações de Parâmetro ... 34

4.7 Criando Aplicações 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 Métodos 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 Aplicação ... 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

(4)

6.4 Procedimentos e Funções ... 69

6.4.1 Métodos ... 69

6.4.2 O Assistente Add Method ...70

6.5 Compilando e Executando um Programa ... 71

6.6 Assemblies ...72

6.6.1 Código Gerenciado ...74

6.6.2 Verificações em Tempo de Compilação ... 75

6.7 Opções de Compilação ... 75

6.8 Extensões 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 Documentação de Código no .NET ... 81

6.11.1 Documentação XML ...84

6.11.2 Integração com IntelliSense. ... 84

7 Variáveis 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 não 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 Lógicos ... 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

(5)

7.10 Orientações Importantes sobre Variáveis ... 102 7.10.1 Variáveis Automáticas ... 102 7.10.2 Variáveis de Instância ... 102 7.10.3 Variáveis Estáticas ... 103 8 Modificadores ... 105 8.1 Modificadores de Parâmetros ... 105

8.2 Modificadores para Tudo ... 106

8.2.1 Modificadores de Classe ... 107

8.2.2 Modificadores de Membros ... 107

8.2.3 Modificadores de Acesso ... 108

9 Conscientizando C# ... 109

9.1 Palavras Reservadas (Keywords) ... 109

9.2 Expressões ... 110 9.2.1 Condicionais ... 110 9.3 Loops... 112 9.3.1 For ... 113 9.3.2 Foreach / in ... 114 9.3.3 While ... 115 9.3.4 Do/while ... 115

9.4 A Infame Instrução Goto... 116

9.4.1 Uma História (muito) Breve ... 116

9.4.2 Utilizando a Instrução Goto ... 116

9.5 A Instrução Return ... 119 9.6 Operadores ... 120 9.6.1 Operadores Lógicos ... 122 9.6.2 Operadores Unários ... 122 9.6.3 Operadores Binários ... 123 9.6.4 Operadores de Atribuição ... 125 9.6.5 Precedência de Operadores ... 126

9.6.6 Uma Confusão Conhecida ... 127

10 Conversão de Valores e Arrays ... 129

10.1 Conversão do Tipo Cast ... 131

10.2 Funções de Conversão de Tipos ... 132

10.2.1 ToBoolean ... 132 10.2.2 ToByte ... 132 10.2.3 ToChar ... 132 10.2.4 ToDateTime ... 132 10.2.5 ToDecimal ... 132 10.2.6 ToDouble ... 133 10.2.7 ToInt16 ... 133 10.2.8 ToInt32 ... 133 10.2.9 ToInt64 ... 133 10.2.10 ToSingle ... 133

(6)

10.2.11 ToString ... 133

10.2.12 ToUInt16 ... 133

10.2.13 ToUInt32 ... 133

10.2.14 ToUInt64 ... 133

10.3 Arrays ... 134

10.3.1 Atribuindo Valores aos Arrays ... 134

10.3.2 Arrays Multidimensionais ... 134

10.3.3 Todos os Arrays são Derivados de System.Array ... 135

10.3.4 Redimensionando um Array ... 138 11 Funções Predefinidas ... 139 11.1 Funções Matemáticas ... 139 11.1.1 Abs ... 139 11.1.2 Acos ... 139 11.1.3 Asin ... 139 11.1.4 Atan ... 140 11.1.5 Atan2 ... 140 11.1.6 Ceiling ... 140 11.1.7 Cos ... 140 11.1.8 Cosh ... 140 11.1.9 Exp ... 140 11.1.10 Floor ... 140 11.1.11 IEEERemainder ... 140 11.1.12 Log ... 140 11.1.13 Log10 ... 140 11.1.14 Max ... 141 11.1.15 Min ... 141 11.1.16 Pow ... 141 11.1.17 Round ... 141 11.1.18 Sign ... 141 11.1.19 Sin ... 141 11.1.20 Sinh ... 141 11.1.21 Sqrt ... 141 11.1.22 Tan ... 141 11.1.23 Tanh ... 141

11.2 Utilizando Algumas Funções Matemáticas ... 142

11.2.1 Desenhando Formulário ... 142

11.2.2 Criando Funcionalidades ao Programa ... 143

11.3 Criando um Jogo de Lógica ... 143

11.4 Função para Obter Informações de Arquivos ... 148

11.4.1 Exercício Utilizando essa Função ... 150

11.4.1.1 Desenhando o Formulário ... 150

11.5 Função para Obter Informações de Rede ... 153

11.5.1 Exercício Utilizando essas Funções para Rede ... 154

(7)

12 Desvendando Aplicações WinForms ... 157

12.1 Um Exemplo MDI ... 158

12.2 O Projeto SDI ... 161

12.2.1 O Primeiro Passo: Os Forms ... 161

12.2.2 Passando Valores entre os Forms ... 163

12.3 Propriedades de um Form ... 169

12.4 Adicionando Componentes ... 170

12.5 Eventos e Delegações ... 171

12.5.1 Por que Precisamos de Delegates ... 177

12.6 Técnicas de Redimensionamento de Forms ... 178

13 Programação Orientada a Objetos (POO) ... 185

13.1 Objetos ... 186

13.2 Construtores ... 187

13.3 Destrutores ... 187

13.4 Propriedades ... 188

13.5 Herança e Inherit Forms ... 189

13.5.1 Herdando Componentes Visuais ... 190

13.5.2 Sobreposição de Métodos ... 191

13.5.3 Sobrecarga de Métodos ... 193

13.5.4 O Projeto do Form Base ... 194

13.5.5 O Form Filho ... 196

13.5.6 Códigos entre Pai e Filho ... 197

13.6 Polimorfismo ... 201

13.7 Interface ... 203

13.8 Por que é Importante Usar POO? ... 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 ... 215 15.1.1 Create ... 216 15.1.2 CreateText ... 216 15.1.3 AppendText ... 216 15.1.4 Exists ... 216 15.1.5 Copy ... 217 15.1.6 Move ... 217 15.1.7 Open ... 217 15.1.8 OpenRead ... 218 15.1.9 OpenText ... 218 15.1.10 OpenWrite ... 218 15.1.11 GetAttributes ... 218 15.1.12 SetAttributes ... 219

(8)

15.2 A Classe FileInfo ... 219 15.3 A Classe Directory ... 219 15.3.1 CreateDirectory ... 220 15.3.2 Delete ... 220 15.3.3 Exists ... 220 15.3.4 GetDirectories ... 220 15.3.5 GetFiles ... 221 15.3.6 GetLogicalDrives ... 221 15.3.7 GetParent ... 221 15.3.8 Move ... 222 15.3.9 GetCurrentDirectory ... 222 15.3.10 SetCurrentDirectory ... 222 15.4 A Classe DirectoryInfo ... 222 15.5 A Classe Stream ... 222 15.5.1 Close ... 223 15.5.2 Flush ... 223 15.5.3 Read ... 223 15.5.4 ReadByte ... 224 15.5.5 Write ... 224 15.5.6 WriteByte ... 224

15.6 The FileStream Class ... 224

15.6.1 BinaryReader ... 225 15.6.2 BinaryWriter ... 225 15.6.3 Directory ... 225 15.6.4 DirectoryInfo ... 225 15.6.5 File ... 225 15.6.6 FileInfo ... 226 15.6.7 StreamReader ... 226 15.6.8 StreamWriter ... 226 15.7 Aplicando o IO ... 226

15.8 Exemplo Rápido – Abrir e Salvar Streams ... 227

16 Especializando em C# ... 229

16.1 Manipulando Strings ... 229

16.1.1 Imutabilidade e a Classe StringBuilder ... 230

16.1.2 Teste de Performance: String versus StringBuilder ... 231

16.2 Estruturas ... 233

16.2.1 O que Você não Pode Fazer com Struct ... 234

16.3 Tipos Enumerados ... 234

16.4 Aplicações Assíncronas (MSMQ) ... 235

16.4.1 Por que Usar o MSMQ? ... 235

16.4.2 Motivos para se utilizar o MSMQ? ... 236

16.4.3 Cenários Típicos para Comunicação Assíncrona ... 236

16.4.4 Implementando ... 237

16.4.5 Dicas sobre o MS Message Queue ... 237

(9)

17 Tratando Exceções ... 243

17.1 Classes de Exceções mais Comuns ... 244

17.2 O Comando Throw ... 245

17.3 Liberando Recursos ... 246

17.3.1 Tipos de Tratamentos de Exceções Suportadas em C# ... 247

17.3.2 Try / Catch / Finally ... 247

17.4 A Classe Exception ... 248 17.5 O Componente ErrorProvider ... 249 18 XML – A Base do .NET ... 251 18.1 Introdução ... 251 18.1.1 Objetivos do Desenvolvimento da XML ... 251 18.2 O Documento XML ... 252

18.3 Uma Agenda – WinForms e XML ... 252

18.4 Classes XML mais Usadas ... 256

19 Trabalhando com Bases de Dados ... 259

19.1 Classes do ADO .NET ... 259

19.1.1 Data Classes ... 259 19.1.2 Managed Providers ... 259 19.1.3 Um Exemplo Prático ... 260 19.1.4 Explicando e Excluindo ... 265 19.2 DataSet ... 267 19.2.1 DataSet Tipado ... 267 19.3 Validações do XSD ... 273 19.3.1 Master-Detail ... 273 19.4 Um Exemplo DataEntry ... 278

19.5 Controlando o Estado do Formulário ... 282

19.5.1 Validações, Formatações e Exceções ... 284

19.6 Realizando Buscas ... 287

19.7 Advanced DataBindings ... 289

19.8 Conectando um Banco MS-Access ... 292

19.8.1 Entendendo Dynamic Properties ... 295

19.9 Classes Data ... 297 19.9.1 System.Data ... 298 19.9.2 System.Data.Common ... 298 19.9.3 System.Data.OleDb ... 298 19.9.4 System.Data.SqlClient ... 299 19.9.5 System.SqlTypes ... 299 20 Aplicações Multiidiomas ... 301

20.1 Adicionando ao Projeto um Arquivo de Resources Padrão ... 301

20.2 Compilando o Arquivo de Resources Padrão ... 303

20.3 Criando Arquivos de Resources Dependentes da Cultura ... 304

20.4 Satellite Assemblies ... 305

(10)

20.5 Uma Aplicação Completa ... 306

21 Smart Devices ... 313

21.1 Pocket PC ... 313

21.2 SmartPhones ... 317

Apêndice A ... 329

O Frameworks Class Library (FCL) ... 329

System ... 329 System.CodeDom ... 330 System.CodeDom.Compiler ... 330 System.Collections ... 330 System.Collections.Specialized ... 330 System.ComponentModel ... 330 System.Configuration ... 330 System.Data ... 330 System.EnterpriseServices ... 331 System.Globalization ... 331 System.IO ... 331 System.Messaging ... 331 System.Net ... 331 System.Reflection ... 331 System.Resources ... 331 System.Runtime.CompilerServices ... 332 System.Runtime.InteropServices ... 332 System.Runtime.Remoting ... 332 System.Runtime.Activation ... 332 System.Runtime.Contexts ... 332 System.Runtime.Lifetime ... 332 System.Security ... 332 System.Security.Cryptography ... 333 System.Security.Cryptography.Xml... 333 System.Threading ... 333 System.Timers ... 333 System.Web ... 333 System.Web.Caching ... 333 System.Web.Configuration ... 334 System.Web.Hosting ... 334 System.Web.Mail ... 334 System.Web.Security ... 334 System.Web.Services ... 334 System.Web.SessionState ... 334 System.Web.UI ... 335 System.Web.UI.HTMLControls ... 335 System.Web.UI.WebControls ... 335 System.Windows.Forms ... 335 System.XML ... 335

(11)

Apêndice B ... 337

Garbage Collection ... 337

Funcionamento do Gerenciamento de Objetos COM ... 339

Nos Bastidores do Garbage Collector ... 339

Trabalhando em Parceria com o Garbage Collector ... 340

Considerações Finais ... 340 Apêndice C ... 341 O SQL ... 341 Comandos SQL-DML ... 342 Pesquisa (SELECT) ... 342 GROUP BY ... 343 Cláusula HAVING ... 344 Cláusula ORDER BY ... 344

Inserindo (INSERT INTO) ... 344

UPDATE ... 345

Exclusão (DELETE) ... 346

Subconsultas SQL ... 347

Apêndice D ... 351

Exercícios ... 351

Primeiro Problema: Palavras Proibidas ... 351

Segundo Problema: Movendo o Form ... 353

Terceiro Problema: A Calculadora ... 354

Quarto Problema: Chamando uma Função VB .NET em C# ... 355

Quinto Problema: Adicionando uma Nova Característica a um Objeto ... 356

Sexto Problema: Como Copiar e Colar Textos e Imagens com o C#... 359

Sétimo Problema: Trabalhando com Operações de Datas ... 363

Oitavo Problema: Construindo um Visualizador de Imagens ... 370

Nono Problema: Escrevendo um Editor de Texto Simples ... 373

Último Problema: A “Saideira” ... 383

Apêndice E ... 387

Nomes para Componentes (Notação Húngara) ... 387

Windows Forms ... 387 Data ... 389 Bibliografia ... 389 Apêndice F ... 391 Operadores ... 391 Apêndice G ... 393 Caracteres ASCII ... 393

Referências

Documentos relacionados

Normas preliminares para a seleção de textos ou modelos textuais, ou de autores e estilos, podem, segundo questões ideológicas ou que dizem respeito à relação entre

Durante o período foram adoptadas um conjunto de normas contabilísticas, interpretações, emendas e revisões emitidas em exercícios anteriores e cuja aplicação se tornou

Reconhecimento de face utilizando banco de imagens monocromáticas e coloridas através dos métodos da análise do componente principal (PCA) e da Rede Neural Artificial (RNA)

O desenvolvimento das interações entre os próprios alunos e entre estes e as professoras, juntamente com o reconhecimento da singularidade dos conhecimentos

Este estudo vem ao encontro dessa temática paleoambiental e tem como principal objetivo apresentar o registro da Floresta Ombrófila Mista na região sudoeste e sul

ObjetivOs da Unidade de aprendizagem Conceituar poder, nas organizações (poder e controle; fontes de poder, o processo político); Compreender a importância da

Observe que, se o Cliente ou o cessionário do Cliente transportar o Produto com suporte para uma localização geográfica onde este Serviço não esteja disponível (ou não

Em 2016, Ano Rússia na programação, a Orquestra Sinfónica do Porto Casa da Música apresenta a Integral dos Concertos de Rachmaninoff na interpretação da mais jovem geração