C# 3.0 y LINQ: Aprende a Sacar Todo el Partido a la Última Versión de .NET, Octavio Hernandez Leal



DATOS TÉCNICOS

C# 3.0 y LINQ: Aprende a Sacar Todo el Partido a la Última Versión de .NET
PDF | Spanish | 5.0 MB | 300 Páginas | ISBN: 849354891X | Octavio Hernandez Leal | Krasis Consulting (netbiblo) | 19 de octubre de 2007
DESCRIPCIÓN
Este libro se ha concebido como una presentación completa y práctica de las posibilidades que ofrece a los desarrolladores la tecnología LINQ (Language Integrated Query, Consultas integradas en el lenguaje).
La obra resultará de indudable interés para todos los programadores de C#, que desearán dominar lo antes posible estas características de C# y .NET que les permitirán aumentar notablemente su productividad y acceder a otras tecnologías como Entity Framework.

Para aquellos que aún sigan trabajando con la versión original de C# y no estuvieran al tanto de las principales novedades que aportó en su día la versión 2.0 del lenguaje, como los genéricos, el libro ofrece cuatro capítulos introductorios que repasan estos fundamentos.
Los tres siguientes capítulos describen los fundamentos de LINQ, su reflejo en el lenguaje C# y la librería básica en que éstos se apoyan (LINQ to Objects), así como los mecanismos previstos por la tecnología para garantizar su extensibilidad, que hace posible el desarrollo de proveedores LINQ personalizados.
Finalmente, la última parte del libro describe las posibilidades que ofrecen los principales proveedores de LINQ incorporados de serie en .NET: LINQ to XML (para el tratamiento de documentos XML), LINQ to DataSet (para el trabajo con conjuntos de datos en memoria) y LINQ to SQL (para la ejecución de consultas integradas contra bases de datos SQL), con ejemplos de cómo estas tecnologías pueden ayudarnos a alcanzar cotas de expresividad nunca antes vistas en la programación contra tan disímiles fuentes de datos. Al finalizar la lectura de este libro, tendrá una visión muy clara de todos los recursos que ponen a su alcance C# 3.0 y LINQ para que pueda desarrollar de una manera mucho más productiva soluciones más fáciles de codificar, comprender y mantener.

CONTENIDO

