• Nenhum resultado encontrado

Apostila Visual C# (Consolidada)_pt-Br

N/A
N/A
Protected

Academic year: 2021

Share "Apostila Visual C# (Consolidada)_pt-Br"

Copied!
1238
0
0

Texto

(1)

Nível I - Iniciante

Autor: Elzevir Jr.

Janeiro, 2007

(2)

ÍNDICE

VISUAL C#...16

GUIA DE INTRODUÇÃO AO VISUAL C#...17

GUIA DA DOCUMENTAÇÃO DO VISUAL C#...17

INTRODUÇÃO À LINGUAGEM C# E AO .NETFRAMEWORK...18

O QUE HÁ DE NOVO NO VISUAL C#2005...20

O QUE HÁ DE NOVO NA C#2.0 IDIOMA E COMPILER...22

ATUALIZANDO APLICATIVOS VISUAL C# PARA VISUAL STUDIO 2005...24

CRIANDO SEU PRIMEIRO APLICATIVO C# ...25

USANDO STARTER KITS C#...26

RECURSOS DE AJUDA ADICIONAIS (VISUAL C#) ...26

COMO FAZER EM C# ...27

USANDO O IDE DO VISUAL C# ...29

INTRODUÇÃO À IDE(VISUAL C#)...29

CRIANDO UM PROJETO (VISUAL C#)...31

PROJETANDO UMA INTERFACE DE USUÁRIO (VISUAL C#) ...34

OINTELLISENSE...36

LISTAS DE CONCLUSÃO...37

INFORMAÇÕES RÁPIDAS...37

MEMBROS DA LISTA...37

INFORMAÇÕES DE PARÂMETRO...37

ADICIONANDO DIRETIVAS 'USING' ...38

REFATORAÇÃO...38 TRECHOS DE CÓDIGO...38 SUBLINHADO ONDULADO...38 AJUDA DE LEGIBILIDADE...39 Estrutura de tópicos ...39 COLORIZAÇÃO...39 NAVEGANDO E PROCURANDO...40 EXIBIÇÃO DE CLASSE...40 NAVEGAÇÃO CTRL+TAB...40 BARRAS DE NAVEGAÇÃO...41 LOCALIZAR EM ARQUIVOS...42

CRIANDO E DEPURANDO (VISUAL C#) ...43

MODELAGEM E ANÁLISE DE CÓDIGO (VISUAL C#)...46

ADICIONANDO E EDITANDO RECURSOS (VISUAL C#) ...49

OBTENDO AJUDA (VISUAL C#) ...51

IMPLANTANDO APLICATIVOS C#...54

RECURSOS DO CODE EDITOR DO VISUAL C#...54

Refatoração ...54

TRECHOS DE CÓDIGOS (C#)...55

CÓDIGO COLORIZATION...56

METADADOS COMO FONTE...58

CONFIGURAÇÕES DO IDEVISUAL C# ...59

ATALHOS DE TECLADO VISUAL C#...60

Teclas de atalho...60

TECLAS DE ATALHO PADRÃO CONFIGURAÇÕES DEVELOPMENT GERAIS...62

ESCREVENDO APLICATIVOS COM O VISUAL C# ...64

USANDO A BIBLIOTECA DE CLASSE DO .NETFRAMEWORK (VISUAL C#)...64

CRIANDO APLICATIVOS DO WINDOWS FORMS (VISUAL C#) ...65

CRIANDO APLICATIVOS DE CONSOLE (VISUAL C#) ...65

ACESSAR E EXIBIR DADOS (VISUAL C#)...65

(3)

CRIANDO E ACESSANDO SERVIÇOS DA WEB (VISUAL C#)...67

CRIANDO COMPONENTES (VISUAL C#)...68

DESENVOLVENDO NA PLATAFORMA DO OFFICE (VISUAL C#) ...68

Programação do Office (Como Fazer em C#)...68

Como: Atualizar soluções das Ferramentas do Visual Studio para o Office ...69

O EXCEL USANDO EXPLICAÇÕES PASSO-A-PASSO...71

COLETA DE DADOS USANDO UM FORMULÁRIO DO WINDOWS WALKTHROUGH...71

ALTERANDO PLANILHA FORMATAÇÃO USANDO CONTROLES CHECKBOX WALKTHROUGH: ...73

EXIBINDO TEXTO EM UMA CAIXA DE TEXTO EM UMA PLANILHA USANDO UM BOTÃO WALKTHROUGH: ...76

PROGRAMAÇÃO CONTRA EVENTOS DE UM CONTROLE NAMEDRANGE WALKTHROUGH:...78

PASSO-A-PASSO:CONCEDENDO E REMOVENDO PERMISSÕES PARA UMA SOLUÇÃO DO OFFICE...81

PASSO-A-PASSO:LIGANDO UMA CÉLULA DE PLANILHA A UM CAMPO DE BANCO DE DADOS...84

WALKTHROUGH: VINCULAÇÃO CÉLULAS PARA VÁRIAS COLUNAS EM UMA TABELA...87

CRIANDO UMA RELAÇÃO MESTRE / DETALHES USANDO UM DATASET EM CACHE WALKTHROUGH: ...91

WALKTHROUGH: ATUALIZANDO UM GRÁFICO EM UMA PLANILHA USANDO BOTÕES DE OPÇÃO...94

VINCULAÇÃO DE DADOS PARA CONTROLES EM UM PAINEL AÇÕES DO EXCEL WALKTHROUGH: ...99

IMPLANTANDO UM WORD OU SOLUTION DO EXCEL USANDO UM MANIFESTO DEPLOYMENT WALKTHROUGH: ...103

IMPLANTANDO UM WORD OU SOLUTION DO EXCEL USANDO UM ARQUIVO DO WINDOWS INSTALLER WALKTHROUGH: ...107

PASSO-A-PASSO:CONCEDENDO E REMOVENDO PERMISSÕES PARA UMA SOLUÇÃO DO OFFICE...112

O WORD USANDO EXPLICAÇÕES PASSO-A-PASSO ...116

WALKTHROUGH:CHANGING DOCUMENT FORMATAÇÃO USANDO CONTROLES CHECKBOX...116

EXIBINDO TEXTO EM UMA CAIXA DE TEXTO EM UM DOCUMENTO USANDO UM BOTÃO WALKTHROUGH: ...119

WALKTHROUGH:CRIANDO MENUS DE ATALHO PARA INDICADORES...121

WALKTHROUGH: ATUALIZANDO UM GRÁFICO EM UM DOCUMENTO USANDO BOTÕES DE OPÇÃO...124

VINCULAÇÃO DE DADOS PARA CONTROLES EM UM PAINEL AÇÕES DO WORD WALKTHROUGH: ...128

WALKTHROUGH: CRIAR UMA MARCA INTELIGENTE QUE CONVERTE TEMPERATURES DE FAHRENHEIT PARA CELSIUS133 IMPLANTANDO UM WORD OU SOLUTION DO EXCEL USANDO UM MANIFESTO DEPLOYMENT WALKTHROUGH: ...135

IMPLANTANDO UM WORD OU SOLUTION DO EXCEL USANDO UM ARQUIVO DO WINDOWS INSTALLER WALKTHROUGH: ...139

PASSO-A-PASSO:CONCEDENDO E REMOVENDO PERMISSÕES PARA UMA SOLUÇÃO DO OFFICE...144

COMO:ADICIONAR CONTROLES A DOCUMENTOS DO OFFICE...147

COMO:EXECUTAR CÁLCULOS DO EXCEL POR PROGRAMAÇÃO...149

COMO:CRIAR MENUS DO OFFICE PROGRAMATICAMENTE...149

COMO:CRIAR BARRAS DE FERRAMENTAS DO OFFICE POR PROGRAMAÇÃO...150

DESENVOLVIMENTO CORPORATIVO (VISUAL C#)...152

PROGRAMAÇÃO DO TABLET PC (VISUAL C#) ...152

ÁUDIO, VÍDEO, JOGOS E ELEMENTOS GRÁFICOS (VISUAL C#) ...152

CRIANDO STARTER KITS (VISUAL C#)...154

MIGRANDO PARA O VISUAL C#...155

C# PARA DESENVOLVEDORES JAVA...155

CONVERTENDO APLICATIVOS JAVA PARA VISUAL C#...155

PARA DESENVOLVEDORES C++C# ...155

GUIA DE PROGRAMAÇÃO C# ...158

EM UM PROGRAMA C# ...158

Hello world-seu primeiro programa (guia de programação C#)...159

Estrutura geral de um programa C# (guia de programação C#)...160

MAIN() E ARGUMENTOS DE LINHA DE COMANDO (GUIA DE PROGRAMAÇÃO C#) ...160

ARGUMENTOS DE LINHA DE COMANDO (GUIA DE PROGRAMAÇÃO C#)...161

COMO:EXIBIR ARGUMENTOS DE LINHA DE COMANDO (GUIA DE PROGRAMAÇÃO C#) ...162

COMO:ACESSAR ARGUMENTOS DE LINHA DE COMANDO USANDO FOREACH (GUIA DE PROGRAMAÇÃO C#)...163

MAIN() RETORNA VALORES (GUIA DE PROGRAMAÇÃO C#)...163

TIPOS DE DADOS (GUIA DE PROGRAMAÇÃO C#) ...164

(4)

MATRIZES MULTIDIMENSIONAIS (GUIA DE PROGRAMAÇÃO C#) ...166

MATRIZES PASSAGEM COMO PARÂMETROS (GUIA DE PROGRAMAÇÃO C#)...166

PASSANDO REF USANDO MATRIZES E OUT (GUIA PROGRAMAÇÃO C#) ...168

SEQÜÊNCIAS (GUIA DE PROGRAMAÇÃO C#) ...169

USANDO STRINGS (GUIA DE PROGRAMAÇÃO C#) ...169

ESPECIFICAÇÃO DA LINGUAGEM C# ...173

REFERÊNCIA C# ...174

PALAVRAS-CHAVE C#...174

PALAVRA-CHAVE ABSTRACT...174

PALAVRA-CHAVE EVENT...177

PALAVRA-CHAVE NEW...181

OPERADOR NEW ...181

MODIFICADOR NEW...184

PALAVRA-CHAVE STRUCT...186

PALAVRA-CHAVE AS...189

PALAVRA-CHAVE EXPLICIT...190

PALAVRA-CHAVE NULL...191

PALAVRA-CHAVE SWITCH...192

PALAVRA-CHAVE BASE...194

PALAVRA-CHAVE EXTERN...196

PALAVRA-CHAVE OBJECT...197

PALAVRA-CHAVE THIS...198

PALAVRA-CHAVE BOOL...200

PALAVRA-CHAVE FALSE...201

OPERADOR FALSE ...201

FALSE (LITERAL) ...201

PALAVRA-CHAVE OPERATOR...202

PALAVRA-CHAVE THROW...204

PALAVRA-CHAVE BREAK...205

PALAVRA-CHAVE TRY-FINALLY...206

PALAVRA-CHAVE OUT...207

PALAVRA-CHAVE TRUE...208

OPERADOR TRUE...208

TRUE (LITERAL) ...208

PALAVRA-CHAVE BYTE...209

PALAVRA-CHAVE FIXED...210

PALAVRA-CHAVE OVERRIDE...212

PALAVRA-CHAVE TRY-CATCH...213

PALAVRA-CHAVE SWITCH...216

PALAVRA-CHAVE FOAT...218

PALAVRA-CHAVE PARAMS...219

PALAVRA-CHAVE TYPEOF...220

PALAVRA-CHAVE TRY-CATCH...222

PALAVRA-CHAVE FOR...225

PALAVRA-CHAVE PRIVATE...226

PALAVRA-CHAVE UINT...227

PALAVRA-CHAVE CHAR...228

PALAVRA-CHAVE FOREACH, IN...228

PALAVRA-CHAVE VOLATILE...229

PALAVRA-CHAVE DELEGATE...230

PALAVRA-CHAVE OCK...232

PALAVRA-CHAVE STACKALOC...234

OPERADORES C# ...237 OPERADORES SOBRECARREGADOS...238 OPERADOR []...239 OPERADOR ()...240 OPERADOR .(PONTO) ...241 OPERADOR + ...241 OPERADOR -...242 OPERADOR * ...243

(5)

OPERADOR / ...244 OPERADOR %...245 OPERADOR & ...245 OPERADOR | ...246 OPERADOR ^ ...247 OPERADOR !...248 OPERADOR ~ ...248 OPERADOR = ...249 OPERADOR < ...250 OPERADOR > ...250 OPERADOR ?: ...251 OPERADOR ++...252 OPERADOR -- ...253 OPERADOR && ...254 DIRECTIVES PREPROCESSOR C#...256 #IF (REFERÊNCIA C#) ...256

#ELSE PESSOA (REFERÊNCIA C#) ...257

#ENDIF (REFERÊNCIA C#)...257 #DEFINIR (REFERÊNCIA C#) ...258 #UNDEF (REFERÊNCIA C#)...258 #WARNING (REFERÊNCIA C#)...258 #ERROR (REFERÊNCIA C#) ...259 #LINE (REFERÊNCIA C#)...259 #REGION (REFERÊNCIA C#)...260 #ENDREGION (REFERÊNCIA C#)...260 # PRAGMA (REFERÊNCIA C#)...260

AVISO # PRAGMA (REFERÊNCIA C#)...260

SOMA DE VERIFICAÇÃO # PRAGMA (REFERÊNCIA C#) ...261

OPÇÕES DO COMPILADOR C#...262

CRIANDO DE LINHA DE COMANDO...262

COMO CONSTRUIR A PARTIR DA LINHA DE COMANDO: ...263

IMPLANTAÇÃO DE APLICATIVOS C# ...264

OPÇÕES DO COMPILADOR C# LISTADAS POR CATEGORIA...264

Otimização...264

Arquivos de saída ...264

Conjuntos .NET Framework...264

Erros Debugging / verificação ...265

Preprocessor ...265

Recursos ...265

Diversos...265

OPÇÕES DO COMPILADOR C# LISTADAS ALFABETICAMENTE...266

COMO LOCALIZAR AJUDA PARA ERROS DO COMPILADOR: ...267

PARA ENCONTRAR AJUDA PARA UM ERRO...267

EXEMPLOS DO VISUAL C#...268

EXEMPLO WORLD DE SAUDAÇÃO...269

EXEMPLO DE PARÂMETROS DA LINHA DE COMANDO...271

EXEMPLO MATRIZES...272

EXEMPLO PROPRIEDADES...272

EXEMPLO BIBLIOTECAS...273

EXEMPLO DE VERSÃO...274

COLEÇÃO EXEMPLO CLASSES...275

EXEMPLO STRUCTS...276

EXEMPLO INDEXADORES...277

INDEXADO EXEMPLO PROPRIEDADES...278

EXEMPLO CONVERSIONS DEFINIDAS PELO USUÁRIO...279

EXEMPLO GENERICS (C#)...279

(6)

EXEMPLO DE IMPLEMENTAÇÃO DE INTERFACE EXPLÍCITA...283

EXEMPLO DOS MÉTODOS CONDICIONAL...284

EXEMPLO DE DOCUMENTAÇÃO XML...285

PLATAFORMA INVOKE EXEMPLO...286

EXEMPLO PARTE 1INTEROP COM ...287

EXEMPLO PARTE 2INTEROP COM ...288

EXEMPLO ATRIBUTOS...289

EXEMPLO DE SEGURANÇA...290

SEGMENTAÇÃO DE EXEMPLO...291

EXEMPLO DE CÓDIGO NÃO SEGUROS...292

EXEMPLO BDOLE ...293

PRODUZIR EXEMPLO...294

ANÔNIMO EXEMPLO REPRESENTANTES...295

EXEMPLO TIPOS PARCIAL...296

EXEMPLO ANULÁVEL...296

TERMINOLOGIA C# ...298

EXEMPLOS DO VISUAL C#...301

EXEMPLO WORLD DE SAUDAÇÃO...303

EXEMPLO DE PARÂMETROS DA LINHA DE COMANDO...304

EXEMPLO MATRIZES...305

EXEMPLO PROPRIEDADES...306

EXEMPLO BIBLIOTECAS...307

EXEMPLO DE VERSÃO...308

COLEÇÃO EXEMPLO CLASSES...309

EXEMPLO STRUCTS...310

EXEMPLO INDEXADORES...311

INDEXADO EXEMPLO PROPRIEDADES...311

EXEMPLO CONVERSIONS DEFINIDAS PELO USUÁRIO...312

EXEMPLO GENERICS (C#)...313

EXEMPLO OVERLOADING DO OPERADOR...314

EXEMPLO REPRESENTANTES...315

EXEMPLO EVENTOS...316

EXEMPLO DE IMPLEMENTAÇÃO DE INTERFACE EXPLÍCITA...317

EXEMPLO DOS MÉTODOS CONDICIONAL...318

EXEMPLO DE DOCUMENTAÇÃO XML...318

PLATAFORMA INVOKE EXEMPLO...319

EXEMPLO PARTE 1INTEROP COM ...320

EXEMPLO PARTE 2INTEROP COM ...322

EXEMPLO ATRIBUTOS...323

EXEMPLO DE SEGURANÇA...324

SEGMENTAÇÃO DE EXEMPLO...325

EXEMPLO DE CÓDIGO NÃO SEGUROS...326

EXEMPLO BDOLE ...327

PRODUZIR EXEMPLO...328

ANÔNIMO EXEMPLO REPRESENTANTES...328

EXEMPLO TIPOS PARCIAL...329

EXEMPLO ANULÁVEL...330

COMO FAZER EM C# ...332

LINGUAGEM C# (COMO EU FAÇO EM C#)...334

O QUE HÁ DE NOVO NA C#2.0 IDIOMA E COMPILER...340

Usando Starter Kits C# ...340

Especificação da Linguagem C# ...341

Main() e argumentos de linha de comando (Guia de programação C#)...341

Main() retorna valores (Guia de programação C#)...343

base (Referência do C#) ...343

Construtores de instância (Guia de programação C#) ...345

CLASSES GENÉRICAS NO .NETFRAMEWORK...357

Visão geral sobre Generics no .NET Framework...357

Tipos e Generics aninhadas ...358

(7)

System.Collections.ObjectModel ...359

O encadeamento representantes...361

Igualdade e classificação Comparisons ...361

Funcionalidade coleção ...361

Vantagens de Generics ...362

A palavra-chave default em código fonte "genérico" (Guia de programação C#) ...363

Métodos genérico (Guia de programação C#)...363

Restrições em parâmetros de tipo (Guia de programação C#) ...365

Representantes genéricos (Guia de programação C#)...367

Uma tabela imposto exemplo ...375

Criar um suplemento de automação para Excel usando o Visual Studio e código gerenciado ...375

Executar o suplemento do Excel...376

Executar código em outro domínio de aplicação (Guia de programação C#)...392

Exemplos do Visual C#...394

.NET FRAMEWORK (COMO FAZER EM C#)...397

INTRODUÇÃO À LINGUAGEM C# E AO .NETFRAMEWORK...408

Visão geral sobre o .NET Framework...410

Visão Geral Conceitual Sobre o .NET Framework ...410

COMMON LANGUAGE RUNTIME...416

Visão geral do Common Language Runtime ...416

Gerenciamento automático de memória...417

CTS (Common Type System) ...420

Visão Geral do CTS (Common Type System) ...420

Definições de Tipo...422

Membros de Tipos ...424

Tipos de valor no Common Type System ...426

Classes no Common Type System...427

Delegados no Common Type System...428

Matrizes em Common Type System ...430

Interfaces no Common Type System ...431

Ponteiros no Common Type System (CTS) ...431

OS METADADOS E OS COMPONENTES AUTODESCRITIVOS...433

Visão Geral Sobre Metadados...433

Estrutura e uso de metadados ...434

Metadados e Estrutura do Arquivos PE ...434

Uso de metadados em tempo de execução...435

ASSEMBLIES NO COMMON LANGUAGE RUNTIME...436

Visão Geral Sobre Assemblies...437

Benefícios do Assembly ...438

Sumário de assembly ...439

Manifesto do Assembly ...440

Cache Global de Assemblies ...442

Assemblies de Nomes Fortes ...443

Considerações sobre segurança de assemblies ...443

Versionamento de Assembly ...445

Número de Versão do Assembly ...446

Versão Informativa do Assembly ...447

Posicionamento do Assembly ...447

Assemblies e execução lado a lado...448

Visão Geral da Biblioteca de Classes do .NET Framework...448

Localizador rápido de tecnologia...451

Criando Novas Seqüências de Caracteres...458

Aparando e Removendo Caracteres ...460

Preenchendo Seqüências de Caracteres...461

Comparando Seqüências de Caracteres...462

Alterando a Caixa...466

Usando a Classe StringBuilder ...467

Acrescentar...468

Coleções e Estruturas de Dados...472

Definir coleções...472

(8)

Coleções especializados ...475

Criando e Manipulating coleções...475

Selecionando uma Classe de Coleção ...476

Enumerar uma coleção...477

Coleções e sincronização (segurança do segmento) ...478

Comparações e classifica em coleções...478

Quando Usar Coleções Genéricas ...479

Classe genérica List ...480

Considerações sobre desempenho...481

Classe genérica SortedDictionary...483

DEPURAÇÃO (COMO FAZER EM C#) ...495

Compilando no Visual Studio ...495

Compilação Durante o Desenvolvimento de Aplicativos ...495

Configurações de Compilação ...496

Compilar plataformas ...498

Compilar elementos de interface do usuário...504

Caixa de Diálogo Batch Build...504

Janela de saída ...506

Caixa de Diálogo Configuration Manager...507

Depuração no Visual Studio...508

O que há de novo no depurador Visual Studio 2005 ...508

Segurança do Depurador ...511

Segurança de Depuração Gerenciada...511

Segurança em Depuração Remota ...511

Segurança de Depuração de Serviços da Web ...512

Componentes Externos ...512

Símbolos e Código Fonte...512

Preparação e configurações de depuração ...512

Configurações do Projeto do Depurador ...513

Requisitos de software depuração SQL ...513

Configurações do projeto para um C++ depurar configuração...515

Como definir permissões SQL Server para depuração: ...518

Configurações do projeto para uma configuração de depuração no Visual Basic ...519

Arquivos PDB (C++) ...521

Arquivos DBG ...521

Instalando símbolos para sistema de depuração chamada Crashes ...522

Depuração de projetos DLL ...523

Preparação da depuração: Projetos de console ...526

Preparação de Depuração: Tipos de Projeto do Visual C++ ...526

Preparação da Depuração: Configurações de Propriedades Recomendáveis ...527

Depuração preparação: Applications formulários Windows (.NET) ...527

Projetos Win32 depuração preparação: ...528

Preparação da Depuração: Web Services XML (C++) ...529

Preparação para depuração: tipos de projeto C#, J# e Visual Basic ...529

Aplicativos da Web depuração preparação: ...529

Preparação para depuração : Aplicativos ASP.NET da Web ...530

Projetos Serviço da Web XML depuração preparação:...530

Preparação para depuração: Serviços da Web ATL Server...532

Preparação para depuração: Projetos ATL Server ...532

Instalação de depuração remota ...533

Depuração na uma plataforma de 64 bits ...539

Depuração e o processo Hosting...540

Explicação detalhada sobre o depurador...542

Depurando o código gerenciado ...542

Diagnóstico de mensagens na janela de saída ...542

Asserção no código gerenciado...543

Parar instruções no Visual Basic ...546

Depurar o método OnStart como: ...549

Depuração de código nativo...551

Como debug otimizado código: ...551

DebugBreak e __debugbreak ...553

Declarações...553

(9)

Detecção vazamento de memória e isolamento ...555

Para depurar código de montagem embutido ...556

Técnicas de depuração atl...556

Técnicas de depuração MFC...557

Técnicas de depuração CRT...558

Depuração Native FAQs do código...559

COM e depurando ActiveX...560

Depurar aplicativos da Web...562

Depuração SQL ...563

Depuração referência Interface de usuário...564

Aperfeiçoando a depuração com o atributo de exibição do depurador ...573

Descrição...575

Código ...575

Para criar o formulário do Windows para essa explicação passo a passo...579

Para anexar ao formulário do Windows para depuração...581

Banco de dados de depuração T-SQL ...590

SEGURANÇA (COMO FAZER EM C#) ...596

Segurança no Visual Studio...596

Noções Básicas sobre Segurança de Accesso a Código ...596

Práticas recomendadas de política de segurança ...597

Visão geral da administração de política de segurança ...597

Administração de diretiva de segurança geral...599

Determinando quando para modificar a diretiva de segurança...599

Ferramentas de administração...600

Aumentar permissões...601

Administração com atributos Grupo de códigos ...602

Dicas de administração ...603

Administração de diretiva corporativa...604

Administração de diretiva da máquina...604

Administração de diretiva de usuário...604

EXPLICAÇÕES PASSO-A-PASSO DO .NETFRAMEWORK SDK ...719

Como Registrar Assemblies de Interoperabilidade Primários ...784

Como Empacotar Várias Versões de Bibliotecas de Tipos ...785

APLICATIVOS DO WINDOWS (COMO FAZER EM C#) ...786

Componente Timer (Windows Forms)...797

Visão geral do componente de timer (Windows Forms)...797

Limitações do componente Timer de formulários do Windows na propriedade Interval...798

Controle toolBar Windows (formulários)...800

Visão geral sobre de controle toolBar (formulários do Windows)...800

Como adicionar botões a um controle ToolBar usando o criador:...801

PÁGINAS DA WEB E SERVIÇOS DA WEB (COMO FAZER EM C#)...806

O que há de novo no desenvolvimento para Web no Visual Studio...806

Servidor de Desenvolvimento do ASP.NET ...807

Publicação de Web Sites ...808

Extensibilidade de Controle ...811

Ligação de Dados com Controles de Fonte de Dados ...812

Controles de dados avançados ...812

Vinculação bidirecional de dados ...813

Armazenamento de seqüência de caracteres de conexão ...813

Acesso a dados em duas e três camadas ...813

Compatibilidade com Versões Anteriores para Acesso a Dados ...814

INTRODUÇÃO A PÁGINAS DA WEB DO ASP.NET...815

Postagem cruzada de páginas ...816

Preservando o estado da página ...816

Controles de servidor ...817

Compatibilidade do navegador ...818

Documentos e dados XML...818

O que há de novo no System.Xml ...818

Migrando de versão 1.1 das classes XML ...819

Arquitetura Overview of XML no .NET Framework ...822

(10)

Processamento DTD...824

Processamento de esquema ...824

Recursos externos...824

Compartilhar objetos XmlReaderSettings ...825

Suporte componentes...825 Processamento de dados ...825 Processamento DTD...825 Tratamento de entidade ...825 Recursos externos...825 Recursos externos...826 Blocos de script ...826 Objetos de extensão ...826

System.Xml codificação diretrizes ...827

Acesso externo ...827

Negação de Serviço ...827

Processamento...828

Dados XML processo In-Memory...829

Processo dados XML usando o modelo DOM...829

Processo dados XML usando o modelo de dados XPath...830

Lendo XML com o XmlReader...831

Escrevendo XML com o XmlWriter ...832

Novos recursos na classe XmlWriter ...832

Verificação de caracteres...833

Verificando a conformidade ...833

Usando o XmlWriter...833

Transformações em XSLT...834

Usando a classe XslCompiledTransform...834

Migrando da classe XslTransform ...835

Considerações sobre segurança XSLT ...837

Transformações em XSLT com a classe XslTransform...839

Modelo de objeto de esquema (SOM) do XML...841

Visão geral do modelo de objeto do esquema XML ...841

Leitura e escrita esquemas XML ...843

Criando esquemas XML ...844

Atravessando esquemas XML ...847

Editar Esquemas XML...849

Incluindo ou importar esquemas XML ...853

Integração XML com dados relacional e ADO.NET ...855

Resolver externos recursos XML nomeados por um URI ...857

Resolvendo recursos usando o XmlResolver ...857

Fornecer credenciais de autenticação para XmlResolver quando leitura de um arquivo ...858

Para criar um objeto XmlReader que usa um XmlSecureResolver ...860

Codificação de caracteres de nomes XML e conversão de tipos de dados XML...860

Espaços para nomes em um documento XML ...860

Suporte tipo nas classes System.Xml ...861

Mapear tipos de dados XML para tipos CLR ...861

Observações de implementação de suporte tipo XML...863

Conversão de tipos de dados XML ...864

SERVIÇOS DA WEB XML NO CÓDIGO GERENCIADO...866

Introdução à programação serviços XML da Web no código gerenciado ...866

Programação na Web com XML Web Services ...867

Criando XML Web Services em código gerenciado ...867

Acessando XML Web Services no código gerenciado ...869

Criado usando clientes do serviço XML da Web ASP.NET e Serviços XML da Web ...870

Acessar a Página de Ajuda de Serviço ...878

Acessar a descrição de serviço...878

Fornecendo um nome de mensagem para um método de XML Web Service ...883

Criando uma nova transação com um método de XML Web Service...884

Protegendo Serviços da Web XML Criados Usando ASP.NET...895

ACESSO A DADOS (COMO FAZER EM C#) ...900

Criando os controles para exibir os pedidos para cada cliente (registros filho) ...902

Visão geral sobre como conectar-se a dados no Visual Studio...903

(11)

Visão Geral do Preenchimento de DataSets e Consultas de Dados...927

Visão Geral da Exibição dados ...936

Ligação de Objeto no Visual Studio ...962

Visão Geral da Edição de dados em DataSets ...966

Visão geral sobre validação de dados...967

Visão Geral do Salvar dados...972

Introdução ao CONCURRENCY dados em ADO.NET ...982

CONCURRENCY pessimista...982

CONCURRENCY otimista...983

Última no WINS...983

A abordagem número versão...984

Para adicionar o tratamento de erro para o erro de concorrência ...989

Elementos de Dados de Interface de Usuário ...994

Adaptadores de Dados do ADO.NET ...997

Projetos SQL Server ...998

CRIANDO CLASSES (COMO FAZER EM C#) ...1004

COMO: Criar Tipos em Diagramas de Classe ...1004

Criando e Configurando Membros de Tipos ...1005

Criar membros tipo ...1005

COMO: Modificar membros de tipo...1006

COMO: Adicionar um parâmetro a um método ...1006

COMO: Abrir a janela Class Details ...1007

Atalhos de teclado para a janela Detalhes de classe ...1007

Usando o teclado...1008

Observações úteis sobre a janela Class Details ...1009

Exibição de informações somente leitura...1010

Elementos da janela Class Details ...1011

Linhas membro ...1011

Linhas de parâmetro...1012

COMO: Herdar de um Tipo Genérico...1012

COMO: Definir herança entre tipos...1013

COMO: Definir associações entre tipos...1013

COMO: Excluir formas de tipos e código associado de diagramas classe...1014

COMO: Aplicar atributos personalizados a tipos ou membros de tipo...1015

COMO: Exibir Herança entre Tipos ...1015

COMO: Exibir tipos derivados...1016

COMO: Remover formas de tipos de diagramas de classe ...1016

COMO: Exibir compartimentos em formas de tipo...1017

COMO: Exibir detalhes do tipo: ...1018

COMO: Alternar entre notação de membro e notação de associação...1019

COMO: Exibir membros de tipo ...1019

COMO: Adicionar diagramas de classes a projetos ...1020

COMO: Exibir tipos existentes...1021

Ententendo um código que você não escreveu ...1022

COMO: Agrupar membros de tipo ...1022

COMO: Adicionar comentários a diagramas de classe ...1022

Personalizando diagramas de classe...1023

COMO: Copiar elementos de diagrama de classe para um documento do Microsoft Office ...1024

COMO: Imprimir diagramas de classe ...1024

COMO: Ignorar membros de tipo ...1025

COMO: Renomear tipos e membros de tipo...1025

COMO: Mover um membro de tipo de um tipo para outro ...1026

COMO: Implementar uma interface...1026

COMO: Implementar uma classe abstrata...1027

COMO: Extrair para interface (C# somente)...1027

COMO: Reordenar parâmetros (C# somente) ...1027

COMO: Criar um membro ...1027

COMO: Implementar um designer para um controle...1029

COMO: Criar e configurar componentes no modo Design...1030

Como: Acessar suporte em tempo de design no Windows Forms ...1036

COMO: Implementar um provedor Extender HelpLabel ...1037

(12)

Como: Executar inicialização personalizada para controles no modo de design...1049

COMO: Implementar um conversor de tipo ...1050

Para implementar um conversor de tipo simples que pode converter uma seqüência para um ponto...1050

Para implementar um conversor de tipo simples que fornece uma lista drop-down de valores padrão em um navegador Propriedade...1051

Para implementar um conversor tipo que produz Propriedade baseado no construtor-código de inicialização1053 COMO: Implementar um editor UI de tipo ...1054

Como: Estender a aparência e comportamento de controles no modo de design...1055

COMO: Criar um controle de formulários do Windows que tira vantagem de recursos em tempo de criação..1064

COMO: Anexar marcas inteligentes para um componente de formulários do Windows ...1071

COMO: Ajustar atributos, eventos e propriedades de um componente no modo Design ...1073

PROGRAMAÇÃO DO OFFICE (COMO FAZER EM C#) ...1080

Como: Atualizar soluções das Ferramentas do Visual Studio para o Office ...1080

O Excel Usando Explicações Passo-a-passo...1081

Coleta de dados usando um formulário do Windows Walkthrough: ...1081

Para criar um novo projeto ...1081

Para adicionar um intervalo nomeado para Sheet1...1081

Para adicionar um formulário do Windows ...1082

Para exibir o formulário e coletar informações ...1082

Para enviar informações para a planilha ...1083

Para testar sua pasta de trabalho ...1083

Alterando planilha formatação usando controles CheckBox Walkthrough: ...1083

Para criar um novo projeto ...1084

Para adicionar três caixas de seleção...1084

Para adicionar texto a um controle NamedRange ...1085

Exibindo texto em uma caixa de texto em uma planilha usando um botão Walkthrough: ...1086

Para testar sua pasta de trabalho ...1088

Programação contra eventos de um controle NamedRange Walkthrough: ...1088

Walkthrough: vinculação células para várias colunas em uma tabela ...1099

Criando uma relação mestre / detalhes usando um DataSet em cache Walkthrough:...1103

Para criar um novo projeto ...1104

Armazenar em cache DataSet...1105

Para percorrer os registros...1106

Para testar o cache de dados ...1106

Para adicionar os dados ...1107

Para adicionar um gráfico ...1108

Para criar um novo projeto ...1108

Para alterar o nome do controle gráfico...1109

Para adicionar um controle de usuário...1109

Para adicionar controles Windows Form ao controle de usuário ...1109

Para criar um evento e propriedade em um controle de usuário ...1110

Para manipular o evento CheckedChanged dos botões de opção...1110

Para adicionar o controle do usuário sua planilha ...1111

Para alterar o tipo de gráfico que é exibido na planilha ...1111

Para testar sua pasta de trabalho ...1112

Vinculação de Dados para controles em um painel Ações do Excel Walkthrough:...1112

Para criar um novo projeto ...1113

Para adicionar uma nova fonte de dados para o projeto ...1113

Para adicionar um NamedRange e um controle ListObject ...1114

Para adicionar um controle painel Ações ...1114

Para adicionar controles Windows Forms ligados a dados a um controle painel Ações ...1114

Para definir propriedades de vinculação de dados do controle...1115

Para mostrar o painel Ações ...1115

Para testar seu documento ...1115

Implantando um Word ou Solution do Excel usando um manifesto Deployment Walkthrough: ...1116

Para criar um novo projeto ...1117

Para adicionar uma caixa de mensagem a um evento de inicialização ...1117

Para publicar a solução ...1117

Para atualizar o manifesto do aplicativo incorporado...1118

Para atualizar a manifesto de implantação...1119

Para atualizar o manifesto do aplicativo externo ...1119

Para copiar os arquivos de solução para o servidor ...1120

(13)

Para testar a implantação ...1120

Implantando um Word ou Solution do Excel usando um arquivo do Windows Installer Walkthrough: ...1121

Para criar um novo projeto ...1122

Para adicionar uma caixa de mensagem a um evento de inicialização ...1122

Para criar um projeto de instalação para a solução...1122

Para adicionar o documento e conjunto ao projeto de instalação...1123

Para criar um projeto ação personalizada...1123

Para criar uma ação personalizada que edita o manifesto do aplicativo ...1124

Para adicionar a saída primária do projeto ação personalizada ao projeto de instalação...1125

Para testar a instalação ...1125

Passo-a-passo: Concedendo e removendo permissões para uma solução do Office ...1126

Para criar um novo projeto ...1126

Para adicionar uma caixa de mensagem a um evento de inicialização ...1126

Para remover um grupo de códigos ...1127

Para criar um nome forte ...1128

Para conceder confiança com base em nome forte ...1128

Para testar sua pasta de trabalho ...1128

O Word Usando Explicações Passo-a-passo...1129

Walkthrough: Changing Document formatação usando controles CheckBox ...1129

Para criar um novo projeto ...1129

Para adicionar três caixas de seleção...1130

Para adicionar texto e um controle indicador...1130

Para alterar a formatação quando uma caixa de seleção é marcada...1131

Para testar seu documento ...1132

Exibindo texto em uma caixa de texto em um documento usando um botão Walkthrough: ...1132

Para criar um novo projeto ...1133

Para adicionar um botão e uma caixa de texto ...1133

Para escrever para a caixa de texto quando o botão é clicado...1133

Para testar seu documento ...1134

Walkthrough: Criando menus de atalho para indicadores ...1134

Para criar um novo projeto ...1135

Para adicionar texto ao seu documento ...1135

Para adicionar um controle indicador ao seu documento ...1135

Para criar o menu de atalho...1135

Para formatar o texto contido no indicador...1136

Para testar seu documento ...1137

Walkthrough: atualizando um gráfico em um documento usando botões de opção...1137

Para criar um novo projeto ...1138

Para adicionar um gráfico ...1138

Para adicionar um controle de usuário...1139

Para adicionar controles Windows Form ao controle de usuário ...1139

Para adicionar uma referência à 11.0 biblioteca objeto do Graph Microsoft ...1140

Para criar um evento e propriedade em um controle de usuário ...1140

Para manipular o evento CheckedChange dos botões de opção...1140

Para adicionar o controle de usuário do documento ...1141

Para alterar o tipo de gráfico que é exibido no documento ...1141

Para testar seu documento ...1142

Vinculação de Dados para controles em um painel Ações do Word Walkthrough:...1142

Para criar um novo projeto ...1143

Para adicionar um controle painel Ações ...1143

Para adicionar uma nova fonte de dados para o projeto ...1143

Para adicionar controles Windows Forms ligados a dados a um controle painel Ações ...1144

Para carregar o controle com dados...1145

Para definir propriedades de vinculação de dados do controle...1145

Para formatar os títulos de tabela...1145

Para criar a tabela ...1146

Para inserir texto em uma tabela do Word...1146

Para mostrar o painel Ações ...1147

Para testar seu documento ...1147

Walkthrough: criar uma marca inteligente que converte Temperatures de Fahrenheit para Celsius ...1148

Para criar um novo projeto ...1148

(14)

Para criar o manipulador de eventos...1149

Para testar sua pasta de trabalho ...1150

Implantando um Word ou Solution do Excel usando um manifesto Deployment Walkthrough: ...1150

Para criar um novo projeto ...1151

Para adicionar uma caixa de mensagem a um evento de inicialização ...1151

Para publicar a solução ...1152

Para atualizar o manifesto do aplicativo incorporado...1152

Para atualizar a manifesto de implantação...1153

Para atualizar o manifesto do aplicativo externo ...1153

Para copiar os arquivos de solução para o servidor ...1154

Para conceder confiança total para a pasta de rede...1154

Para testar a implantação ...1154

Implantando um Word ou Solution do Excel usando um arquivo do Windows Installer Walkthrough: ...1155

Para criar um novo projeto ...1156

Para adicionar uma caixa de mensagem a um evento de inicialização ...1156

Para criar um projeto de instalação para a solução...1156

Para adicionar o documento e conjunto ao projeto de instalação...1157

Para criar um projeto ação personalizada...1157

Para criar uma ação personalizada que edita o manifesto do aplicativo ...1158

Para adicionar a saída primária do projeto ação personalizada ao projeto de instalação...1159

Para testar a instalação ...1159

Passo-a-passo: Concedendo e removendo permissões para uma solução do Office ...1160

Para criar um novo projeto ...1160

Para adicionar uma caixa de mensagem a um evento de inicialização ...1160

Para remover um grupo de códigos ...1161

Para criar um nome forte ...1162

Para conceder confiança com base em nome forte ...1162

Para testar sua pasta de trabalho ...1162

COMO: Adicionar Controles a Documentos do Office...1162

Para arrastar um Windows Forms controle para o documento...1163

Para desenhar um Windows Forms controle sobre o documento ...1163

Para adicionar um controle Windows Forms para o documento clicando uma única vez sobre o controle ...1164

Para adicionar um controle Windows Forms para o documento clicando duas vezes no controle ...1164

Para adicionar um controle Windows Forms para o documento, pressionando a tecla ENTER...1164

Para adicionar um Windows Forms controlar programaticamente ...1165

COMO: Executar Cálculos do Excel por Programação ...1165

Para executar cálculos em um controle NamedRange ...1165

Executar cálculos para o aplicativo inteiro ...1165

Para executar cálculos em todas as pastas de trabalho abertas...1165

Como: Criar menus do Office programaticamente ...1166

COMO: Criar Barras de Ferramentas do Office por Programação...1167

DISPOSITIVOS INTELIGENTES...1168

O que há de novo em projetos Smart Device...1168

O que há de novo no desenvolvimento visual aplicativos dispositivos C++ ...1168

Destino vários sistemas operacionais ...1168

Sistema do projeto ...1168

O IntelliSense ...1168

Modo misto Solutions ...1168

Instalar do aplicativo ...1168

Aplicativos personalizados e assistentes de classe...1168

Editor de recursos ...1169

ATL ...1169

MFC ...1170

O que há de novo no Managed projetos de dispositivo ...1170

Como Iniciar o Emulador de Dispositivo no Visual Studio...1171

Visão geral do acesso de dados (projetos do dispositivo gerenciado) ...1172

Visão geral Solutions do dispositivo de embalagem ...1173

Alternar plataformas em projetos de dispositivo...1174

Ferramentas Remotas para Projetos de Dispositivos ...1174

Visão geral sobre segurança (dispositivos)...1175

Seleção método de conexão ...1176

Atualizando Projetos Criados com Ferramentas Anterior...1178

(15)

Programação para Dispositivos usando o .NET Compact Framework ...1182

Referência do .NET Compact Framework para Projetos de Dispositivos ...1183

Gerenciando Trechos de Código em Projetos Dispositivos ...1186

Diferenças entre depuradores de dispositivos e de desktop ...1194

(16)

VISUAL C#

Microsoft Visual C# 2005, pronunciado C sharp, é uma linguagem de programação projetada para criar uma ampla variedade de aplicativos executados no .NET Framework. C# é simples,

poderoso, com segurança de tipos, e orientada a objetos. Com suas muitas inovações, C# permite o desenvolvimento rápido de aplicativos mantendo a expressividade e elegância das linguagens do estilo C.

Visual Studio oferece suporte ao Visual C# com um editor de códigos completo, modelos de projeto, designers, assistentes de código, depurador poderoso e de fácil uso, e outras

ferramentas. A biblioteca de classes do .NET Framework fornece acesso a uma grande variedade de serviços do sistema operacional e outras classes úteis, e bem estruturadas que aceleram o ciclo de desenvolvimento significativamente.

Nesta seção

Guia de Introdução ao Visual C#

Apresenta os recursos do C# 2.0 para programadores novos para a linguagem ou novos para o Visual Studio, e fornece um roadmap para encontrar ajuda no Visual Studio. Isso também está localizado nas páginas "Como Fazer".

Usando o Visual C# IDE

Apresenta o ambiente de desenvolvimento do Visual C#.

Escrevendo aplicativos com Visual C#

Fornece uma orientação de alto nível abrangendo tarefas comuns de programação usando C# e o .NET Framework, com links para a documentação mais detalhada.

Migrando para o Visual C#

Compara a linguagem C# com Java e C++ e descreve como usar o JavaLanguage

Conversion Assistant para converter aplicativos Java e Visual J++ para Visual C#.

Guia de programação C #

Fornece informações e exemplos práticos sobre como usar construções de linguagem C#.

Referência C#

Fornece informações de referência detalhadas em conceitos de programação C#, palavras-chave, tipos, operadores, atributos, diretivas de pré-processador, opções de compilador, e erro de compilador e avisos.

Especificação da linguagem C#

Links para a versão mais recente das especificações C# no formato Microsoft Word.

Exemplos de Visual C#

(17)

GUIA DE INTRODUÇÃO AO

VISUAL C#

Os tópicos a seguir ajudam a iniciar o desenvolvimento de aplicativos usando o Microsoft Visual C# 2005. Esses tópicos também lhe introduzirão a muitos novos recursos no Microsoft Visual Studio 2005 como versão 2.0 da linguagem C#.

Nesta seção

Guia da documentação do Visual C#

Fornece uma orientação de alto nível sobre o conteúdo da documentação Visual C#.

Introdução à linguagem C# e ao Framework .NET

Fornece uma visão geral sobre a linguagem C# e a plataforma .NET.

O Que Há de Novo no Visual C-# 2005

O que há de novo no Microsoft Visual C# 2005.

O Que Há de Novo na Linguagem e Compilador C# 2.0 O que há de novo na versão 2.0 do C#.

Atualizando Aplicativos Visual C# para Visual Studio 2005

Atualizando seus projetos existentes para o Microsoft Visual Studio 2005.

Criando Seu Primeiro Aplicativo C#

Escrevendo, compilando e executando um simples aplicativo C#.

Usando Starter Kits C#

Usando os Starter Kits C#.

Recursos de ajuda adicionais (Visual C#) Links para outros recursos de ajuda.

Como Fazer em C#

Links para tópicos que mostram como executar uma variedade de tarefas específicas.

Guia da Documentação do Visual C#

A documentação do Microsoft Visual C# 2005 contém informações que são específicas para a linguagem C#, como palavras-chave, opções de compilador, mensagens de erro e conceitos de programação. Esta documentação também oferece uma visão geral de como usar o ambiente de desenvolvimento integrado (IDE). Além disso, existem muitos links para obter ajuda detalhada sobre classes .NET Framework, desenvolvimento da Web do ASP.NET, depuração, programação de banco de dados SQL e muito mais.

O diagrama a seguir fornece uma exibição dos conceitos do conteúdo da documentação do Visual C# e o relacionamento deste conteúdo com outras seções relevantes da documentação do Visual Studio e a MSDN on-line.

(18)

Introdução à linguagem C# e ao .NET Framework

C# é uma linguagem elegante orientada a objetos e fortemente tipada que permite aos desenvolvedores criar uma ampla variedade de aplicativos seguros e eficientes que são

executados sob o .NET Framework. Você pode usar C# para criar aplicativos clientes tradicionais do Windows , XML Web services, componentes distribuídos, aplicativos cliente-servidor,

aplicativos de banco de dados, e muito, muito mais. Microsoft Visual C# 2005 fornece um editor de código avançado, designers de interface de usuário convenientes, depurador integrado, e muitas outras ferramentas para facilitar o rápido desenvolvimento de aplicativos com base na versão 2.0 da linguagem C# e do .NET Framework.

Observação

A documentação Visual C# presume que você tenha uma compreensão dos conceitos básicos existentes de programação. Se você for um completo principiante, convém explorar Visual C# Express Edition, que está disponível na Web. Você também pode aproveitar qualquer um dos diversos livros excelentes e recursos da Web em C# para aprender técnicas de prática de programação.

Linguagem C#

A sintaxe C# é altamente expressiva, mas com menos de 90 palavras-chave, também é simples e fácil para aprender. A sintaxe do C# utilizando chaves como marcador de blocos será

instantaneamente reconhecível para qualquer pessoa familiarizada com C, C++ ou Java. Os desenvolvedores que conhecem qualquer uma dessas linguagens são normalmente capazes de começar a trabalhar produtivamente em C# dentro de muito pouco tempo. A sintaxe C# simplifica muitas das complexidades de C++ enquanto fornece recursos poderosos como tipos de valor anulável, enumerações, delegações, métodos anônimos e acesso direto à memória, que não foram localizados em Java. C# também oferece suporte a métodos e tipos genéricos, que fornecem aumento de segurança e desempenho, e iteradores, que permitem implementadores das classes de coleção definirem comportamentos personalizados da iteração que são simples para usar pelo código do cliente.

(19)

Como uma linguagem orientada a objetos, C# suporta os conceitos de encapsulamento, herança

e polimorfismo. Todas as variáveis e métodos, incluindo o método

Main

, ponto de entrada do

aplicativo, são encapsulados em definições da classe. Uma classe pode herdar diretamente de uma classe pai, mas ela pode implementar qualquer número de interfaces. Métodos que substituem métodos virtuais em uma classe pai exigem a palavra-chave override como uma forma para evitar redefinição acidental. No C#, uma estrutura é como uma classe simplificada; ele é um tipo alocado na pilha que pode implementar interfaces mas não tem suporte a herança. Além desses princípios orientados a objetos, C# facilita o desenvolvimento de componentes de software através de vários construtores inovadores da linguagem, incluindo:

• Assinaturas de métodos encapsulados chamadas delegações, que permitem notificações

de eventos fortemente tipados.

• Propriedades, que servem como accessadores de variáveis membros privadas.

• Atributos, que fornecem metadados declarativos sobre tipos no tempo de execução.

• Comentários internos da documentação XML.

Se você precisar interagir com outro software Windows como objetos COM ou DLLs nativas Win32, você pode fazer isso em C# através de um processo denominado "Interoperabilidade". Interoperabilidade permite que programas C# façam praticamente tudo que um aplicativo C++ nativo pode fazer. C# também suporta ponteiros e o conceito de código "inseguro" para os casos no qual o acesso direto a memória é absolutamente essencial.

O processo de compilação C# é simples comparado ao C e C++ e mais flexível do que em Java. Não há nenhum arquivo cabeçalho separado, e nenhum requisito de que métodos e tipos sejam declarados em uma ordem específica. Um arquivo fonte C# pode definir qualquer número de classes, estruturas, interfaces, e eventos.

Arquitetura da plataforma .NET Framework

Programas C# são executados no .NET Framework, um componente integrante do Windows que inclui um sistema de execução virtual chamado de Common Language Runtime (CLR) e um conjunto unificado de bibliotecas de classe. O CLR é implementação comercial da Microsoft do Common Language Infrastructure (CLI), um padrão internacional que é a base para criar ambientes de execução e desenvolvimento nos quais linguagens e bibliotecas trabalham perfeitamente juntas.

Código fonte escrito em C# é compilado em uma linguagem intermediária (IL) que está em conformidade com a especificação CLI. O código IL, juntamente com recursos como bitmaps e seqüências de caracteres, é armazenado em disco em um arquivo executável chamado de assembly, normalmente com uma extensão .exe ou .dll. Um assembly contém um manifesto que fornece informações sobre tipos do assembly, versão, cultura, e requisitos de segurança.

Quando o programa C# é executado, o módulo (assembly) é carregado no CLR, que pode levar a várias ações com base nas informações no manifesto. Em seguida, se os requisitos de segurança forem atendidos, o CLR executa a compilação Just-In-Time (JIT) para converter o código IL em instruções nativas da máquina. O CLR também oferece outros serviços relacionados a coleta de lixo automática, tratamento de exceção, e gerenciamento de recursos. Código que é executado pelo CLR é as vezes conhecido como "código gerenciado", em contraste com "código não

gerenciado" que é compilado em linguagem de máquina nativa que atinge um sistema específico. O diagrama a seguir ilustra os relacionamentos entre o tempo de compilação e o tempo de

execução dos arquivos de código fonte C#, as bibliotecas de classes base, módulos (assemblies), e o CLR.

(20)

A interoperabilidade da linguagem é um recurso chave do .NET Framework. Por estar em

conformidade com o Common Type Specification (CTS), o código IL produzido pelo compilador C# pode interagir com código que foi gerado a partir das versões .NET do Visual Basic, Visual C++, Visual J#, ou qualquer uma das outras mais de 20 linguagens CTS-Compliant. Um conjunto único pode conter vários módulos escritos em linguagens .NET diferentes, e os tipos podem se

referenciar como se eles fossem escritos na mesma linguagem.

Além dos serviços de tempo de execução, o .NET Framework também inclui uma biblioteca

abrangente com mais de 4000 classes organizadas em namespaces que fornecem uma variedade de funcionalidades úteis para tudo desde entrada e saída de arquivo até manipulação de

seqüência para análise XML e controles de Windows Forms. Uma aplicação C# típica usa amplamente a biblioteca de classe do .NET Framework para manipular tarefas comuns de "conexões internas".

O que há de novo no Visual C# 2005

O Microsoft Visual C# 2005 inclui novos recursos nas áreas a seguir:

• Linguagem e Compilador

• Editor de códigos

• Ambiente de desenvolvimento

• Documentação e especificação de linguagem

• Depuração

Linguagem e Compilador

A linguagem C# agora suporta tipos genérico, iteradores e tipos parciais. A versão mais recente

do compilador C# também inclui novos recursos e opções. Para mais informações, consulte O que

há de novo na Linguagem e Compilador C# 2.0. Editor de códigos

O Editor de códigos contém os seguintes recursos novos para Visual C# 2005.

(21)

Trechos de códigos aumentam a velocidade de entrada de códigos de construção comuns fornecendo um modelo que pode ser preenchido. Trechos são armazenados como arquivos XML que podem ser facilmente editados e personalizados.

• Trechos de códigos (C#)

• COMO: Usar trechos de código (C#)

• COMO: Usar trechos de código circunscritos

Refatoração

Ferramentas de refactoração podem automaticamente reestruturar seu código fonte, por exemplo, promovendo as variáveis locais para parâmetros ou convertendo um bloco de código em um método.

• COMO: Promover variável local para parâmetro

• Extrair o método • Encapsular o campo • Extrair a interface • Renomear • Remover parâmetros • Reordenar parâmetros Ambiente de Desenvolvimento

O ambiente de desenvolvimento inclui os seguintes aperfeiçoamentos para Visual C# 2005.

O IntelliSense

O IntelliSense foi aprimorado com os novos recursos a seguir:

• A lista de conclusão de List Members aparece automaticamente quando você volta com o

cursor para um operador de escopo que precede um objeto, ou quando você desfaz a ação de conclusão.

• Quando você escreve código de tratamento de erros, o Membros lista o ajuda a descobrir

qual exceção atrair filtrando membros irrelevantes da lista de conclusão em uma cláusula catch.

• Quando você precisa inserir código padronizado, o Automatic Code Generation agora

permite que você determine que o IntelliSense insira o código para você.

• IntelliSense está disponível ao criar aplicativos da Web.

Class Designer

O Class Designer é um novo editor que exibe graficamente classes e tipos e permite que os métodos sejam adicionados ou modificados. Também é possível usar ferramentas de refatoração a partir da janela Class Designer.

• Consulte Projetando e exibindo classes e tipos.

Banco de Testes de Objeto

O banco de testes de objeto é projetado para teste simples a nível de objeto. Permite criar uma instância de um objeto e chamar seus métodos.

• Consulte Banco de Testes de Objeto.

Implantação ClickOnce

A implantação ClickOnce permite que você publique aplicativos do Windows em um servidor Web ou em compartilhamento de arquivos de rede para instalações simplificadas.

(22)

• Consulte Implantação ClickOnce.

Suporte a Ferramentas para Assemblies Fortemente Nomeados

A caixa de diálogo Project Properties foi reprojetada, e agora inclui suporte para assinatura a assemblies.

• Consulte Propriedades do Projeto.

Assistentes de Código

Os assistentes código a seguir estão agora obsoletos:

• Assistente para o método C#

• Assistente para a propriedade C#

• Assistente para o campo C#

• Assistente para o indexador C#

Documentação e Especificação de Linguagem

Amplamente a documentação de referência do C# tem sido regravada para fornecer informações mais completas para perguntas comuns assim como avançadas de uso que os desenvolvedores podem encontrar ao criar aplicativos em C#.

O especificador de linguagem do C# está mais integrado para o ambiente de Ajuda, mas é fornecido em dois arquivos .doc. Esses arquivos são instalados por padrão em \\Microsoft

Visual Studio 8\vcsharp\specifications\1033\. As versões mais atualizadas podem

ser baixadas na Central de Desenvolvimento do C# no MSDN. Para mais informações, consulte Especificação de Linguagem do C#.

Melhorias na Depuração Específica do C#

Novos recursos, incluindo Edit e Continue, foram adicionados para auxiliar o desenvolvedor C#.

O que há de novo na C# 2.0 idioma e Compiler

Com o lançamento do Visual Studio 2005, a linguagem C# foi atualizada para versão 2.0, que oferece suporte os seguintes recursos novos:

Tipos genéricos

Tipos genéricos são adicionados ao idioma para ativar os programadores para atingir um nível alto de reutilização e desempenho avançado para classes coleção. Tipos genéricos podem diferir somente por aridade. Parâmetros também podem ser forçados a ser tipos específicos. Para obter mais informações, consulte Parâmetros genéricos tipo.

Iteradores

Iterators facilitam para ditar um foreach loop como será iterar sobre uma coleção o conteúdo.

Classes parciais

Definições de tipo parcial permitem que um tipo simples, a ser dividida em vários arquivos, como uma classe,. O designer visual studio utiliza esse recurso para separar seu código gerado do código do usuário.

Tipos anulável

Tipos anuláveis permitem que uma variável para conter um valor que é indefinido. Tipos anuláveis são úteis quando trabalhar com bancos de dados e outras estruturas de dados que podem conter elementos que contêm sem valores específicos.

(23)

Agora é possível para passar um bloco de código como um parâmetro. Qualquer Lugar um representante é esperado, um bloco de código poderá ser usado: não é necessário para definir um novo método.

Qualificador alias Namespace

O qualificador alias espaço para nome. proporciona mais controle sobre acessar membros espaço para nome (::) O global:: alias permite acesso a raiz que pode estar ocultas por uma entidade em seu código.

Classes estáticas

Classes estáticas são uma maneira segura e conveniente de declarar uma classe que contém métodos estáticos que não podem ser instanciados. Em C# versão 1.2 você seria tenha definido o construtor de classe como particular para impedir que a classe sendo instanciado.

Alias assembly externo

Referência versões diferentes do mesmo componente contidos no mesmo conjunto com esse uso expandido de palavra-chave extern.

Propriedade acessibilidade Accessor

Do get agora é possível para definir diferentes níveis de acessibilidade para e set assessores em Propriedades.

Covariância e Contravariance em representantes

O método passado para um representante agora podem ter maior flexibilidade no seu tipo de retorno e parâmetros.

HOW TO: Declare, Instantiate, e usar um representante

Método conversão de grupo fornece uma sintaxe simplificada para declarar representantes.

Buffers tamanho fixo

Em um bloco código desprotegido, agora é possível para declarar estruturas de tamanho fixo com matrizes incorporados.

Conjuntos de amigo

Conjuntos podem fornecer acesso a tipos não-públicos para outros conjuntos. Controle de aviso embutido

A #pragma diretiva de aviso pode ser usada para desativar e ativar determinados avisos do compilador.

volátil

Agora pode ser aplicada a IntPtr palavra-chave volatile e UIntPtr. O compilador C# apresenta os seguintes adições e alterações para esta versão: Opção /errorreport

Pode ser usado para relatar erros de compilador interno à Microsoft através da Internet. Opção /incremental

Foi removido.

e /keycontainer/KeyFile Opções

Oferecer suporte à especificação chaves criptográficas. Opção /langversion

(24)

Opção /linkresource

Contém opções adicionais. Opção /moduleassemblyname

Permite que você se criar um.netmodule tipos de arquivo e acesso não-públicos em um conjunto existente.

Opção /PDB

Especifica o nome e local do arquivo.pdb. Opção /Platform

Permite que você para arquiteturas Family (IPF) Itanium e x 64 de destino. Aviso # pragma

Usado para desativar e ativar individuais avisos no código.

Atualizando Aplicativos Visual C# para Visual Studio 2005

Quando você abre um arquivo de projeto ou de solução criado por uma versão anterior do Visual Studio, o Assistente para Atualização guia você através do processo de converter seu projeto para Visual Studio 2005. O Assistente para Atualização executa várias tarefas, entre elas: cria novas propriedades e atributos e exclui os obsoletos, mas como a verificação de erros tornou-se mais rígida, você pode encontrar novos erros ou mensagens de aviso que não foram produzidos pela versão anterior do compilador. Assim, a etapa final na atualização de um aplicativo existente é fazer as alterações de código necessárias para resolver quaisquer novos erros.

Freqüentemente, um código que produzia uma certa mensagem nas versões anteriores do compilador de C# produz uma mensagem diferente na versão atual. Normalmente, isso se deve ao fato de que uma mensagem geral foi substituída por uma mais específica. Como nenhuma alteração no código é necessária, essas diferenças não foram documentadas.

A seguir, estão as novas mensagens que o 'Assistente para Atualização' gera devido à verificação de erros mais rigorosa.

Novas Mensagem de Erro e de Aviso

CS0121: Ambiguous call (Chamada ambígua)

Devido a uma conversão implícita, o compilador não foi capaz de chamar uma implementação específica de um método sobrecarregado. Você pode resolver este erro das seguintes formas:

• Especificar os parâmetros do método de tal forma que a conversão implícita não exista.

• Remover todos as outras implementações do método.

• Converter para um tipo apropriado antes de chamar o método.

CS0122: Method inaccessible due to its protection level (Método

inacessível devido ao seu nível de proteção)

Você poderá receber este erro ao fazer referência um tipo em um assembly compilado pelo C++ que foi compilado com a opção de compilador /d1PrivateNativeTypes.

Este erro ocorre porque, na versão atual, um assembly C++ produz uma assinatura que usa um tipo que não está marcado como público.

Você pode contornar esse problema usando a opção /test:AllowBadRetTypeAccessdo

compilador. Esta opção será removida quando este recurso foi corrigido.

CS0429: Unreachable expression code detected (Expressão de código

inatingível detectada)

(25)

Este erro ocorre sempre que parte de uma expressão em seu código é inatingível. Por exemplo, a condição

false && myTest()

casa com esse critério, pois o método

myTest()

nunca será

executado já que o lado esquerdo da operação && é sempre falso. Para corrigir isso, refaça o teste lógico para eliminar o código inacessível.

CS0441: A class cannot be both static and sealed (Uma classe não pode

ser ao mesmo tempo estática e lacrada)

Todas as classes estáticas são também classes lacradas. A especificação de linguagem C# proíbe a especificação de ambos os modificadores em uma classe e o compilador agora relata isso como um erro.

Para corrigir esse erro, remova

sealed

da classe.

CS1699: Warning on use of assembly signing attributes (Alerta no uso de

atributos de assinatura de assembly)

Os atributos de assembly que especificam assinatura foram movidos do código para opções do

compilador. Usar os atributos

AssemblyKeyFile

ou

AssemblyKeyName

no código produz este

aviso.

Em vez desses atributos, você deve usar as opções de compilador a seguir:

• Use a opção de compilador /keyfile (Especifica um Arquivo Chave de Nome Forte)

(Opções do Compilador de C#) ao invés do atributo

AssemblyKeyF

ile,e use /keycontainer

(Especifica um Contêiner de Chave de Nome Forte) (Opções do Compilador de C#)ao invés

de

AssemblyKeyName

.

Não mudar para as opções de linha de comando não pode dificultar os diagnósticos do compilador quando friend assemblies estiverem sendo usados.

Se você estiver usando /warnaserror (Trata Aviso como Erros) (Opção do Compilador de C#),

você pode converter de volta para um aviso adicionando /warnaserror-:1699a linha de

comando do seu compilador. Se necessário, você pode desativar o aviso usando

/nowarn:1699.

Incremental compilation removed (Compilação incremental removida)

A opção /incremental do compilador foi removida. O recurso de Edição e Continuação substitui essa funcionalidade.

Criando Seu Primeiro Aplicativo C#

Somente leva um minuto para criar um aplicativo C#. Siga estas etapas para criar um programa que abre uma janela e reage a um pressionamento de botão.

Procedimentos

Para criar um aplicativo C#

1. No menu File, aponte para New, e em seguida, clique em Project

2. Verifique se o modelo Windows Application está selecionado, no campo Name, digite MyProject , e clique em OK.

Você verá um Windows Form no designer de Windows Forms. Essa é a interface de usuário para seu aplicativo.

3. No menu View, clique em Toolbox para tornar a lista de controles visível.

4. Expanda a lista Common Controls, e arraste o controle Label para seu formulário. 5. Também da lista Common Controls, arraste um botão para o formulário, próximo ao

(26)

6. Clique duas vezes no novo botão para abrir o Editor de Código. Visual C# inseriu um

método chamado

button1_Click

que é executado quando o botão for clicado.

7. Altere o método para ter esta aparência:

private void button1_Click(object sender, EventArgs e) {label1.Text = "Hello, World!";} 8. Pressione F5 para compilar e executar o aplicativo.

Quando você clicar no botão, é exibida uma mensagem de texto. Parabéns! Você acabou de escrever seu primeiro aplicativo C#.

Usando Starter Kits C#

Um Starter Kit é um aplicativo completo e independente pronto para você carregar e compilar. Um Starter Kit vem com sua própria documentação, incluindo descrições de técnicas de programação, e sugestões para como ele pode ser personalizado. Starter Kit é uma maneira excelente de ver um aplicativo C# que funciona em ação.

Para carregar e compilar um Starter Kit Visual C#

1. No menu File, clique em New Project.

A caixa de diálogo New Project será exibida. Esta caixa de diálogo lista os diferentes tipos de aplicativos padrão que Visual C# pode criar.

2. Selecione um tipo de aplicativo Starter Kit, e clique em OK. O Starter Kit é carregado no Visual C#.

3. Para compilar e iniciar o projeto Starter Kit, pressione F5.

Recursos de Ajuda Adicionais (Visual C#)

Os sites e grupos de notícias a seguir lhe ajudarão a encontrar respostas para problemas comuns e não tão comuns.

Recursos Microsoft

Os sites a seguir são mantidos pela Microsoft e hospedam artigos e grupos de discussão sobre tópicos de interesse para os desenvolvedores C#.

Na Web

A Ajuda do Microsoft e Suporte

Fornece acesso a artigos da KB, downloads e atualizações, WebCasts de suporte e outros serviços.

O Microsoft Visual C# Developer Center

Fornece exemplos de código, informações sobre atualização, e conteúdo técnico. Grupos de discussão MSDN

Fornece uma maneira para conectar-se a uma comunidade de especialistas de todo o mundo.

Fóruns

Forums técnico da Microsoft

Fóruns discussão baseados na Web para muitas tecnologias Microsoft incluindo C# e o Framework .NET.

Grupos de notícias

microsoft.public.dotnet.languages.csharp

(27)

microsoft.public.vsnet.general

Fornece um fórum para perguntas e problemas no Visual Studio. microsoft.public.vsnet.IDE

Fornece um fórum para perguntas sobre como trabalhar no ambiente Visual Studio. microsoft.public.vsnet.documentation

Fornece um fórum para perguntas e problemas na documentação Visual C#. Recursos de terceiros

O site do MSDN fornece informações sobre sites de terceiros e grupos de notícias de atual interesse. Para a lista mais atual dos recursos disponíveis, consulte o Site MSDN Community.

Como Fazer em C#

Como Fazer é sua porta de entrada para tópicos-chave baseados em tarefas sobre programação e desenvolvimento de aplicativos em C#. As categorias essenciais sobre o que você pode fazer com C# estão listadas neste tópico. Os links fornecem referências para páginas de ajuda importantes baseadas em procedimento.

A Linguagem C#

Especificação da Linguagem C# ... Threading… Genéricos... Trechos de Código… Exemplos… mais

O Framework .NET

Entrada e Saída em Arquivos… Strings… Coleções… Serialização… Componentes… Módulos (assemblies) e Domínios de Aplicativo… mais

Aplicativos do Windows

Criando Aplicativos do Windows… Controles…Windows Forms… Desenhando… mais Páginas Web e Web Services

Pages Web do ASP.NET… XML Web Services… mais Depuração

Usando o Depurador VS… Classe Trace .Framework NET… Depuração de Transações SQL… mais

Accesso a Dados

Conectando a Fontes de Dados… O SQL Server... Vinculação de Dados… mais Criando Classes

Class Designer... Trabalhando com Classes e Outros Tipos... Criando e Modificando Membros-tipo... Linhas-mestras para a Criação de Bibliotecas de Classes… mais Segurança

Segurança no Acesso ao Código… Práticas Recomendadas de Política de Segurança… Conjuntos de Permissões… mais

Programação do Office

Programação do Office… Controles… Word… Excel… mais Dispositivos Inteligentes

O que há de novo em Projetos para Dispositivos Inteligentes... Programação para Dispositivos Inteligentes... Depuração em Dispositivos Inteligentes... mais

Referências

Documentos relacionados

Para saber se você está utilizando ou não o benefício fiscal dado pelo governo, é preciso calcular os valores de seus rendimentos tributáveis no ano (tais como salários, pro labore

Já para os participantes com conta corrente em outros bancos, os valores abaixo de R$ 5.000,00 entrarão via DOC (Documento Ordem de Crédito), que leva um dia útil para ser compensado

Este planeta completa uma volta em torno do Sol a cada 29 anos e. meio, e um dia dura pouco mais que dez

Sempre trazia amigos para jantar conosco em casa, embora minha mãe batesse o pé e dissesse que não dava para ter mais de cinco pessoas por vez, pois não havia como apertar mais

Algum desgaste (metal polido) nas bordas é considerado normal, produzido pelo movimento entre o braço e a suporte da suspensão. Se houver perda de metal e as bordas do mancal

A partir da fórmula da sexuação, a posição masculina de Maria, apontada pela mãe, como um modo de gozo masculino habitando um corpo de menina, revela, na verdade, uma posição de

&gt; Arraste o nome da oportunidade do painel Field (Campo) para a área em branco da tela Report (Relatório) Agora, foi criado um novo bloco somente com o campo

— 0 desenho 5 mostra os encapsulamentos mais comuns nos LEDs - redondo, retangular e quadrado — além do seu símbolo, junto ao qual está indicado o sentido que se