O guia prático e passo a passo para aprender o Visual C# 2008. Destinado a desenvolvedores com habilidades básicas de programação de computador, este livro ensina tudo o que você precisa saber para criar componentes C# e aplicações baseadas em Windows
| Bookman |
| 8577802639 |
| 9788577802630 |
| Médio |
| Brochura |
| Português |
| Nacional |
| 1 |
| 624 |
Introdução
Parte I - Apresentando o Microsoft Visual C# e o Microsoft Visual Studio 2
1 - Bem-vindo ao C#
Começando a programar com o ambiente do Visual Studio 2
Escrevendo seu primeiro programa
Utilizando namespaces
Criando um aplicativo gráfico
Referência rápida do Capítulo 1
2 - Trabalhando com variáveis, operadores e expressões
Entendendo instruções
Utilizando identificadores
Identificando palavras-chave
Utilizando variáveis
Nomeando variáveis
Declarando variáveis
Trabalhando com tipos de dados primitivos
Exibindo valores de tipos de dados primitivos
Utilizando operadores aritméticos
Operadores e tipos
Examinando operadores aritméticos
Controlando a precedência
Utilizando a associatividade para avaliar expressões
A associatividade e o operador de atribuição
Incrementando e decrementando variáveis
Prefixo e sufixo
Declarando variáveis locais implicitamente tipadas
Referência rápida do Capítulo 2
3 - Escrevendo métodos e aplicando escopo
Declarando métodos
Especificando a sintaxe de declaração de método
Escrevendo instruções return
Chamando métodos
Especificando a sintaxe de chamada de método
Aplicando escopo
Definindo o escopo local
Definindo o escopo de classe
Sobrecarregando métodos
Escrevendo métodos
Referência rápida do Capítulo 3
4 - Utilizando instruções de decisão
Declarando variáveis booleanas
Utilizando operadores booleanos
Entendendo operadores de igualdade e relacionais
Entendendo operadores lógicos condicionais
Resumindo a precedência e a associatividade dos operadores
Utilizando instruções if para tomar decisões
Entendendo a sintaxe da instrução if
Utilizando blocos para agrupar instruções
Instruções if em cascata
Utilizando instruções switch
Entendendo a sintaxe da instrução switch
Seguindo as regras da instrução switch
Referência rápida do Capítulo 4
5 - Utilizando atribuição composta e instruções de iteração
Utilizando operadores de atribuição composta
Escrevendo instruções while
Escrevendo instruções for
Entendendo o escopo da instrução for
Escrevendo instruções do
Referência rápida do Capítulo 5
6 - Gerenciando erros e exceções
Lidando com erros
Testando o código e capturando as exceções
Tratando uma exceção
Utilizando múltiplas rotinas de tratamento catch
Capturando múltiplas exceções
Utilizando aritmética verificada e não-verificada de números inteiros
Escrevendo instruções verificadas
Escrevendo expressões verificadas
Lançando exceções
Utilizando um bloco finally
Referência rápida do Capítulo 6
Parte II Entendendo a linguagem C#
7 - Criando e gerenciando classes e objetos
Entendendo a classificação
O objetivo do encapsulamento
Definindo e utilizando uma classe
Controlando a acessibilidade
Trabalhando com construtores
Sobrecarregando construtores
Entendendo dados e métodos static
Criando um campo compartilhado
Criando um campo static utilizando a palavra-chave const
Referência rápida do Capítulo 7
8 - Entendendo valores e referências
Copiando variáveis de tipo-valor e classes
Entendendo valores nulos e tipos nullable
Utilizando tipos nullable
Entendendo as propriedades dos tipos nullable
Utilizando parâmetros ref e out
Criando parâmetros ref
Criando parâmetros out
Como a memória do computador é organizada
Utilizando a pilha e o heap
A classe System.Object
Boxing
Unboxing
Casting de dados seguro
O operador is
O operador as
Referência rápida do Capítulo 8
9 - Criando tipos-valor com enumerações e estruturas
Trabalhando com enumerações
Declarando uma enumeração
Utilizando uma enumeração
Escolhendo valores literais de enumeração
Escolhendo o tipo subjacente de uma enumeração
Trabalhando com estruturas
Declarando uma estrutura
Entendendo as diferenças entre estrutura e classe
Declarando variáveis de estrutura
Entendendo a inicialização de estruturas
Copiando variáveis de estrutura
Referência rápida do Capítulo 9
10 - Utilizando arrays e coleções
O que é um array?
Declarando variáveis de array
Criando uma instância de array
Inicializando variáveis de array
Criando um array implicitamente tipado
Acessando um elemento individual de um array
Iterando por um array
Copiando arrays
O que são classes de coleção?
A classe de coleção ArrayList
A classe de coleção Queue
A classe de coleção Stack
A classe de coleção Hashtable
A classe de coleção SortedList
Utilizando inicializadores de coleção
Comparando arrays e coleções
Utilizando classes de coleção para jogar cartas
Referência rápida do Capítulo 10
11 - Entendendo arrays de parâmetros
Utilizando argumentos de arrays
Declarando um array params
Utilizando params object[ ]
O método Console.WriteLine
Utilizando um array params
Referência rápida do Capítulo 11
12 - Trabalhando com herança
O que é herança?
Utilizando a herança
Classes base e classes derivadas
Chamando construtores da classe base
Atribuindo classes
Declarando métodos new
Declarando métodos virtuais
Declarando métodos override
Entendendo o acesso protected
Entendendo métodos de extensão
Referência rápida do Capítulo 12
13 - Criando interfaces e definindo classes abstratas
Entendendo interfaces
Sintaxe da interface
Restrições de interface
Implementando uma interface
Referenciando uma classe por meio de sua interface
Trabalhando com múltiplas interfaces
Classes abstratas
Métodos abstratos
Classes seladas
Métodos selados
Implementando uma estrutura extensível
Resumindo as combinações de palavras-chave
Referência rápida do Capítulo 13
14 - Utilizando a coleta de lixo e o gerenciamento de recursos
O tempo de vida de um objeto
Escrevendo destrutores
Por que utilizar o coletor de lixo?
Como funciona o coletor de lixo?
Recomendações
Gerenciamento de recursos
Métodos de descarte
Descarte seguro quanto a exceções
A instrução using
Chamando o método Dispose a partir de um destrutor
Criando um código seguro quanto a exceções
Referência rápida do Capítulo 14
Parte III Criando componentes
15 - Implementando propriedades para acessar campos
Implementando encapsulamento com métodos
O que são propriedades?
Utilizando propriedades
Propriedades somente-leitura
Propriedades somente-gravação
Acessibilidade de propriedades
Entendendo as restrições de uma propriedade
Utilizando as propriedades adequadamente
Declarando propriedades de interface
Utilizando propriedades em um aplicativo Windows
Gerando propriedades automáticas
Inicializando objetos com propriedades
Referência rápida do Capítulo 15
16 - Utilizando indexadores
O que é um indexador?
Um exemplo que não utiliza indexadores
Operadores de bit a bit e de deslocamento
O mesmo exemplo utilizando indexadores
Entendendo os métodos de acesso do indexador
Comparando indexadores e arrays
Propriedades, arrays e indexadores
Indexadores em interfaces
Utilizando indexadores em um aplicativo Windows
Referência rápida do Capítulo 16
17 - Interrompendo o fluxo do programa e tratando eventos
Declarando e utilizando delegates
O cenário da fábrica automatizada
Implementando a fábrica sem utilizar delegates
Implementando a fábrica utilizando um delegate
Utilizando delegates
Expressões lambda e delegates
Criando um método adaptador
Utilizando uma expressão lambda como um adaptador
A forma das expressões lambda
Ativando notificações por meio de eventos
Declarando um evento
Fazendo a inscrição em um evento
Cancelando a inscrição em um evento
Disparando um evento
Entendendo eventos de interface WPF
Utilizando eventos
Referência rápida do Capítulo 17
18 - Apresentando genéricos
O problema com objects
A solução dos genéricos
Classes genéricas versus generalizadas
Genéricos e restrições
Criando uma classe genérica
A teoria das árvores binárias
Construindo uma classe de árvore binária com genéricos
Criando um método genérico
Definindo um método genérico para criar uma árvore binária
Referência rápida do Capítulo 18
19 - Enumerando coleções
Enumerando os elementos em uma coleção
Implementando manualmente um enumerador
Implementando a interface IEnumerable
Implemente um enumerador utilizando um iterador
Um iterador simples
Definindo um enumerador para a classe Tree
utilizando um iterador
Referência rápida do Capítulo 19
20 - Consultando dados na memória utilizando expressões de consulta
O que é a Language Integrated Query (LINQ)?
Utilizando a LINQ em um aplicativo C#
Selecionando dados
Filtrando dados
Ordenando, agrupando e agregando dados
Junção de dados
Utilizando operadores de consulta
Consultando dados em objetos Tree
LINQ e avaliação postergada
Referência rápida do Capítulo 20
21 - Sobrecarga de operadores
Entendendo os operadores
Restrições dos operadores
Operadores sobrecarregados
Criando operadores simétricos
Entendendo a atribuição composta
Declarando operadores de incremento e decremento
Definindo pares de operadores
Implementando um operador
Entendendo os operadores de conversão
Fornecendo conversões predefinidas
Implementando operadores de conversão definidos pelo usuário
Criando operadores simétricos, uma retomada do assunto
Adicionando um operador de conversão implícita
Referência rápida do Capítulo 21
Parte IV Trabalhando com Aplicativos Windows
22 - Apresentando o Windows Presentation Foundation
Criando um aplicativo WPF
Criando um aplicativo Windows Presentation Foundation
Adicionando controles ao formulário
Utilizando controles WPF
Alterando as propriedades dinamicamente
Tratando eventos em um formulário WPF
Processando eventos no Windows Forms
Referência rápida do Capítulo 22
23 - Trabalhando com menus e caixas de diálogo
Diretrizes e estilos de menu
Menus e eventos de menu
Criando um menu
Tratando eventos de menu
Menus de atalho
Criando menus de atalho
Caixas de diálogo comuns do Windows
Utilizando a classe SaveFileDialog
Referência rápida do Capítulo 23
24 - Realizando validações
Validando os dados
Estratégias para validar a entrada do usuário
Um exemplo – manutenção de informações de clientes
Realizando a validação com vinculação de dados
Alterando o ponto em que a validação ocorre
Referência rápida do Capítulo 24
Parte V Gerenciando dados
25 - Consultando informações em um banco de dados
Consultando um banco de dados por meio do ADO.NET
O banco de dados Northwind
Criando o banco de dados
Utilizando ADO.NET para consultar informações de pedidos
Consultando um banco de dados com DLINQ
Definindo uma classe de entidade
Criando e executando uma consulta DLINQ
Busca adiada e busca imediata
Fazendo junção de tabelas e criando relacionamentos
Busca adiada e imediata, uma retomada do assunto
Definindo uma classe DataContext personalizada
Utilizando a DLINQ para consultar informações de pedidos
Referência rápida do Capítulo 25
26 - Exibindo e editando dados utilizando vinculação de dados
Utilizando vinculação de dados com DLINQ
Utilizando a DLINQ para modificar dados
Atualizando dados existentes
Tratando atualizações conflitantes
Adicionando e excluindo dados
Referência rápida do Capítulo 26
Parte VI Criando aplicativos Web
27 - Apresentando o ASP.NET
Entendendo a Internet como uma infra-estrutura
Entendendo as solicitações e respostas do servidor Web
Gerenciando o estado
Entendendo o ASP.NET
Criando aplicativos Web com o ASP.NET
Criando um aplicativo ASP.NET
Entendendo os controles de servidor
Criando e utilizando um tema
Definindo um tema
Aplicando um tema
Referência rápida do Capítulo 27
28 - Entendendo os controles de validação dos formulários Web
Comparando as validações no servidor e no cliente
Validando dados no servidor Web
Validando dados no navegador Web
Implementando uma validação no cliente
Referência rápida do Capítulo 28
29 - Protegendo um site Web e acessando dados com formulários Web
Gerenciando a segurança
Entendendo a segurança baseada em formulários
Implementando a segurança baseada em formulários
Consultando e excluindo dados
Entendendo o controle GridView dos formulários Web
Exibindo as informações sobre o cliente e o histórico de pedidos
Paginando os dados
Editando os dados
Atualizando as linhas por meio de um controle GridView
Navegando entre formulários
Referência rápida do Capítulo 29
30 - Criando e utilizando um Web service
O que é um Web service?
O papel do SOAP
O que é a linguagem de descrição de Web services?
Requisitos não-funcionais dos Web services
O papel do Windows Communication Foundation
Construindo um Web service
Criando o Web service ProductsService
Web services, clientes e proxies
Falando SOAP: a maneira difícil
Falando SOAP: a maneira fácil
Consumindo o Web service ProductsService
Referência rápida do Capítulo 30
Índice
Parte I - Apresentando o Microsoft Visual C# e o Microsoft Visual Studio 2
1 - Bem-vindo ao C#
Começando a programar com o ambiente do Visual Studio 2
Escrevendo seu primeiro programa
Utilizando namespaces
Criando um aplicativo gráfico
Referência rápida do Capítulo 1
2 - Trabalhando com variáveis, operadores e expressões
Entendendo instruções
Utilizando identificadores
Identificando palavras-chave
Utilizando variáveis
Nomeando variáveis
Declarando variáveis
Trabalhando com tipos de dados primitivos
Exibindo valores de tipos de dados primitivos
Utilizando operadores aritméticos
Operadores e tipos
Examinando operadores aritméticos
Controlando a precedência
Utilizando a associatividade para avaliar expressões
A associatividade e o operador de atribuição
Incrementando e decrementando variáveis
Prefixo e sufixo
Declarando variáveis locais implicitamente tipadas
Referência rápida do Capítulo 2
3 - Escrevendo métodos e aplicando escopo
Declarando métodos
Especificando a sintaxe de declaração de método
Escrevendo instruções return
Chamando métodos
Especificando a sintaxe de chamada de método
Aplicando escopo
Definindo o escopo local
Definindo o escopo de classe
Sobrecarregando métodos
Escrevendo métodos
Referência rápida do Capítulo 3
4 - Utilizando instruções de decisão
Declarando variáveis booleanas
Utilizando operadores booleanos
Entendendo operadores de igualdade e relacionais
Entendendo operadores lógicos condicionais
Resumindo a precedência e a associatividade dos operadores
Utilizando instruções if para tomar decisões
Entendendo a sintaxe da instrução if
Utilizando blocos para agrupar instruções
Instruções if em cascata
Utilizando instruções switch
Entendendo a sintaxe da instrução switch
Seguindo as regras da instrução switch
Referência rápida do Capítulo 4
5 - Utilizando atribuição composta e instruções de iteração
Utilizando operadores de atribuição composta
Escrevendo instruções while
Escrevendo instruções for
Entendendo o escopo da instrução for
Escrevendo instruções do
Referência rápida do Capítulo 5
6 - Gerenciando erros e exceções
Lidando com erros
Testando o código e capturando as exceções
Tratando uma exceção
Utilizando múltiplas rotinas de tratamento catch
Capturando múltiplas exceções
Utilizando aritmética verificada e não-verificada de números inteiros
Escrevendo instruções verificadas
Escrevendo expressões verificadas
Lançando exceções
Utilizando um bloco finally
Referência rápida do Capítulo 6
Parte II Entendendo a linguagem C#
7 - Criando e gerenciando classes e objetos
Entendendo a classificação
O objetivo do encapsulamento
Definindo e utilizando uma classe
Controlando a acessibilidade
Trabalhando com construtores
Sobrecarregando construtores
Entendendo dados e métodos static
Criando um campo compartilhado
Criando um campo static utilizando a palavra-chave const
Referência rápida do Capítulo 7
8 - Entendendo valores e referências
Copiando variáveis de tipo-valor e classes
Entendendo valores nulos e tipos nullable
Utilizando tipos nullable
Entendendo as propriedades dos tipos nullable
Utilizando parâmetros ref e out
Criando parâmetros ref
Criando parâmetros out
Como a memória do computador é organizada
Utilizando a pilha e o heap
A classe System.Object
Boxing
Unboxing
Casting de dados seguro
O operador is
O operador as
Referência rápida do Capítulo 8
9 - Criando tipos-valor com enumerações e estruturas
Trabalhando com enumerações
Declarando uma enumeração
Utilizando uma enumeração
Escolhendo valores literais de enumeração
Escolhendo o tipo subjacente de uma enumeração
Trabalhando com estruturas
Declarando uma estrutura
Entendendo as diferenças entre estrutura e classe
Declarando variáveis de estrutura
Entendendo a inicialização de estruturas
Copiando variáveis de estrutura
Referência rápida do Capítulo 9
10 - Utilizando arrays e coleções
O que é um array?
Declarando variáveis de array
Criando uma instância de array
Inicializando variáveis de array
Criando um array implicitamente tipado
Acessando um elemento individual de um array
Iterando por um array
Copiando arrays
O que são classes de coleção?
A classe de coleção ArrayList
A classe de coleção Queue
A classe de coleção Stack
A classe de coleção Hashtable
A classe de coleção SortedList
Utilizando inicializadores de coleção
Comparando arrays e coleções
Utilizando classes de coleção para jogar cartas
Referência rápida do Capítulo 10
11 - Entendendo arrays de parâmetros
Utilizando argumentos de arrays
Declarando um array params
Utilizando params object[ ]
O método Console.WriteLine
Utilizando um array params
Referência rápida do Capítulo 11
12 - Trabalhando com herança
O que é herança?
Utilizando a herança
Classes base e classes derivadas
Chamando construtores da classe base
Atribuindo classes
Declarando métodos new
Declarando métodos virtuais
Declarando métodos override
Entendendo o acesso protected
Entendendo métodos de extensão
Referência rápida do Capítulo 12
13 - Criando interfaces e definindo classes abstratas
Entendendo interfaces
Sintaxe da interface
Restrições de interface
Implementando uma interface
Referenciando uma classe por meio de sua interface
Trabalhando com múltiplas interfaces
Classes abstratas
Métodos abstratos
Classes seladas
Métodos selados
Implementando uma estrutura extensível
Resumindo as combinações de palavras-chave
Referência rápida do Capítulo 13
14 - Utilizando a coleta de lixo e o gerenciamento de recursos
O tempo de vida de um objeto
Escrevendo destrutores
Por que utilizar o coletor de lixo?
Como funciona o coletor de lixo?
Recomendações
Gerenciamento de recursos
Métodos de descarte
Descarte seguro quanto a exceções
A instrução using
Chamando o método Dispose a partir de um destrutor
Criando um código seguro quanto a exceções
Referência rápida do Capítulo 14
Parte III Criando componentes
15 - Implementando propriedades para acessar campos
Implementando encapsulamento com métodos
O que são propriedades?
Utilizando propriedades
Propriedades somente-leitura
Propriedades somente-gravação
Acessibilidade de propriedades
Entendendo as restrições de uma propriedade
Utilizando as propriedades adequadamente
Declarando propriedades de interface
Utilizando propriedades em um aplicativo Windows
Gerando propriedades automáticas
Inicializando objetos com propriedades
Referência rápida do Capítulo 15
16 - Utilizando indexadores
O que é um indexador?
Um exemplo que não utiliza indexadores
Operadores de bit a bit e de deslocamento
O mesmo exemplo utilizando indexadores
Entendendo os métodos de acesso do indexador
Comparando indexadores e arrays
Propriedades, arrays e indexadores
Indexadores em interfaces
Utilizando indexadores em um aplicativo Windows
Referência rápida do Capítulo 16
17 - Interrompendo o fluxo do programa e tratando eventos
Declarando e utilizando delegates
O cenário da fábrica automatizada
Implementando a fábrica sem utilizar delegates
Implementando a fábrica utilizando um delegate
Utilizando delegates
Expressões lambda e delegates
Criando um método adaptador
Utilizando uma expressão lambda como um adaptador
A forma das expressões lambda
Ativando notificações por meio de eventos
Declarando um evento
Fazendo a inscrição em um evento
Cancelando a inscrição em um evento
Disparando um evento
Entendendo eventos de interface WPF
Utilizando eventos
Referência rápida do Capítulo 17
18 - Apresentando genéricos
O problema com objects
A solução dos genéricos
Classes genéricas versus generalizadas
Genéricos e restrições
Criando uma classe genérica
A teoria das árvores binárias
Construindo uma classe de árvore binária com genéricos
Criando um método genérico
Definindo um método genérico para criar uma árvore binária
Referência rápida do Capítulo 18
19 - Enumerando coleções
Enumerando os elementos em uma coleção
Implementando manualmente um enumerador
Implementando a interface IEnumerable
Implemente um enumerador utilizando um iterador
Um iterador simples
Definindo um enumerador para a classe Tree
utilizando um iterador
Referência rápida do Capítulo 19
20 - Consultando dados na memória utilizando expressões de consulta
O que é a Language Integrated Query (LINQ)?
Utilizando a LINQ em um aplicativo C#
Selecionando dados
Filtrando dados
Ordenando, agrupando e agregando dados
Junção de dados
Utilizando operadores de consulta
Consultando dados em objetos Tree
LINQ e avaliação postergada
Referência rápida do Capítulo 20
21 - Sobrecarga de operadores
Entendendo os operadores
Restrições dos operadores
Operadores sobrecarregados
Criando operadores simétricos
Entendendo a atribuição composta
Declarando operadores de incremento e decremento
Definindo pares de operadores
Implementando um operador
Entendendo os operadores de conversão
Fornecendo conversões predefinidas
Implementando operadores de conversão definidos pelo usuário
Criando operadores simétricos, uma retomada do assunto
Adicionando um operador de conversão implícita
Referência rápida do Capítulo 21
Parte IV Trabalhando com Aplicativos Windows
22 - Apresentando o Windows Presentation Foundation
Criando um aplicativo WPF
Criando um aplicativo Windows Presentation Foundation
Adicionando controles ao formulário
Utilizando controles WPF
Alterando as propriedades dinamicamente
Tratando eventos em um formulário WPF
Processando eventos no Windows Forms
Referência rápida do Capítulo 22
23 - Trabalhando com menus e caixas de diálogo
Diretrizes e estilos de menu
Menus e eventos de menu
Criando um menu
Tratando eventos de menu
Menus de atalho
Criando menus de atalho
Caixas de diálogo comuns do Windows
Utilizando a classe SaveFileDialog
Referência rápida do Capítulo 23
24 - Realizando validações
Validando os dados
Estratégias para validar a entrada do usuário
Um exemplo – manutenção de informações de clientes
Realizando a validação com vinculação de dados
Alterando o ponto em que a validação ocorre
Referência rápida do Capítulo 24
Parte V Gerenciando dados
25 - Consultando informações em um banco de dados
Consultando um banco de dados por meio do ADO.NET
O banco de dados Northwind
Criando o banco de dados
Utilizando ADO.NET para consultar informações de pedidos
Consultando um banco de dados com DLINQ
Definindo uma classe de entidade
Criando e executando uma consulta DLINQ
Busca adiada e busca imediata
Fazendo junção de tabelas e criando relacionamentos
Busca adiada e imediata, uma retomada do assunto
Definindo uma classe DataContext personalizada
Utilizando a DLINQ para consultar informações de pedidos
Referência rápida do Capítulo 25
26 - Exibindo e editando dados utilizando vinculação de dados
Utilizando vinculação de dados com DLINQ
Utilizando a DLINQ para modificar dados
Atualizando dados existentes
Tratando atualizações conflitantes
Adicionando e excluindo dados
Referência rápida do Capítulo 26
Parte VI Criando aplicativos Web
27 - Apresentando o ASP.NET
Entendendo a Internet como uma infra-estrutura
Entendendo as solicitações e respostas do servidor Web
Gerenciando o estado
Entendendo o ASP.NET
Criando aplicativos Web com o ASP.NET
Criando um aplicativo ASP.NET
Entendendo os controles de servidor
Criando e utilizando um tema
Definindo um tema
Aplicando um tema
Referência rápida do Capítulo 27
28 - Entendendo os controles de validação dos formulários Web
Comparando as validações no servidor e no cliente
Validando dados no servidor Web
Validando dados no navegador Web
Implementando uma validação no cliente
Referência rápida do Capítulo 28
29 - Protegendo um site Web e acessando dados com formulários Web
Gerenciando a segurança
Entendendo a segurança baseada em formulários
Implementando a segurança baseada em formulários
Consultando e excluindo dados
Entendendo o controle GridView dos formulários Web
Exibindo as informações sobre o cliente e o histórico de pedidos
Paginando os dados
Editando os dados
Atualizando as linhas por meio de um controle GridView
Navegando entre formulários
Referência rápida do Capítulo 29
30 - Criando e utilizando um Web service
O que é um Web service?
O papel do SOAP
O que é a linguagem de descrição de Web services?
Requisitos não-funcionais dos Web services
O papel do Windows Communication Foundation
Construindo um Web service
Criando o Web service ProductsService
Web services, clientes e proxies
Falando SOAP: a maneira difícil
Falando SOAP: a maneira fácil
Consumindo o Web service ProductsService
Referência rápida do Capítulo 30
Índice
Produtos Relacionados
Nuvem de Tags
555
Até R$10,00
c#
Dieta
Eletronica
igbt
Linux
lpi
microcontroladores
moodle
Petróleo
promo
Promoção
