![]()
![]() |
LINQ em Ação Fabrice Marguerie e outros 736 páginas - 1ª edição - 2009 ISBN: 9788573937640 - Formato: 16 x 23 |
Aplicações .NET são orientadas a objetos, mas os dados, não. Esta é a situação quando você está usando uma base de dados relacionais, XML e muitos outros armazenamentos de dados, e para cada um deles você precisa de uma solução programática separada. A Consulta Integrada à Linguagem da Microsoft, conhecida como o LINQ (da sigla em inglês) é um conjunto da Estrutura .NET e extensões de linguagem que oferece uma maneira única e simples de se consultar dados de qualquer forma diretamente do C# 3 e do VB.NET 9. Em cima dele, seu código de persistência recebe a mesma checagem de sintaxe durante a compilação, a mesma tipificação estática e IntelliSense disponíveis para o resto de seu código.
Escrito para desenvolvedores C# e VB de todos os níveis, LINQ em Ação mergulha rapidamente do conhecimento zero inicial, até uma profundidade substancial, no final. Nele, você irá explorar características-chave da linguagem, como expressões lambda, métodos de extensão e tipos anônimos de dados, que tornam o LINQ possível. Seguindo um exemplo funcional, o livro leva você através de técnicas centrais de consulta a objetos, bases de dados relacionais e XML. Você dominará os Operadores Padrão de Consulta juntamente com as rapidamente familiares expressões de consulta do LINQ, com a sintaxe no estilo SQL. Você também aprenderá a construir soluções LINQ personalizadas tais como a genial “LINQ para Amazon”. O que há por dentro:
- Completamente testado com a versão final do .NET 3.5
- Todos os exemplos de código em C# 3 e VB.NET 9
- LINQ para Objetos, LINQ para SQL, LINQ para XML e muito mais
- Como personalizar o LINQ especificamente para um domínio
PARTE 1 - INICIANDO-SE - 1
1 - APRESENTANDO O LINQ - 3
1.1 QUE É O LINQ? - 6
VISÃO GERAL - 6
O LINQ COMO UM CONJUNTO DE FERRAMENTAS - 8
O LINQ COMO EXTENSÕES DE LINGUAGEM - 10
1.2 POR QUE PRECISAMOS DO LINQ? - 12
PROBLEMAS COMUNS - 13
SOLUCIONANDO UMA INCONGRUÊNCIA DE PARADIGMA - 16
O LINQ PARA O SOCORRO - 23
1.3 OBJETIVOS DO DESENHO E ORIGENS DO LINQ - 25
OS OBJETIVOS DO PROJETO LINQ – 25
UM POUCO DE HISTÓRIA - 27
1.4 PRIMEIROS PASSOS COM O LINQ PARA OBJETOS - 30
DE QUE VOCÊ PRECISA PARA COMEÇAR - 30
HELLO LINQ PARA OBJETOS - 32
1.5 PRIMEIROS PASSOS COM O LINQ PARA XML - 37
POR QUE NÓS PRECISAMOS DO LINQ PARA XML - 38
HELLO LINQ PARA XML - 40
1.6 PRIMEIROS PASSOS COM O LINQ PARA SQL - 46
RESUMO DAS CARACTERÍSTICAS DO LINQ PARA SQL - 47
HELLO LINQ PARA SQL - 47
UMA OLHADA MAIS DE PERTO NO LINQ PARA SQL - 53
1.7 RESUMO - 53
2 - ACRÉSCIMOS ÀS LINGUAGENS C# E VB.NET - 55
2.1 DESCOBRINDO OS NOVOS ACRÉSCIMOS À LINGUAGEM - 57
GERANDO UMA LISTA DE PROCESSOS EM EXECUÇÃO - 58
AGRUPANDO RESULTADOS NUMA CLASSE - 60
2.2 VARIÁVEIS LOCAIS IMPLICITAMENTE TIPIFICADAS - 62
SINTAXE - 62
MELHORANDO O NOSSO EXEMPLO COM O USO DE VARIÁVEIS LOCAIS IMPLICITAMENTE TIPIFICADAS - 64
2.3 INICIALIZADORES DE OBJETOS E COLEÇÕES - 66
A NECESSIDADE DOS INICIALIZADORES DE OBJETOS - 66
INICIALIZADORES DE COLEÇÕES - 67
MELHORANDO O NOSSO EXEMPLO COM O USO DE UM INICIALIZADOR DE OBJETOS - 69
2.4 EXPRESSÕES LAMBDA - 71
UMA REVISÃO SOBRE DELEGADOS - 71
MÉTODOS ANÔNIMOS - 74
APRESENTANDO AS EXPRESSÕES LAMBDA - 74
2.5 MÉTODOS DE EXTENSÃO - 82
CRIANDO UM MÉTODO DE EXTENSÃO DE AMOSTRA - 82
MAIS EXEMPLOS USANDO OS OPERADORES PADRÃO DE CONSULTA DO LINQ - 87
OS MÉTODOS DE EXTENSÃO EM AÇÃO NO NOSSO EXEMPLO - 89
ADVERTÊNCIAS - 91
2.6 TIPOS ANÔNIMOS - 94
USANDO OS TIPOS ANÔNIMOS PARA AGRUPAR DADOS EM UM OBJETO - 95
TIPOS SEM NOME, MAS AINDA ASSIM TIPOS - 95
MELHORANDO O NOSSO EXEMPLO COM O USO DE TIPOS ANÔNIMOS - 97
LIMITAÇÕES - 98
2.7 RESUMO – 101
3 - ELEMENTOS DE CONSTRUÇÃO DO LINQ - 105
3.1 COMO O LINQ ESTENDE O .NET - 107
REVISÃO DAS EXTENSÕES DE LINGUAGEM - 107
OS ELEMENTOS-CHAVE DA BASE DO LINQ - 109
3.2 APRESENTANDO AS SEQÜÊNCIAS - 109
IENUMERABLE
REVISÃO SOBRE ITERADORES - 112
EXECUÇÃO RETARDADA DE CONSULTAS - 115
3.3 APRESENTANDO OS OPERADORES DE CONSULTA - 119
O QUE UM OPERADOR DE CONSULTA FAZ - 120
OS OPERADORES PADRÃO DE CONSULTA - 123
3.4 APRESENTANDO AS EXPRESSÕES DE CONSULTA - 125
O QUE É UMA EXPRESSÃO DE CONSULTA - 125
ESCREVENDO EXPRESSÕES DE CONSULTA - 126
COMO OS OPERADORES PADRÃO DE CONSULTA SE RELACIONAM COM AS EXPRESSÕES DE CONSULTA - 129
LIMITAÇÕES - 131
3.5 APRESENTANDO AS ÁRVORES DE EXPRESSÕES - 134
O RETORNO DAS EXPRESSÕES LAMBDA - 134
O QUE SÃO AS ÁRVORES DE EXPRESSÕES? - 135
IQUERYABLE, EXECUÇÃO RETARDADA DE CONSULTAS, O RETORNO - 139
3.6 DLLS E ESPAÇO DE NOMES DO LINQ - 141
3.7 RESUMO – 144
PARTE 2 - CONSULTANDO OBJETOS NA MEMÓRIA - 145
4 - FAMILIARIZANDO-SE COM O LINQ PARA OBJETOS - 147
4.1 APRESENTANDO O NOSSO EXEMPLO FUNCIONAL - 149
OBJETIVOS - 149
CARACTERÍSTICAS - 150
AS ENTIDADES FUNCIONAIS - 151
ESQUEMA DA BASE DE DADOS - 152
DADOS DE AMOSTRA - 153
4.2 USANDO O LINQ COM COLEÇÕES EM MEMÓRIA - 155
O QUE PODEMOS CONSULTAR? - 155
OPERAÇÕES SUPORTADAS - 161
4.3 USANDO O LINQ COM O ASP.NET E O WINDOWS FORM - 162
LIGAÇÃO DE DADOS A APLICAÇÕES WEB - 163
LIGAÇÃO DE DADOS PARA APLICAÇÕES WINDOWS FORMS - 171
4.4 FOCANDO OS PRINCIPAIS OPERADORES PADRÃO DE CONSULTA - 177
WHERE, O OPERADOR DE RESTRIÇÃO - 179
USANDO OPERADORES DE PROJEÇÃO - 180
USANDO DISTINCT 184
USANDO OS OPERADORES DE CONVERSÃO - 186
USANDO OS OPERADORES DE AGREGAÇÃO - 188
4.5 CRIANDO VISUALIZAÇÕES DE UM GRAFO OBJETO EM MEMÓRIA - 189
ORDENANDO - 189
CONSULTAS ANINHADAS - 191
AGRUPAMENTO - 194
USANDO JUNÇÕES - 196
PARTICIONAMENTO - 202
4.6 RESUMO - 208
5 - ALÉM DAS CONSULTAS BÁSICAS EM MEMÓRIA - 209
5.1 CENÁRIOS COMUNS - 211
CONSULTANDO COLEÇÕES NÃO GENÉRICAS - 212
AGRUPAMENTO POR MÚLTIPLOS CRITÉRIOS - 215
CONSULTAS DINÂMICAS - 219
LINQ PARA ARQUIVOS DE TEXTO - 233
5.2 PADRÕES DE DESENHO - 236
O PADRÃO DA CONSTRUÇÃO FUNCIONAL - 237
O PADRÃO FOREACH - 241
5.3 CONSIDERAÇÕES SOBRE DESEMPENHO - 244
FAVOREÇA UMA ABORDAGEM DE FLUXO - 244
TENHA CUIDADO COM EXECUÇÕES IMEDIATAS - 247
O LINQ PARA OBJETOS VAI PREJUDICAR O DESEMPENHO DO MEU CÓDIGO? - 250
PARA TER UMA IDÉIA DO CUSTO EXTRA DO LINQ PARA OBJETOS - 255
DESEMPENHO VERSUS CONCISÃO: UM DILEMA CRUEL? - 259
5.4 RESUMO – 261
PARTE 3 - CONSULTANDO DADOS RELACIONAIS – 263
6 - INICIANDO-SE COM O LINQ PARA SQL – 265
6.1 PULE DENTRO DO LINQ PARA SQL - 269
DEFININDO O MAPEAMENTO DO OBJETO - 271
CONFIGURANDO O DATACONTEXT - 274
6.2 LENDO DADOS COM O LINQ PARA SQL - 276
6.3 REFINANDO NOSSAS CONSULTAS - 281
FILTRAGEM - 281
ORDENANDO E AGRUPANDO - 284
AGREGAÇÃO - 286
JUNÇÃO - 288
6.4 TRABALHANDO COM ÁRVORES DE OBJETOS - 292
6.5 QUANDO É QUE MEUS DADOS SÃO CARREGADOS E POR QUE ISTO INTERESSA? - 297
CARREGAMENTO RELAXADO - 297
CARREGANDO IMEDIATAMENTE OS DETALHES - 300
6.6 ATUALIZANDO OS DADOS - 303
6.7 RESUMO – 306
7 - ESPIANDO OS BASTIDORES DO LINQ PARA SQL - 307
7.1 MAPEANDO OBJETOS PARA DADOS RELACIONAIS - 309
USANDO ATRIBUTOS INLINE - 310
MAPEAMENTOS COM ARQUIVOS XML EXTERNOS - 320
USANDO A FERRAMENTA SQLMETAL - 322
O LINQ TO SQL DESIGNER - 326
7.2 TRADUZINDO EXPRESSÕES DE CONSULTA PARA SQL - 329
IQUERYABLE - 330
ÁRVORES DE EXPRESSÕES - 332
7.3 O CICLO DE VIDA COMPLETO - 336
ACOMPANHANDO AS MUDANÇAS - 338
ENVIANDO AS ALTERAÇÕES - 341
TRABALHANDO COM DADOS DESCONECTADOS - 345
7.4 RESUMO – 348
8 - CARACTERÍSTICAS AVANÇADAS DO LINQ PARA SQL – 351
8.1 TRATANDO AS ALTERAÇÕES SIMULTÂNEAS - 353
CONCORRÊNCIA PESSIMISTA - 354
CONCORRÊNCIA OTIMISTA - 355
TRATANDO AS EXCEÇÕES DE CONCORRÊNCIA - 359
RESOLVENDO CONFLITOS COM TRANSAÇÕES - 363
8.2 CAPACIDADES AVANÇADAS DE BASES DE DADOS - 366
PASSAGEM DE SQL: RETORNANDO OBJETOS DE CONSULTAS SQL - 367
TRABALHANDO COM PROCEDIMENTOS ARMAZENADOS - 369
FUNÇÕES DEFINIDAS PELO USUÁRIO - 381
8.3 MELHORANDO O ENLACE DO NEGÓCIO - 386
CONSULTAS COMPILADAS - 386
CLASSES PARCIAIS PARA LÓGICAS FUNCIONAIS PERSONALIZADAS - 389
TIRANDO VANTAGEM DOS MÉTODOS PARCIAIS - 392
USANDO HERANÇA DE OBJETOS - 395
8.4 UM BREVE EXAME DO LINQ PARA ENTIDADES - 402
8.5 RESUMO - 405
PARTE 4 - MANIPULANDO XML - 409
9 - APRESENTANDO O LINQ PARA XML - 411
9.1 O QUE É UMA API PARA XML - 414
9.2 POR QUE PRECISAMOS DE UMA OUTRA API DE PROGRAMAÇÃO PARA XML? - 415
9.3 PRINCÍPIOS DO DESENHO DO LINQ PARA XML - 417
CONCEITO-CHAVE: CONSTRUÇÃO FUNCIONAL - 419
CONCEITO-CHAVE: CRIAÇÃO DE XML INDEPENDENTE DO CONTEXTO - 420
CONCEITO-CHAVE: NOMES SIMPLIFICADOS - 421
9.4 HIERARQUIA DE CLASSES DO LINQ PARA XML - 425
9.5 TRABALHANDO COM XML USANDO O LINQ - 429
CARREGANDO XML - 430
ANALISANDO XML - 432
CRIANDO XML - 434
CRIANDO XML COM OS LITERAIS XML DO VISUAL BASIC - 440
CRIANDO DOCUMENTOS XML - 443
ADICIONANDO CONTEÚDO AO XML - 448
REMOVENDO CONTEÚDO DO XML - 450
ATUALIZANDO CONTEÚDOS XML - 452
TRABALHANDO COM ATRIBUTOS - 455
SALVANDO XML - 457
9.6 RESUMO - 458
10 - CONSULTA E TRANSFORMAÇÃO DE XML COM O LINQ PARA XML – 459
10.1 MÉTODOS AXIAIS DO LINQ PARA XML - 462
ELEMENT - 465
ATTRIBUTE - 466
ELEMENTS - 468
DESCENDANTS - 469
ANCESTORS - 473
ELEMENTSAFTERSELF, NODESAFTERSELF, ELEMENTSBEFORESELF E NODESBEFORESELF - 475
PROPRIEDADES AXIAIS DE XML DO VISUAL BASIC - 476
10.2 OPERADORES PADRÃO DE CONSULTA 481
PROJETANDO COM SELECT - 484
FILTRANDO COM WHERE - 486
ORDENANDO E AGRUPANDO - 488
10.3 CONSULTANDO OBJETOS DO LINQ PARA XML COM O XPATH - 493
10.4 TRANSFORMANDO XML 495
TRANSFORMAÇÕES DO LINQ PARA XML - 496
TRANSFORMANDO OBJETOS LINQ PARA XML COM O XSLT - 500
10.5 RESUMO 502
11 - CENÁRIOS COMUNS DO LINQ PARA XML 505
11.1 CONSTRUINDO OBJETOS A PARTIR DE XML - 508
OBJETIVO - 508
IMPLEMENTAÇÃO - 510
11.2 CRIANDO XML A PARTIR DE GRAFOS DE OBJETOS - 515
OBJETIVO - 515
IMPLEMENTAÇÃO - 516
11.3 CRIANDO XML COM DADOS DE UMA BASE DE DADOS - 523
OBJETIVO - 523
IMPLEMENTAÇÃO - 526
11.4 FILTRANDO E MISTURANDO DADOS DE UMA BASE DE DADOS COM DADOS DE XML - 533
OBJETIVO - 533
IMPLEMENTAÇÃO - 535
11.5 LENDO XML E ATUALIZANDO UMA BASE DE DADOS - 541
OBJETIVO - 542
IMPLEMENTAÇÃO - 543
11.6 TRANSFORMANDO ARQUIVOS DE TEXTO EM XML - 562
OBJETIVO - 563
IMPLEMENTAÇÃO - 564
11.7 RESUMO - 567
PARTE 5 - LINQANDO TUDO EM CONJUNTO - 569
12 - ESTENDENDO O LINQ - 571
12.1 DESCOBRINDO OS MECANISMOS DE EXTENSÃO DO LINQ - 574
COMO OS ASPECTOS DO LINQ SÃO IMPLEMENTAÇÕES DO LINQ - 575
O QUE PODE SER FEITO COM EXTENSÕES PERSONALIZADAS DO LINQ - 577
12.2 CRIANDO OPERADORES PERSONALIZADOS DE CONSULTA - 579
MELHORANDO OS OPERADORES PADRÃO DE CONSULTA - 580
OPERADORES DE CONSULTA UTILITÁRIOS OU ESPECÍFICOS DE DOMÍNIO 583
12.3 IMPLEMENTAÇÕES PERSONALIZADAS DOS OPERADORES BÁSICOS DE CONSULTA - 590
REVISÃO DO MECANISMO DE TRADUÇÃO DE CONSULTAS - 591
ESPECIFICAÇÃO DO PADRÃO DE EXPRESSÕES DE CONSULTA - 592
EXEMPLO 1: TRILHANDO A EXECUÇÃO DOS OPERADORES PADRÃO DE CONSULTA - 595
LIMITAÇÃO: COLISÃO DE EXPRESSÕES DE CONSULTA - 597
EXEMPLO 2: OPERADORES NÃO GENÉRICOS, ESPECÍFICOS DE DOMÍNIO - 600
EXEMPLO 3: OPERADOR NÃO DE SEQÜÊNCIA - 604
12.4 CONSULTANDO UM SERVIÇO WEB: LINQ PARA AMAZON - 606
APRESENTANDO O LINQ PARA AMAZON - 607
EXIGÊNCIAS - 609
IMPLEMENTAÇÃO - 611
12.5 IQUERYABLE E IQUERYPROVIDER: EDIÇÃO AVANÇADA DO LINQ PARA AMAZON - 621
AS INTERFACES IQUERYABLE E IQUERYPROVIDER - 622
IMPLEMENTAÇÃO - 627
O QUE ACONTECE, EXATAMENTE - 629
12.6 RESUMO - 631
13 - LINQ EM TODAS AS CAMADAS - 633
13.1 VISÃO GERAL DA APLICAÇÃO LINQBOOKS - 635
CARACTERÍSTICAS - 363
VISÃO GERAL DA UI - 363
O MODELO DE DADOS - 639
13.2 O LINQ PARA SQL E A CAMADA DE ACESSO A DADOS - 641
REVISÃO DA ARQUITETURA TRADICIONAL DE 3 PONTOS - 641
PRECISAMOS DE UMA CAMADA SEPARADA DE ACESSO A DADOS, OU O LINQ PARA SQL É SUFICIENTE? - 642
AMOSTRA DE USOS DO LINQ PARA SQL NO LINQBOOKS - 651
13.3 O USO DO LINQ PARA XML - 660
IMPORTANDO DADOS DA AMAZON - 660
GERANDO ALIMENTAÇÕES RSS - 662
13.4 O USO DO LINQ PARA DATASET - 664
13.5 USANDO O LINQ PARA OBJETOS - 668
13.6 EXTENSIBILIDADE - 668
OPERADORES PERSONALIZADOS DE CONSULTA - 669
CRIANDO E USANDO UM PROVEDOR PERSONALIZADO DO LINQ - 670
13.7 UMA OLHADA NO FUTURO - 671
ASPECTOS PERSONALIZADOS DO LINQ - 671
LINQ PARA XSD, O LINQ PARA XML TIPIFICADO - 673
PLINQ: O LINQ ENCONTRA A COMPUTAÇÃO EM PARALELO - 674
LINQ PARA ENTIDADES, UMA INTERFACE DO LINQ PARA O ADO.NET ENTITY FRAMEWORK - 675
13.8 RESUMO - 675
APÊNDICE: OS OPERADORES PADRÃO DE CONSULTA - 677
RECURSOS - 687
ÍNDICE - 69
CAPÍTULO BÔNUS: TRABALHANDO COM O LINQ E DATASETS DISPONÍVEL ONLINE SOMENTE DE WWW.MANNING.COM/LINQINACTION
Fabrice Marguerie e outros - Fabrice Marguerie é arquiteto de software e desenvolvedor em Paris, França. Como personagem muito importante do C#, Fabrice tem trabalhado com o LINQ desde os primeiros protótipos.
Steve Eichert é arquiteto da Algorithmics, Inc. em Philadelphia, PA, Estados Unidos.
Jim Wooley é um importante componente do time do VB.NET, Mentor da Comunidade INETA na Georgia, Estados Unidos, e faz palestras com freqüência em eventos de usuários.
>> Site: http://
Active Perl Guia do Programador
Algoritmos e Pascal - 2a Edição Revista e Atualizada
CDO & MAPI Programação com Visual Basic
Como Criar Web Pages Rápidas e Eficientes usando PHP e MYSQL
Compreendendo SOA Corporativa
Desenvolvendo Aplicações em Kylix
Desenvolvendo Aplicações na Web com PHP 4.0 ( Contendo Documentação Oficial Zend Api)
Desenvolvendo para Wap com WML
Design Criativo com HTML 2 ( Um Guia Prático para Design na Web)
Desvendando WML Script
Dominando o Visual Inter Dev 6
Fundamentos de PHP
Gerenciamento de Dados com Perl
HTML 4 Guia de Referencia do Programador
Introdução à Programação: do Algoritmo às Linguagens Atuais - Inclui Java, PHP, ASP e Objeto Pascal
Kylix A Ferramenta Linux para Programadores
Lógica de Programação - Uma Abordagem em Pascal
MDA Destilada : Princípios da Arquitetura Orientada por Modelos
Microsoft Office SharePoint Server 2007
Modelagem Visual com Rational Rose 2000 e UML
Perl - Guia Completo
PHP 4 Guia do Programador
Professional XML
Programação CGI com Perl (O Reilly)
Programação em QT
Programando com JScript. NET
Programando Microsoft Access com VBA - Volume 3
Seagate Crystal Reports 8 Guia Completo ESGOTADO
VBA Guia de Referência
Web Development Usando o Visual HTML Editor
WEB Mobile - Desenvolva Sites para Dispositivos Móveis com Tecnologias de Uso Livre: WML, XHTML MP, WCSS, PHP e JSP
XHTML 1.0 Guia de Referencia para Desenvolvimento na Web
XML Programação com VB e ASP
XSLT Guia Pratico
XSLT interagindo com XML e HTML