Nível I - Iniciante
Autor: Elzevir Jr.
Janeiro, 2007
Í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
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
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
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
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
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
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
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
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
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
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
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
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
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
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#
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.
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.
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 doaplicativo, 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.
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.
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.
• 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.
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
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)
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étodomyTest()
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
ouAssemblyKeyName
no código produz esteaviso.
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
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
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