La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

Presentaciones similares


Presentación del tema: "© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados."— Transcripción de la presentación:

1 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.

2 Colecciones de Negocio Manejo grupal de nuestras propias clase. Funcionalidades grupales. Responsabilidades centralizadas. Reutilización de los métodos de manejo de colecciones. Manejo grupal de nuestras propias clase. Funcionalidades grupales. Responsabilidades centralizadas. Reutilización de los métodos de manejo de colecciones.

3 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Caso Ejemplo: Factura compuesta de Líneas de Detalle. Funciones necesarias: agregar, modificar y eliminar líneas. Responsabilidad de manejo grupal. Caso Ejemplo: Factura compuesta de Líneas de Detalle. Funciones necesarias: agregar, modificar y eliminar líneas. Responsabilidad de manejo grupal.

4 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Caso Ejemplo: Clase para coleccionar las Líneas de Detalle. Funcionalidad centralizada para el manejo en grupo. Caso Ejemplo: Clase para coleccionar las Líneas de Detalle. Funcionalidad centralizada para el manejo en grupo.

5 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Caso Ejemplo: Herencia desde List. Seguridad de tipos. Caso Ejemplo: Herencia desde List. Seguridad de tipos.

6 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Objetivos de una colección de negocio: Reutilización. Extensión. Especialización. Encapsulación. Objetivos de una colección de negocio: Reutilización. Extensión. Especialización. Encapsulación.

7 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Declaración public class LineaDetalleCollection: List {…} Ejemplo de uso LineaDetalleCollection Lineas = new LineaDetalleCollection(); LineaDetalle linea = new LineaDetalle(); Lineas.Add(linea); Console.WriteLine( Lineas.Count); Lineas.Clear();

8 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Actividad 1: Colección de Negocio Actividad 1: Colección de Negocio

9 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio LINQ (Language Integrated Query) Incluido en la versión 3.5 Consulta de datos desde colecciones, bases de datos y documentos Xml. Consulta, es una expresión para recuperar datos. LINQ to Objects, LINQ to SQL y LINQ to Xml LINQ (Language Integrated Query) Incluido en la versión 3.5 Consulta de datos desde colecciones, bases de datos y documentos Xml. Consulta, es una expresión para recuperar datos. LINQ to Objects, LINQ to SQL y LINQ to Xml

10 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Operación de Consulta LINQ

11 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Operación de Consulta LINQ /* Las 3 partes de una consulta LINQ */ // 1. Origen de Datos. int[] numeros = new int[5] { 1, 2, 3, 4, 5, }; // 2. Consulta. // consultaNumeros será una instancia de IEnumerable var consultaNumeros = from num in numeros where (num % 2) == 0 select num; // 3. Ejecución de la consulta. foreach (int numero in consultaNumeros) { Console.Write(numero); }

12 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio El Origen de Datos. Colecciones de Objetos y arreglos. Bases de Datos. Documentos Xml Cualquier objeto que admite la interfaz genérica IEnumerable El Origen de Datos. Colecciones de Objetos y arreglos. Bases de Datos. Documentos Xml Cualquier objeto que admite la interfaz genérica IEnumerable // Creación de una fuente de datos desde un document Xml using System.Xml.Linq; XElement contacts = XElement.Load(@"c:\Contactos.xml"); // Creación de una fuente de datos desde una base de datos SQL Server. DataContext db = new DataContext(@"c:\northwind\northwnd.mdf");

13 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio La Consulta. Especifica la información a recuperar. Ordenamiento y agrupación opcional. Estructurada por las cláusulas: from, where y select. La expresión de consulta o variable de consulta NO ejecuta la consulta. La Consulta. Especifica la información a recuperar. Ordenamiento y agrupación opcional. Estructurada por las cláusulas: from, where y select. La expresión de consulta o variable de consulta NO ejecuta la consulta.

