C# 3.0 y LINQ: Aprende a Sacar Todo el Partido a la Última Versión de .NET, Octavio Hernandez Leal marzo 11, 2016 COMPUTACIÓN E INFORMÁTICA Y SISTEMAS No comments 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 .NETPDF | 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 Tweet Like It Google +
0 comentarios:
Publicar un comentario