You are on page 1of 10

UNIVERSIDAD TECNICA DE AMBATO

FISEI

LINQ
QU ES? Language Integrated Query o LINQ es una tecnologa integrada en .NET que proporciona la capacidad para consultar o manipular diversas fuentes de datos, independientes del proveedor utilizando de forma nativa la sintaxis de cualquier lenguaje de programacin soportado por .NET, lo cual nos proporciona el soporte del compilador y nos permite concentrarnos nicamente en las bsquedas en lugar de: cmo hacer la rutina para cada bsqueda, adems la sintaxis de LINQ es similar a SQL lo que nos proporciona un estndar ya que es la misma sintaxis para todas las fuentes de datos diferentes o similares.

Consultar Manipular

Diversas Fuentes de Datos

LINQ
CLASIFICACION: LINQ to SQL: Es el conjunto de clases, estructuras, interfaces y enumeraciones utilizadas para escribir consultas a bases de datos relacionales como PostgreSQL, SQL Server o MySQL. LINQ to Objects: Es la API predeterminada de LINQ y permite escribir consultas parar arreglos, estructuras y colecciones de objetos en memoria. LINQ to XML: Proporciona la habilidad de escribir consultas para procesar fuentes de datos XML. LINQ to DataSet: Es la API dedicada a trabajar con clases DataSets y DataTables.

VENTAJAS:
Colecciones en memoria y tiendas fuera de proceso de datos con la misma sintaxis y operadores de consulta Un estilo declarativo funciona muy bien para consultas - es ms fcil de leer y escribir en muchos casos Integracin de lenguaje Net permite a nuevos proveedores (dentro y fuera de proceso) a escribirse y aprovechar la misma sintaxis de expresiones de consulta. Sintaxis familiar para escribir consultas. Comprobacin en tiempo de compilacin de errores de sintaxis y seguridad de tipos. Compatibilidad mejorada con el depurador. Capacidad para trabajar directamente con elementos XML en lugar de crear un documento XML contenedor, que es lo que se requiere en W3C DOM. Modificacin de documentos XML en memoria de gran eficacia, an ms fcil de usar que XPath o XQuery. Funciones de filtrado, ordenacin y agrupacin eficaces. Modelo coherente para trabajar con datos en varios tipos de formatos y orgenes de datos.

CUANDO USAR LINQ: INQ nos permite utilizar una sintaxis mucho ms limpia y fcil de entender, que permite no complicarse la vida haciendo todo con for ya que LINQ facilita este trabajo. Veamos un ejemplo un poco ms complejo, donde tenemos un Arreglo en el cual queremos solo extraer los valores de los string que contengan nmeros, pero que no estn repetidos: string[] names = new string[]{ "12345", "Alfred", "Monica", "Ravi", "Jeffrey", "Alfred", "12345" }; var search = (from n in names where Char.IsDigit(n, 0) select n).Distinct(); foreach (string n in search){ Console.WriteLine(n); } //Salida: 12345

ENTITY FRAMEWORK

QU ES?

Entity Framework trata fundamentalmente de permitir que las aplicaciones obtengan acceso y cambien los datos que estn representados como entidades y relaciones en el modelo conceptual. Entity Framework usa la informacin de los archivos del modelo y de asignacin para traducir las consultas de objeto con los tipos de entidad que se representan en el modelo conceptual en consultas especficas del origen de datos. Framework trata fundamentalmente de permitir que las aplicaciones obtengan acceso y cambien los datos que estn representados como entidades y relaciones en el modelo conceptual. Entity Framework usa la informacin de los archivos del modelo y de asignacin para traducir las consultas de objeto con los tipos de entidad que se representan en el modelo conceptual en consultas especficas del origen de datos. El Entity Framework incluye el proveedor de datos de EntityClient. Este proveedor administra las conexiones, traduce las consultas de entidad en consultas especficas del origen de datos y devuelve un lector de datos que Entity Framework usa para materializar los datos de la entidad en los objetos. Cuando no se requiere la materializacin de los objetos, el proveedor de EntityClient tambin se puede utilizar como un proveedor de datos ADO.NET estndar habilitando las aplicaciones para ejecutar consultas Entity SQL y usar el lector de datos de solo lectura devuelto.

Componentes de EF
LINQ to Entities Entity Client / Object Services Entity SQL EDM (SSDL, MSL, CSDL) Proveedores de EF

VENTAJAS: Las aplicaciones pueden funcionar en trminos de un modelo conceptual ms centrado en la aplicacin, que incluye tipos con herencia, miembros complejos y relaciones. Las aplicaciones estn libres de dependencias de codificacin rgida de un motor de datos o de un esquema de almacenamiento.

Las asignaciones entre el modelo conceptual y el esquema especfico de almacenamiento pueden cambiar sin tener que cambiar el cdigo de la aplicacin. Los desarrolladores pueden trabajar con un modelo de objeto de aplicacin coherente que se puede asignar a diversos esquemas de almacenamiento, posiblemente implementados en sistemas de administracin de base de datos diferentes. Se pueden asignar varios modelos conceptuales a un nico esquema de almacenamiento. La compatibilidad con Language Integrated Query (LINQ) proporciona validacin de la sintaxis en el momento de la compilacin para consultas en un modelo conceptual.

PATRONES DE SOFTWARE
QU ES?
Es una tcnica de diseo de software que soluciona una clase de problemas concretos. Muchas veces nos encontramos frente al mismo problema una y otra vez, y optamos por soluciones distintas, perdiendo tiempo de desarrollo en encontrar una solucin. Adems, como no la hemos guardado, puede que olvidemos esa solucin y que la siguiente vez que nos encontremos ese problema, tengamos que volver a realizar todo el proceso de nuevas. POR QU USARLOS? Ahorran Tiempo. Evitan tener que volver a "reinventar la rueda" ante un problema que ya ha sido resuelto por otros ingenieros. Puede que tengamos que pensar aspectos de implementacin, pero la estructura del software es la misma siempre.

Logramos Uniformidad en el equipo de trabajo, obteniendo un mtodo de trabajo


ms similar entre los miembros de ste y un vocabulario comn que hace ms fciles los desarrollos conjuntos.

Categoras de patrones: De creacin: implica el proceso de instanciar objetos. Estructurales: composicin de objetos. De comportamiento De comportamiento: cmo se comunican los objetos cmo se comunican los objetos, cooperan y distribuyen las responsabilidades para lograr sus objetivos.

Abstract Factory
Permite crear, mediante una interfaz, conjuntos o familias de objetos (denominados productos) que dependen mutuamente y todo esto sin especificar cul es el objeto concreto.

Este patrn se puede aplicar cuando:

o o o

Un sistema debe ser independiente de cmo sus objetos son creados. Un sistema debe ser 'configurado' con una cierta familia de productos. Se necesita reforzar la nocin de dependencia mutua entre ciertos objetos.

Estructura del Patrn Abstract Factory

VENTAJAS: Brinda flexibilidad al aislar a las clases concretas. Facilita cambiar las familias de productos. DESVENTAJAS: Para agregar nuevos productos se deben modificar tanto las fabricas abstractas como
las concretas.

Microsoft Enterprise Library 5.0


QU ES? Es un conjunto de libreras que facilitan el desarrollo de aplicaciones empresariales en .NET. Implementan funcionalidad que tpicamente debe incorporarse a las aplicaciones empresariales. Se presenta subdividida en 9 bloques, cada uno apuntando a resolver un tipo de problema particular:
Caching Application Block: Implementacin de un sistema de caching con polticas de recoleccin y expiracin. Su principal caracterstica es permitir persistencia, por ejemplo una base de datos. El bloque se encarga de mantener sincronizado el cache en memoria y la copia almacenada, cuando la aplicacin se reinicia el cache no se pierde, es recuperado desde el lugar de almacenamiento. Cryptography Application Block: Facilita la incorporacin de funciones de criptografa presentando una interfaz nica que permite realizar encriptacin y hashing de datos con diversos algoritmos de clave simtrica. Data Access Application Block: Facilita uso de ADO.NET, presenta una interfaz con mtodos simples para las tareas ms comunes de acceso a datos. Incorpora un mecanismo de descubrimiento y caching de parmetros de procedimientos almacenados. Permite escribir cdigo agnstico compatible con mltiples bases de datos. Exception Handling Application Block: Permite simplificar y estructurar el manejo de excepciones. El cdigo que va en la clusula catch delega el manejo de la excepcin al bloque. Mediante configuracin es posible elegir diferentes comportamientos de tratamiento tales como: logging, reemplazar la excepcin y envolver la excepcin. Logging Application Block: Implementa funcionalidad de logging a diferentes destinos tales como: Registro de eventos, archivo de texto plano, base de datos, email, msmq y wmi. Es posible configurar filtros, formatos, mltiples destinos y categoras. Policy Injection Application Block: Implementa funcionalidad de Programacin Orientada a Aspectos. Mediante un mecanismo de intercepcin permite extender la funcionalidad de mtodos y propiedades sin modificar el cdigo fuente. Security Application Block: Estandariza el cdigo necesario para realizar autorizacin, (determinar si un usuario tiene acceso a un recurso). Puede operar con Authorization Manager (AZMAN) o simples reglas definidas en el archivo de configuracin. Unity Application Block: Es un contenedor de inyeccin de dependencias (Dependecy Injection). Soporta inyeccin de constructores, propiedades y mtodos. Facilita el desarrollo de aplicaciones modulares y extensibles. Validation Application Block: Facilita la incorporacin de lgica de validacin a una aplicacin. Muchas de las reglas de validacin comunes son encapsuladas en clases reutilizables como: largo de string, rango de un nmero o fecha y expresin regular.

Caching

Permitir persistencia

Cryptography

Permite realizar encriptacin

Data Access

Permite escribir cdigo agnstico compatible con mltiples bases de datos.

Exception Handling

Estructurar el manejo de excepciones.

Enterprise Library

Logging

configurar filtros, formatos, mltiples destinos y categoras.

Policy Injection

Permite extender la funcionalidad de mtodos y propiedades

Security

Determinar si un usuario tiene acceso a un recurso

Unity

Soporta inyeccin de constructores, propiedades y mtodos

Validation

lgica de validacin

CONCLUSION:
LINQ es un enfoque total que permite llevar la manipulacin de datos en los lenguajes orientados a objetos, librando los inconvenientes de trabajar con los lenguajes de manipulacin de datos que cada proveedor posee. Las aplicaciones que trabajan con Entity pueden funcionar en trminos de un modelo conceptual ms centrado en la aplicacin que incluye tipos con herencia, abstracciones y dems propiedades de la POO. El uso de patrones de software permiten que si desarrollamos cdigo para un proyecto, ste sea lo ms estndar y correcto posible, tanto a nivel de funcionalidad como a nivel de estructura. El uso de Enterprise Library permite trabajar con los datos proporcionndoles consistencia, seguridad mediante la validacin de campos, adems del manejo gil y eficaz.

BIBLIOGRAFIA:
http://www.humansharp.com/docs/TrabajandoLinq.pdf http://panicoenlaxbox.blogspot.com/2011/10/introduccion-entity-framework.html http://blog.intelligenia.com/2012/04/patrones-de-software-son-necesarios.html http://rmottap.blogspot.com/2009/07/enterprise-library.html