PRÓLOGO DEL AUTOR XV
AGRADECIMIENTOS XVIII
INTRODUCCIÓN XIX
PARTE 1: CONCEPTOS PRELIMINARES
MÉTODOS ANÓNIMOS 3
1.1. Breve repaso a los delegados y eventos en C# 1 3
1.2. Los métodos anónimos de C# 2.0 7
1.3. Paso de delegados anónimos como parámetros .. 8
1.4. acceso a las variables de ámbitos externos 9
GENÉRICOS 13
2.1. Cada oveja con su pareja .. 13
2.2. La expresión default(t) 21
2.3. La implementación de la genericidad en .Net .. 21
2.4. Colecciones genéricas 22
2.5. Más de un parámetro de tipo 24
2.6. Restricciones .. 26
2.7. Métodos genéricos 27
2.8. Delegados genéricos 29
2.9. Interfaces genéricas . 32
2.10. La interfaz Ienumerable 32
2.11. La semántica de foreach para Ienumerable 34
2.12. Ejemplo de implementación de Ienumerable 35
2.13. La interfaz ICollection 37
Iteradores . 39
3.1. Bloques de iteración .. 39
3.2. La secuencia del 1 al 1000,revisited . 40
3.3. Detalles internos 40
3.4. La generación bajo demanda durante la iteración . 41
3.5. Don’t go breaking my iteration .. 42
3.6. Mejorando la iteración . 43
3.7. Primos y enteros grandes .. 44
3.8. Un ejemplo más práctico .. 46
TIPOS VALOR ANULABLES . 49
4.1. Fundamentos .. 49
4.2. Implementación de los tipos valor anulables 51
4.3. Un detalle a tener en cuenta . 53
Parte 2: NOVEDADES EN C# 3.0
Novedades “básiCas” en C# 3.0 . 57
5.1. Declaración implícita del tipo de variables locales 57
5.1.1. Sobre la conveniencia de utilizar var . 59
5.2. Propiedades implementadas automáticamente 59
5.3. Inicializadores de objetos y colecciones .. 60
5.3.1. Inicializadores de objetos .. 60
5.3.2. Inicializadores de colecciones 62
5.4. tipos anónimos inmutables .. 63
5.5. arrays de tipo definido implícitamente . 65
5.6. métodos parciales . 65
5.6.1. Utilidad de los métodos parciales . 68
métodos extensores 69
6.1. Introducción 69
6.2. La sintaxis . 71
6.3. más ejemplos . 72
6.4. el acceso a los métodos extensores 75
6.5. recomendaciones de utilización .. 76
6.6. La razón de ser de los métodos extensores .. 77
exPresiones Lambda .. 79
7.1. Introducción 79
7.2. Las expresiones lambda como objetos de código .. 80
7.3. La sintaxis . 81
7.4. el tipo delegado Func 82
7.5. más ejemplos . 82
7.6. Uno más complejo 83
7.7. Parámetros por referencia 84
7.8. recursividad en expresiones lambda 85
7.9. Las expresiones lambda como objetos de datos . 86
árboLes de exPresiones 87
8.1. De expresiones lambda a árboles de expresiones . 87
8.1.1. Los árboles como representación de expresiones 88
8.2. La jerarquía de clases de expresiones 91
8.3. más ejemplos . 96
8.4. manipulación programática de árboles .. 98
8.5. Cálculo de derivadas .. 107
8.6. Y ahora, los deberes .. 112
PARTE 3: CONSULTAS INTEGRADAS EN C#
Fundamentos de Linq . 115
9.1. Presentación de LINQ .. 115
9.2. Las expresiones de consulta 117
9.3. reescritura de las expresiones de consulta . 119
9.4. La (no) semántica de los operadores de consulta . 121
9.5. resolución de llamadas a operadores 121
9.6. Los operadores de consulta estándar 123
9.7. el patrón de expresiones de consulta 124
9.8. La utilidad
ObjectDumper . 125
9.9. Ejemplos básicos . 126
9.10. De nuevo la ejecución diferida . 128
9.11. sintaxis de las expresiones de consulta 130
9.12. Productos cartesianos 131
9.12.1. Restricción de productos y optimización de consultas . 133
9.13. Encuentros 133
9.13.1. Particularidades sintácticas .. 134
9.13.2. Diferencia con el producto cartesiano restringido 135
9.14. Grupos . 135
9.15. La cláusula into 137
9.15.1. Continuaciones 137
9.15.2. encuentros agrupados .. 139
9.15.3. emulando encuentros externos con encuentros agrupados . 140
9.16. La cláusula let 142
9.17. algunos ejemplos prácticos.. 143
9.18. ¿Un nuevo modelo de escritura de bucles? .. 145
OPERADORES DE CONSULTA ESTÁNDAR 149
10.1. tabla de operadores de consulta estándar 149
10.2. Operadores básicos . 153
10.2.1. el operador Where() 153
10.2.2. el operador select() .. 154
10.2.3. Caso trivial de select() 155
10.2.4. el operador selectmany() . 156
10.2.5. Operadores de ordenación . 158
10.2.6. el operador groupBy() 160
10.2.7. el operador Join() . 162
10.2.8. el operador groupJoin() 164
10.3. Operadores de partición 166
10.3.1. el operador take() .. 167
10.3.2. el operador skip() 167
10.3.3. el operador takeWhile() 168
10.3.4. el operador skipWhile() . 168
10.4. Operadores conjuntuales 169
10.4.1. el operador Distinct() .. 169
10.4.2. el operador Union() .. 170
10.4.3. el operador Intersect() 171
10.4.4. el operador except() . 171
10.5. Operadores de conversión .. 172
10.5.1. el operador toarray() . 172
10.5.2. el operador toList() .. 172
10.5.3. el operador toDictionary() . 173
10.5.4. el operador toLookup() . 174
10.5.5. el operador asenumerable().. 175
10.5.6. el operador Cast() 176
10.5.7. el operador Oftype() 177
10.6. Operadores de generación de secuencias.. 177
10.6.1. el operador range() .. 178
10.6.2. el operador repeat().. 178
10.6.3. el operador empty() 178
10.7. Otros operadores de transformación de secuencias .. 179
10.7.1. el operador Concat() 179
10.7.2. el operador reverse() .. 179
10.8. Cuantificadores 180
10.8.1. el operador any() 180
10.8.2. el operador all() 180
10.8.3. el operador Contains() 181
10.8.4. el operador sequenceequal() . 181
10.9. Operadores de elementos 182
10.9.1. el operador First() .. 182
10.9.2. el operador FirstOrDefault() . 182
10.9.3. el operador Last() 183
10.9.4. el operador LastOrDefault().. 183
10.9.5. el operador single() 184
10.9.6. el operador singleOrDefault().. 184
10.9.7. el operador elementat() 185
10.9.8. el operador elementatOrDefault() . 185
10.9.9. el operador DefaultIfempty() 186
10.10. agregados . 186
10.10.1. Los operadores Count() y LongCount() . 186
10.10.2. Los operadores max() y min() . 187
10.10.3. el operador sum() 188
10.10.4. el operador average().. 189
10.10.5. el operador aggregate() . 190
EL PATRON LINQ .. 193
11.1. Acercando LINQ a nuevos tipos de datos 193
11.1.1. LINQ to Pipes . 195
11.2. El patrón de expresiones de consulta 198
11.3. Una implementación alternativa a LINQ to Objects .. 207
11.4. La interfaz IQueryable .. 212
11.4.1. Definiciones 213
11.4.2. Ejemplo básico . 214
11.4.3. Implementación de IQueryable . 217
11.5. Qué hace el proveedor de consultas . 218
11.5.1. el método CreateQuery() 219
11.5.2. el método execute() .. 221
11.6. Un ejemplo real: LINQ to tFs . 222
11.6.1. Presentación de las aPI de tFs .. 222
11.6.2. ejemplo básico de consulta . 224
11.6.3. Un proveedor básico . 224
11.6.4. La puerta de entrada a LINQ .. 225
11.6.5. La implementación de IQueryable .. 226
11.6.6. el proveedor de consultas 228
11.6.7. el mecanismo de enumeración . 229
PARTE 4 EXTENSIONES DE LINQ
Linq to xmL .. 235
12.1. Presentación 235
12.2. expresiones de consulta sobre documentos xmL . 241
12.3. Operadores de consulta específicos de LINQ to xmL 244
12.4. Búsquedas en documentos xmL . 245
12.4.1. Búsquedas xPath .. 246
12.5. Inserción, modificación y borrado de nodos 246
12.6. transformación de documentos .. 247
12.6.1. transformaciones xsLt .. 249
12.7. Conclusión 249
Linq to dataset .. 251
13.1. Presentación 251
13.2. Consultas contra Dataset tipados . 253
13.3. Consultas contra Dataset no tipados 254
13.4. De vuelta a un Datatable .. 256
13.5. actualizaciones . 256
13.6. el método asDataview() 257
13.7. Conclusión 258
Linq to SQL 259
14.1. Presentación 259
14.2. Contextos de datos y clases de entidad . 261
14.2.1. el código generado por el diseñador . 263
14.3. ejecución de consultas integradas .. 266
14.4. el mapeado objeto/relacional .. 274
14.4.1. gestión de la identidad .. 274
14.5. Propiedades de navegación 275
14.5.1. gestión de la carga de las propiedades de navegación 276
14.6. Consultas dinámicas 276
14.6.1. el método executeQuery() .. 277
14.6.2. La clase DynamicQueryable 278
14.7. actualización de datos .. 279
14.7.1. Utilización de transacciones 281
14.7.2. gestión de la concurrencia . 282
14.7.3. Personalización de las actualizaciones 284
14.8. ejecución de procedimientos y funciones .. 285
14.9. Combinando tecnologías . 286
14.10. La clase LinqDatasource . 286
14.11. Conclusión 288
ÍNDICE ANALÍTICO . 289


DESCARGAR

3 Response to "C# 3.0 y LINQ: Aprende a Sacar Todo el Partido a la Última Versión de .NET, Octavio Hernandez Leal"

  1. Anónimo 2 de diciembre de 2014, 10:25 a.m.
    Excellent, muy buen libro... gracias
  2. Anónimo 10 de febrero de 2015, 1:33 p.m.
    Podrian resubir el link por Favor. De antemano Gracias

Publicar un comentario