11 de marzo de 2016

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


Links de Descarga
Userscloud: http://ouo.io/391sg
Mediafire:   http://www.linkbucks.com/nPZW

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

0 comentarios: