|
DESCRIÇÃO
O C# é a linguagem de programação criada pela Microsoft e especialmente pensada para o desenvolvimento de aplicações na plataforma .NET. Esta linguagem e a sua associada plataforma mudaram radicalmente a forma como as aplicações são desenvolvidas para o ambiente Windows, e também para a Internet.
Este livro é destinado a todos os profissionais, investigadores e estudantes universitários que adoptem a linguagem C# para o desenvolvimento de aplicações. Esta nova edição do livro – C#3.5 – cobre profundamente não só a versão 3.0 da linguagem C# como também a versão 3.5 da plataforma .NET. Como principal novidade é de referir o tratamento exaustivo da nova linguagem de pesquisa LINQ, integrada na plataforma.
PRINCIPAIS TÓPICOS
- Conceitos de orientação aos objectos
- Programação orientada aos objectos
- Programação baseada em componentes
- Classes base
- Execução corrente
- Acesso à Internet
PÚBLICO-ALVO
- Profissionais;
- Investigadores;
- Estudantes universitários que adoptem a linguagem C# para o desenvolvimentos de aplicações.
O(S) AUTOR(ES)
Paulo Marques
Docente e investigador do Departamento de Engenharia Informática da Universidade de Coimbra. As suas principais áreas de interesse são os sistemas distribuídos e paralelos, o desenvolvimento de software baseado em componentes e as linguagens reflexivas. É responsável pelo sistema RAIL, para instrumentação de código na plataforma .NET, desenvolvido com o apoio da Microsoft Research.
Hernâni Pedroso
Mestre em Engenharia Informática pela Universidade de Coimbra. Desenvolveu a sua actividade profissional principalmente na empresa Critical Software, S.A. em software para sistemas críticos. Foi um dos principais arquitectos do sistema WMPI. A sai investigação teve um enfoque especial nas áreas de sistemas distribuídos e paralelos, tolerância a falhas e computação de elevado desempenho.
Ricardo Figueira
Técnico de Informática de Gestão. Encontra-se ligado ao desenvolvimento de projectos ASP.NET e Aplicações Windows numa grande instituição bancária Portuguesa. É o fundador da maior comunidade Portuguesa de programadores .NET (PontoNetPT), tendo sido reconhecido pela Microsoft Portugal como MVP - Most Valuable Professional - na área de Visual Developer. Possui ainda um blog pessoal onde apresenta as novidades mais recentes sobre a tecnologia .NET
ÍNDICE
1- Introducao
1.1 A plataforma .NET
1.2 Sobre este livro
2 - Elementos Basicos
2.1 Primeiro Programa
2.2 Um exemplo completo
2.3 Tipos de dados
2.3.1 Tipos elementares
2.3.1.1 Tipos numericos
2.3.1.2 Valores literais
2.3.1.3 Conversoes entre tipos numericos
2.3.2 O tipo logico
2.3.3 Caracteres e cadeias de caracteres
2.3.3.1 Cadeias de carcteres
2.4 Variaveis
2.5 Constantes
2.6 Expressoes e operadores
2.7 Controlo de fluxo
2.7.1 Expressao if-else
2.7.2 Expressao switch
2.7.3 Expressoes while e do-while
2.7.4 Expressao for
2.7.5 Expressao foreach
2.7.6 Quebra de ciclos
2.8 Tabelas
2.8.1 Tabelas simples
2.8.2 Tabelas multidimensionais
2.8.3 Tabelas dentro de tabelas
Parte I - A Linguagem C#
3 - Conceitos de Orientacao aos Objectos
3.1 Conceitos basicos
3.2 Encapsulamento de informacao
3.3 Composicao e heranca
3.4 Polimorfismo
4 - Programacao Orientada aos Objectos
4.1 O sistema de tipos do CLR
4.1.1 Referencias
4.1.2 Boxing/Unboxing
4.2 Campos de uma classe
4.2.1 Niveis de acesso de membros
4.2.2 Niveis de acesso de topo
4.2.3 Constantes
4.2.4 Membros estaticos
4.3 Construtores
4.3.1 Inicializacao por omissao
4.3.2 Iniciadores de objectos
4.3.3 Utilizacao de varios construtores
4.3.4 Utilizacao generica de this
4.3.5 Construtores estaticos
4.3.5.1 Membros static readonly
4.3.6 Inicializacao directa de campos
4.4 Metodos simples
4.4.1 Visibilidade de variaveis
4.4.2 Overloading
4.4.3 Passagem de parametros
4.4.3.1 Passagem por referencia (REF)
4.4.3.2 Variaveis de saida (OUT)
4.5 Redefinicao de metodos
4.5.1 Overriding simples
4.5.2 Polimorfismo
4.5.3 Gestao de versoes
4.5.4 Classes seladas
4.5.5 Classes abstractas
4.5.6 Modificadores de metodos
4.5.6.1 Modificador extern
4.5.7 Interfaces
4.5.7.1 Heranca de interfaces
4.6 Conversao entre tipos
4.6.1 Operador is
4.6.2 Operador as
4.6.3 Operador typeof
4.7 Estruturas
4.8 Enumeracoes
4.9 Definicoes parciais
4.9.1 Tipos parcialmente definidos
4.9.2 Metodos parcialmente definidos
4.10 Espacos de nomes
4.10.1 Aliases
5 - Excepcoes
5.1 Um primeiro exemplo
5.2 Estrutura generica
5.3 Lancamento de excepcoes
5.4 Hierarquia de excepcoes
5.5 Excepcoes de aritmetica
6 - Programacao Baseada em Componentes
6.1 Propriedades
6.1.1 Propriedades automaticas
6.1.2 Propriedades Indexadas
6.2 Eventos
6.2.1 Delegates
6.2.2 Multicast delegates
6.2.3 Metodos Anonimos
6.2.3.1 Metodos anonimos usando delegates
6.2.3.2 Expressoes lambda
6.2.4 Sistema de eventos na plataforma .NET
6.2.5 Um exemplo utilizando Windows Forms
6.3 Atributos
6.3.1 Alvo dos atributos
6.3.2 Definicao de novos atributos
6.3.3 Obtencao de atributos em tempo de execucao
7 - Topicos Avancados
7.1 Tipos Anonimos
7.2 Expressoes de Consulta
7.3 Inferencia Automatica de Tipos
7.3.1 Inferencia em variaveis locais
7.3.2 Inferencia em tabelas
7.3.3 Inferencia em expressoes de consulta
7.3.4 Inferencia em expressoes lambda
7.4 Enumeradores e Interadores
7.4.1 A interface IEnumerable
7.4.2 Iteradores
7.4.3 Enumeradores genericos
7.5 Genericos
7.5.1 Definicao de tipos genericos
7.5.2 Definicao de metodos genericos
7.6 Redefinicao de operadores
7.6.1 Redefinicao simples de operadores
7.6.2 Conversoes definidas pelo utilizador
7.7 Tipos Anulaveis
7.7.1 Operador de aderencia a nulo
7.8 Ponteiros
7.8.1 Sintaxe
7.8.2 Aritmetica de ponteiros
7.8.3 Ponteiros e tabelas
7.8.4 Ponteiros para membros de classes
7.9 Metodos com numero arbitrario de parametros
7.10 Metodos de Extensao
7.11 Destruicao de Objectos
7.11.1 Sintaxe
7.11.2 Dispose e Close
7.11.3 A interface IDisposable
7.12 Pre-Processamento
7.12.1 Directivas #define e #undef
7.12.2 Directivas #if, #elif, #else e #endif
7.12.3 Directivas #warning e #error
7.12.4 Directiva #line
7.12.5 Directivas #region e #endregion
7.13 Documentacao em XML
Parte II - .NET Essencial
8 - Classes Base
8.1 A classe System.Object
8.1.1 Metodo ToString()
8.1.2 Comparacao de objectos
8.1.2.1 Metodo GetHashCode()
8.1.3 Metodo MemberwiseClone()
8.2 Cadeias de caracteres
8.2.1 Leitura da consola
8.2.2 Conversoes de valores
8.2.3 A classe System.String
8.2.4 A classe StringBuilder
8.2.5 Formatacao de cadeias de caracteres
8.2.5.1 Formatacoes definidas pelo programador
8.2.6 Expressoes regulares
8.3 Coleccoes
8.3.1 A interface primordial: ICollection
8.3.2 Coleccao List e ArrayList
8.3.3 Coleccao LinkedList
8.3.4 Coleccao BitArray
8.3.5 Coleccao Dictionary e Hashtable
8.3.6 Coleccao Hashset
8.3.7 Coleccao SortedDictionary
8.3.8 Coleccao SortedList
8.3.9 Coleccao Queue
8.3.10 Coleccao Stack
8.3.11 Resumo das coleccoes
8.4 Ficheiros e streams
8.4.1 Gestao do sistema de ficheiros
8.4.2 Leitura e escrita de ficheiros
8.4.2.1 Hierarquia de streams
8.4.2.2 Classe Filestream
8.4.2.3 Ficheiros de texto
8.4.2.4 Ficheiros binarios
8.4.3 Serializacao de objectos
8.4.3.1 Serializacao em formato binario
8.4.3.2 Serializacao em formato XML
9 - Execucao Concorrente
9.1 Gestao de threads
9.1.1 Controlo de threads
9.1.2 A classe Thread
9.2 Sincronizacao
9.2.1 O problema da atomicidade
9.2.2 Seccoes criticas
9.2.3 A classe Mutex
9.2.4 Monitores
9.2.4.1 Exemplo: produtor/consumidor com buffer finito
9.2.5 A classe Semaphore
9.2.6 Outros objectos de sincronizacao
9.2.6.1 Classes AutoResetEvent e ManualResetEvent
9.2.6.2 Classe ThreadPool
9.2.6.3 Classe ReaderWriterLock
9.2.6.4 Classe Timer
10 - Acesso a Internet
10.1 Acesso a recursos na Internet
10.1.1 Classe WebClient
10.1.2 Classes WebRequest e WebResponse
10.1.3 Classes utilitarias
10.1.3.1 Configuracao de proxies
10.1.3.2 Resolucao de enderecos
10.1.3.3 Manipulacao de URI
10.2 Web services
10.2.1 Criacao de web services
10.2.2 Clientes de web services
10.2.3 Configuracao e instalacao
10.2.3.1 Questoes de configuracao
10.2.3.2 Espacos de nomes
10.2.4 Informacao disponivel a um web service
10.3 Utilizacao do protocolo TCP/IP
10.3.1 Protocolo TCP
10.3.1.1 Servidores TCP
10.3.1.2 Clientes TCP
10.3.2 Protocolo UDP
10.3.2.1 Utilizacao do protocolo UDP
11- Introducao a LINQ
11.1 Expressoes de Consulta
11.1.1 Expressao From
11.1.2 Expressao Where
11.1.3 Expressao Select
11.1.4 Expressao Group
11.1.5 Expressao Into
11.1.6 Expressao Orderby
11.1.7 Expressao Join
11.1.8 Expressao Let
11.1.9 Operacoes genericas e de agregacao
11.2 Arquitectura LINQ
11.2.1 LINK para SQL
11.2.1.1 Ferramenta SqlMetal
11.2.1.2 Visual studio
11.2.1.3 Mapeamento por atributos
11.2.1.4 Mapeamento por ficheiros XML
11.2.1.5 Insercao e actualizacao de elementos
11.2.2 LINK para XML
12- Exploracoes Futuras
12.1 Interfaces de programacao
12.1.1 Common Languagr Runtime(CLR)
12.1.2 Base Class Library (BCL)
12.1.3 Acesso e manipulacao de dados
12.1.4 Acesso a rede
12.1.5 Programas graficos
11.2 Conclusao
Apendice Convencoes de Codigo
Indice remissivo
|