Programación Linq

Programación Linq

Pialorsi, Paolo
Russo, Marco

0,00 €(IVA inc.)
Agotado en el Editor

Crear aplicaciones de Internet resulta complejo. El principal problema es la diferencia que existe entre el lenguaje con el que se escriben las aplicaciones y el que se emplea para acceder a los datos. No obstante, la tecnología orientada a objetos ha conseguido integrar la información no nativa. En este contexto, un proyecto como LINQ (Lenguage Integrated Query), que añade a .NET Framework facilidades de consulta de propósito general aplicables a las bases de datos relacionales, XML y otras fuentes de información, reduce la complejidad de la programación. Este libro trata en profundidad las complejidades de LINQ. En lugar de atravesar las sintaxis del lenguaje para acceder a las fuentes de datos, los desarrolladores aprenden a escribir las preguntas de forma nativa en Visual C # o Visual Basic. Conozca la arquitectura de LINQ y las nuevas características de lenguaje, tanto en C # como en Visual Basic, y desarrolle ejemplos de código en ambos idiomas. INDICE: Agradecimientos Sobre los autores Prólogo Prefacio IntroducciónSobre este libro Requisitos del sistema Convenciones Código fuente Parte I. Fundamentos de LINQ 1. Introducción a LINQ ¿Qué es LINQ? ¿Por qué necesitamos LINQ? Cómo funciona LINQ Modelo relacional vs. modelo jerárquico/en red Manejo de XML Integración de lenguaje Programación declarativa Comprobación de tipos Transparencia en diferentes sistemas de tipos Implementaciones de LINQ LINQ to Objects LINQ to ADO.NET LINQ to XML Resumen 2. Fundamentos de la sintaxis de LINQ Consultas LINQ Sintaxis de consulta Sintaxis completa de consulta Comandos de consulta From Where Select Group eInto Orderby Join Let Comandos adicionales de Visual Basic 2008 Evaluación diferida de consultas y resolución de métodos de extensión Evaluacióndiferida de consultas Resolución de métodos de extensión Reflexiones finales sobre las consultas de LINQ Expresiones de consulta degenerada Manejo de excepciones Resumen 3. LINQ to Objects Operadores de consulta Where Operadores de proyección Select SelectMany Operadores de ordenamientoOrderBy y OrderByDescending ThenBy y ThenByDescending Reverse Operadores de agrupación Operadores de combinación Join GroupJoin Operadores de conjunto Distinct Union, Intersect y Except Operadores agregados Count y LongCount Sum Min y Max Average Aggregate Operadores agregados en Visual Basic 2008 Operadores de generación Range Repeat Empty Operadores de cuantificación Any All Contains Operadores de partición Take TakeWhile Skip y SkipWhile Operadores de elementos First FirstOrDefault Last y LastOrDefault Single SingleOrDefault ElementAt y ElementAtOrDefault DefaultIfEmpty Otros operadores Concat SequenceEqual Operadores de conversión AsEnumerable ToArray y ToList ToDictionary ToLookup OfType y Cast Resumen Parte II. LINQ a datos relacionales 4. LINQ to SQL: Ejecución de consultas Entidades en LINQ to SQL Mapeado externo Modelado de datos DataContext Clases entidad Herencia de entidades Identidad única de objetos Restricción de entidades Asociación entre entidades EntityRef EntitySet Consistencia de gráficosModelo relacional frente a Modelo jerárquico Ejecución de consultas sobre datos Proyecciones Procedimientos almacenados y funciones definidas por el usuario Procedimientos almacenados Funciones definidas por el usuario Consultas compiladas Diferentes enfoques para la ejecución de consultas sobredatos Consultas directas Carga diferida de entidades Carga diferida de propiedades Acceso a DataContext de sólo lectura Limitaciones de LINQ to SQL Operadores agregados Operadores de partición Operadores de elementos Métodos de cadena Métodos DateTime Funcionalidades de SQL no soportadas Pensando en LINQ to SQL IN/EXISTS Reducción de consultas SQL Combinación de código .NET y consultas SQL Resumen 5. LINQ to SQL: Gestión de datos Operaciones CRUD y CUD Actualización de entidades Actualizar y eliminar en cascada Estados de la entidad Sincronización de entidades Actualizaciones de la base de datos Anular SubmitChanges Personalización de Insert, Update y Delete Procedimientos almacenados Intercepción de Insert, Update y Delete Interacción con la base de datos Operaciones concurrentes Atributos de columna para el control de concurrencia Transacciones Excepciones DataContext Lectura de la base de datos Escritura en la base de datos Manejo de entidades Bases de datos y entidades Uso de atributos de entidades para mantener relaciones válidas Derivación de clases entidadAdjuntar entidades Serialización de entidades Attach Vinculación de metadatos Archivo XML externo de mapeado Creación de una base de datos a partir de entidades Creación de entidades desde una base de datos Diferencias entre sistemas .NET y SQL Resumen 6. Herramientas en LINQ to SQL Tipos de archivo DBML (Lenguaje de marcado de bases de datos) Código fuente C# yVisual Basic Archivo XML externo de mapeado Creación de archivos en LINQ to SQL Creamos un archivo DBML a partir de una base de datos existente Generación del código fuente de una entidad con mapeado basado en atributos Generación del código fuente de una entidad con un archivo XML externo de mapeado Creación de un archivo DBML desde cero SQLMetal Creación de un archivo DBML a partir de una base de datos Creación de un archivo de mapeado y decódigo fuente a partir de una base de datos Generación de código fuente y de un archivo de mapeado a partir de un archivo DBML Object Relational Designer Propiedades DataContext Clase entidad Miembros de entidad Asociación entre entidades Relaciones uno a uno Herencia de entidades Procedimientos almacenados y funciones definidas por el usuario Tipo devuelto por unafunción de datos Mapeado de operaciones Delete, Insert y Update Vistas ysoporte de esquemas Resumen 7. LINQ to DataSet Introducción a LINQ to DataSet Uso de LINQ para cargar DataSet Carga de un DataSet usando LINQ to SQLCarga de datos con LINQ to DataSet Uso de LINQ para ejecutar una consulta sobre un DataSet DataTable.AsEnumerable Creación de instancias de DataView con LINQ Uso de LINQ para ejecutar una consulta sobre un DataSet con tipos Acceso a datos en DataSets sin tipos Comparación de DataRow Resumen 8. LINQto Entities Ejecución de consultas sobre un modelo de datos entidad Introducción Expresiones de consulta Gestión de datos Motor de consultas Ejecución de consultas Más información sobre ObjectQuery Consultas compiladas LINQ to SQL y LINQ to Entities Resumen Parte III. LINQ y XML 9. LINQ to XML: Gestión de información XML Introducción a LINQ to XML Programación en LINQ to XML XDocument XElement XAttribute XNode XName y XNamespace Otras clases X* XStreamingElement Anotaciones y XObject Lectura, transferencia y modificación de XML Resumen 10. LINQ to XML: Ejecución de consultas sobre nodos Ejecución de consultas sobre XML Attribute, Attributes Element, Elements Métodos de extensión XPath Axes Métodos de selección XNode InDocumentOrder Evaluación diferida de consultas Consultas de LINQ sobre XML Ejecución de consultas XML de forma eficiente para crear entidades Transformación de XML con LINQ to XML Soporte para XSD y para validación de nodos con tipos Soporte para XPath y System.Xml.XPath Seguridad en LINQ to XML Serialización en LINQ to XML Resumen Parte IV. LINQ Avanzado 11. Árboles de expresiones Expresiones lambda ¿Qué es un árbol de expresiones? Creación de un árbol de expresiones Encapsulación Inmutabilidad y modificación Análisis de un árbol de expresiones Clase Expression Tipos de nodos en árboles de expresión Enumeración ExpressionType Clases derivadas de Expression Guía práctica sobre nodos LambdaExpression y ParameterExpression BinaryExpression ConstantExpression MethodCallExpression ConditionalExpression InvocationExpression Visitar un árbol de expresiones Un patrón de visita alternativo Creación de un árbol de expresiones de forma dinámica ¿Cómo generael compilador un árbol de expresiones? Combinar árboles de expresiones existentes Composición dinámica de un árbol de expresiones Resumen 12. Ampliar LINQ Operadores personalizados Especialización de operadores existentes Prácticas no recomendables Límites de la especialización Creación de un proveedor de LINQ personalizado La interfaz IQueryable Conversión de IEnumerable a IQueryable (y a la inversa) Análisis de IQueryable y IQueryProvider Redacción de FlightQueryProvider La clase FlightStatusService Implementación de IQueryable en FlightQuery Implementación de IQueryProvider en IFlightProvider Implementación de ExpressionVisitor en FlightQueryTranslator Uso de FlightQueryProvider Análisis coste/beneficio del uso de proveedores LINQ personalizados Resumen 13. Parallel LINQ Parallels Extensions y .NET Framework Métodos Parallel.For y Parallel.For.Each Método Do Clase Task Clase Future Aspectos relacionados con la concurrencia Uso de PLINQ Hilos utilizados en PLINQ Implementación de PLINQ Utilizar PLINQ Procesado de tubería Procesado Stop-and-go Enumeración invertida Efectos secundarios del uso de ejecución paralela Orden de resultados Modificación en los datos durante la ejecución Procesado de los resultados de la consulta Gestión de errores en PLINQ PLINQ y otras implementaciones de LINQ Resumen 14. Otras implementaciones de LINQ Acceso a bases de datos Acceso a datos sin una base de datos Modelos de dominio en LINQ to Entity LINQ to Services LINQ para ingenieros de sistemas LINQ dinámico Otras herramientas y mejoras de LINQ Resumen Parte V. LINQ aplicado 15. LINQ en una aplicación multinivel Características de una aplicación multinivel LINQ to SQL en una solución de dos niveles LINQ en una solución de n niveles LINQ to SQL como sustituto de la capa de acceso a datos Abstracción de LINQ to XML con mapeado externo de XML Uso de LINQ to SQL a través de abstracción real LINQ to XML como capa de datos LINQ to Entities como capa de datos LINQ en el nivel de tratamiento LINQ to Objects para redactar mejor código IQueryable frente a IEnumerable Identificar la unidad de trabajo adecuada Manejo de transacciones Concurrencia y seguridad en hilos Resumen 16. LINQ y ASP.NET ASP.NET 3.5 ListView Vinculación de datos con ListView DataPager LinqDataSource Paginado de datos con LinqDataSource y DataPager Gestión de modificación de datos con LinqDataSource Selecciones personalizadas con LinqDataSource Uso de LinqDataSource con tipos personalizados Vinculación con consultas LINQ Resumen 17. LINQ y WPF/Silverlight Uso de LINQ como WPF Vinculación de entidades y propiedades Vinculación de colecciones de entidades Uso de LINQ en Silverlight Resumen 18. LINQ y Windows Communication Foundation Introducción aWCF Contratos y servicios WCF Contratos orientados a servicios Alojamiento de servicios y puntos finales Consumidores de servicios WCF y LINQ to SQL LINQ to SQL Entities y serialización Publicación de entidades LINQ to SQL con WCF Consumo de entidades LINQ to SQL con WCF LINQ to Entities y WCFSerialización de expresiones de consulta Resumen Parte VI. Apéndices Apéndice A. ADO.NET Entity Framework Enfoque estándar de ADO.NET Abstracción a partir de la capa física Modelado de entidades de datos Archivos del modelo de entidades de datos Asistente y diseñador del modelo de entidades de datos Herramienta de generación del modelo de entidades de datos Definición y normas del modelo de entidades de datos Ejecución de consultas sobre entidades con ADO.NET Ejecución de consultas sobre ADO.NET Entities con LINQ Gestión de datos con Object Services Gestión de identidad de objetos Operaciones transaccionales Entidades implementadas de forma manual LINQ to SQL y ADO.NET Entity Framework Resumen Apéndice B. C# 3.0: Nuevas características C# 2.0 Genéricos Delegados Métodos anónimos Enumeradores y el comando Yield Características de C# 3.0 Propiedades implementadas de forma automática Inferencia de tipos local Expresiones lambda Métodos de extensión Expresionesde inicialización de objetos Tipos anónimos Los tipos anónimos son inmutables Expresiones de consulta Métodos parciales Resumen Apéndice C. Visual Basic 2008: Nuevas características Visual Basic 2008 y tipos anulables Operador If Características de Visual Basic 2008 correspondientes a las de C# 3.0 Inferencia de tipos locales Métodos de extensión Expresiones de inicialización de objetos Tipos anónimos Los tipos anónimos no son inmutables en Visual Basic 2008 Expresiones de consulta Expresiones lamdba CierresMétodos parciales Características de Visual Basic 2008 sin equivalente en C#3.0 Soporte para XML Literales XML Vinculado tardío sobre XML Delegados relajados Características de C# sin equivalente en Visual Basic 2008 Yield Métodos anónimos Resumen Índice alfabético

  • ISBN: 978-84-415-2518-4
  • Editorial: Anaya Multimedia
  • Encuadernacion: Rústica
  • Páginas: 768
  • Fecha Publicación: 30/12/2008
  • Nº Volúmenes: 1
  • Idioma: Español