14 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio La Consulta – Características Se usan para consultar y transformar los datos de cualquier origen de datos compatible con LINQ. Son fáciles de controlar porque utilizan muchas construcciones de lenguaje de C# familiares. Todas las variables de una expresión de consulta tienen establecimiento inflexible de tipos. Una consulta no se ejecuta hasta que se recorre en iteración la variable de consulta en una instrucción foreach. La Consulta – Características Se usan para consultar y transformar los datos de cualquier origen de datos compatible con LINQ. Son fáciles de controlar porque utilizan muchas construcciones de lenguaje de C# familiares. Todas las variables de una expresión de consulta tienen establecimiento inflexible de tipos. Una consulta no se ejecuta hasta que se recorre en iteración la variable de consulta en una instrucción foreach.

15 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio La Consulta – Características En tiempo de compilación, las expresiones de consulta se convierten en llamadas a métodos de operador de consulta estándar de acuerdo con las reglas establecidas en la especificación de C#. Como norma, cuando escriba consultas LINQ, se recomienda que siempre que sea posible se utilice la sintaxis de consulta y que utilice la sintaxis de método sólo cuando sea necesario. Algunas operaciones de consulta, como Count o Max, no tienen ninguna cláusula de expresión de consulta equivalente y, por tanto, deben expresarse como una llamada a método. La Consulta – Características En tiempo de compilación, las expresiones de consulta se convierten en llamadas a métodos de operador de consulta estándar de acuerdo con las reglas establecidas en la especificación de C#. Como norma, cuando escriba consultas LINQ, se recomienda que siempre que sea posible se utilice la sintaxis de consulta y que utilice la sintaxis de método sólo cuando sea necesario. Algunas operaciones de consulta, como Count o Max, no tienen ninguna cláusula de expresión de consulta equivalente y, por tanto, deben expresarse como una llamada a método.

16 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Ejecución Diferida Ejecución forzada Ejecución Diferida Ejecución forzada foreach (int numero in consultaNumeros) { Console.Write(numero); } /* Consulta para obtener los números pares del arreglo */ var consultaNumeros = from num in numeros where (num % 2) == 0 select num; /* Obtiene el total de números pares en base a la consulta */ int total = consultaNumeros.Count();

17 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Recuperación con ToList y ToArray /* Recuperación en una lista */ List consultaLista = (from num in numeros where (num % 2) == 0 select num).ToList(); /* Recuperación en un arreglo */ var consultaArreglo = (from num in numeros where (num % 2) == 0 select num).ToArray();

18 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio Sintáxis de consulta y método LINQ int[] numeros = { 1, 2, 3, 4, 5 }; //Sintaxis de Consulta: IEnumerable numQuery1 = from num in numeros where num % 2 == 0 orderby num select num; //Sintaxis de Método: IEnumerable numQuery2 = numeros.Where(num => num % 2 == 0).OrderBy(n => n);

19 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio LINQ to Objects Para colecciones IEnumerable e IEnumerable y de usuario. No hay proveedores intermedios. Evitar el uso de bucles. La sintaxis es más declarativa. LINQ to Objects Para colecciones IEnumerable e IEnumerable y de usuario. No hay proveedores intermedios. Evitar el uso de bucles. La sintaxis es más declarativa.

20 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones de Negocio LINQ to Objects – Ventajas sobre foreach: Son más concisas y legibles, sobre todo al filtrar varias condiciones. Proporcionan funcionalidad eficaz de filtrado, ordenación y agrupación con código de aplicación mínimo. Se pueden trasladar a otros orígenes de datos con pocas o ningunas modificaciones. LINQ to Objects – Ventajas sobre foreach: Son más concisas y legibles, sobre todo al filtrar varias condiciones. Proporcionan funcionalidad eficaz de filtrado, ordenación y agrupación con código de aplicación mínimo. Se pueden trasladar a otros orígenes de datos con pocas o ningunas modificaciones.

21 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados. Colecciones y Listas Actividad 2: Consulta LINQ en la colección de Negocio Actividad 2: Consulta LINQ en la colección de Negocio

22 © 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados.


Descargar ppt "© 2010 DUOC Sede Antonio Varas. Todos los Derechos Reservados."

Presentaciones similares


Anuncios Google