ADO.Net TGP (Tecnología de la Programación) Jmrr@infor.uva.es 3º Curso de ITI (gestión) Jmrr@infor.uva.es TGp-2010 (Capa Persistencia) 23/11/2010
Ado.NET Evolución del Modelo de datos ADO Integrado en la Plataforma .NET Framework Sistema de Clases integrado en los espacios de Nombres .NEt Mas Flexible trabaja con modelos multitabla desconectados) Permite Escalabilidad Orientado a la arquitecturas Multinivel TGp-2010 (Capa Persistencia) 23/11/2010
Ado.Net TGp-2010 (Capa Persistencia) 23/11/2010
ADO.Net ADO.NET es el modelo de acceso a datos para las aplicaciones basadas en .NET Se puede utilizar para acceder a sistemas debase de datos relacionales. Ejemplos: SQL Server, Oracle, etc. Muchas otras fuentes de datos (para las cuales existe un proveedor OLE DB u ODBC) Soporte intrínseco para XML Programación Orientada a Componentes TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET resuelve estos problemas: ADO trabaja bien, pero: Necesita COM y Windows Los recordsets no viajan bien a través de Internet ADO.NET resuelve estos problemas: Utiliza XML (a bajo nivel) para realizar el transporte de datos XML no tiene requisitos específicos de runtime/transporte No se necesita un código especial para hacer el marshaling a través de Internet ADO .NET, una nueva mentalidad: Entorno desconectado Todo el transporte de datos utiliza XML TGp-2010 (Capa Persistencia) 23/11/2010
Evolución ODBC (Open DataBase Connectivity) DAO (Data Access Objects) Interoperatibilidad con amplio rango de SGBD API acceso ampliamente aceptada Usa SQL como lenguaje de acceso a datos DAO (Data Access Objects) Interfaz de programación para bases de datos JET/ISAM (e.g. MS Access) RDO (Remote Data Objects) Estrechamente ligado a ODBC 2rientado a aplicaciones cliente/servidor OLE DB (Object Linking and Embedding for Databases) No restringido a acceso a datos relacionales No limitado a SQL como lenguaje de recuperación de datos Tecnología desarrollada por Microsoft Construido sobre COM (Component Object Model) Proporciona una interfaz a bajo nivel en C++ TGp-2010 (Capa Persistencia) 23/11/2010
Plataforma .Net TGp-2010 (Capa Persistencia) 23/11/2010
Arquitectura Framework .NET TGp-2010 (Capa Persistencia) 23/11/2010
Componentes TGp-2010 (Capa Persistencia) 23/11/2010
Dos Componentes Proveedores de datos Data Set Entre ambos se incluyen: Proporcionar conexión con las bases de datos Manipulación de Datos Acceso rápido en avance de solo lectura Data Set Componente Central de la Arquitectura Acceso a datos y su manejo independiente del origen Entre ambos se incluyen: Connection, Command, DataReader y DataAdapter TGp-2010 (Capa Persistencia) 23/11/2010
Arquitectura TGp-2010 (Capa Persistencia) 23/11/2010
Proveedores de datos .NET Framework Los proveedores de datos .NET Framework son componentes diseñados explícitamente para la manipulación de datos y el acceso rápido a datos de solo lectura y solo avance. Connection proporciona conectividad a un origen de datos. Command permite tener acceso a comandos de base de datos para devolver datos, modificar datos, ejecutar procedimientos almacenados y enviar o recuperar información sobre parámetros. DataReader proporciona un flujo de datos de alto rendimiento desde el origen de datos. DataAdapter proporciona el puente entre el objeto DataSet y el origen de datos. utiliza objetos Command para ejecutar comandos SQL en el origen de datos tanto para cargar DataSet con datos y reconciliar en el origen de datos los cambios aplicados a los datos incluidos en el DataSet. TGp-2010 (Capa Persistencia) 23/11/2010
DataSet El DataSet de ADO.NET es el componente central de la arquitectura sin conexión de ADO.NET. El DataSet está expresamente diseñado para el acceso a datos independientemente del origen de datos. Como resultado, se puede utilizar con múltiples y distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación. El DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como información sobre claves principales, claves externas, restricciones y relaciones relativa a los datos incluidos en los objetos DataTable. TGp-2010 (Capa Persistencia) 23/11/2010
Conceptos Básicos Modelo de objetos Objetos de System.Data Proveedores de acceso a datos .NET Jerarquía de espacio de nombres (namespace) Organiza el modelo de objetos Incluye: System.Data System.Data.Common System.Data.OleDb System.Data.SqlClient System.Data.SqlTypes TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Connection OleDbConnection/SQLConnection Representa la sesión contra la BD Utilizado por objetos Data Adapter y Command para recuperar/actualizar Inicia las transacciones Connection.BeginTransaction() devuelve un objeto Transaction xxxTransaction Un comando se enlista en una transacción Isolation Level Commit() / Rollback() Configuración del pool de conexionesen el connection string TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Command OleDbCommand/SQLCommand Representa Transact-SQL o procedimientos almacenados Devuelve un resultset (ExecuteReader), un valor (ExecuteScalar), o ejecuta sentencias de modificación (ExecuteNonQuery) Generación automática con el objeto CommandBuilder TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: DataReader OleDbDataReader/SQLDataReader Stream forward-only read-only Utilizado por el DataAdapter Muy rápido Creado por un objeto Command (ExecuteReader) TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: DataAdapter OleDbDataAdapter/SQLDataAdapter Representa un conjunto de Commands y una Connection Puente entre el DataSet y la BD Lee y actualiza la BD: SelectCommand, UpdateCommand, InsertCommand DeleteCommand TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: DataAdapter TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: DataSet Objeto estrella en ADO.NET Representa una caché de datos en memoria Contiene DataTables Lee y escribe datos y esquemas en XML Puede ser tipado o no tipado: Ambos heredan de la clase DataSet El tipado se apoya en un esquema XML (.XSD) para generar la clase El tipado tiene ventajas: Expone estructura como propiedades y métodos: Intellisense Recoge la Primary key TGp-2010 (Capa Persistencia) 23/11/2010
Otros Objetos DataTable DataView DataRelation Representa una tabla en memoria Lo rellena un DataAdapter o a mano Componente principal de los objetos DataSet y DataView DataView Vista personalizada de un objeto DataTable Filtros, ordenación, búsquedas … DataRelation Define relaciones entre tablas Utiliza columnas de un DataTable TGp-2010 (Capa Persistencia) 23/11/2010
DataSet TGp-2010 (Capa Persistencia) 23/11/2010
Elegir un DataReader o un DataSet La elección entre DataReader (vea Recuperar datos mediante DataReader) o un DataSet (vea Crear y utilizar DataSets), debe tener en cuenta el tipo de funcionalidad que su aplicación requiere. Usar un DataSet para hacer lo siguiente: Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML. Interactuar con datos dinámicamente, por ejemplo para enlazar con un control de Windows Forms o para combinar y relacionar datos procedentes de varios orígenes. Almacenar datos en memoria caché localmente, dentro de su aplicación. Proporcionar una vista XML jerárquica de datos relacionales y utilizar herramientas como una transformación XSL o una consulta Xpath (XML Path Language) en sus datos. Realizar procesamientos exhaustivos de datos sin necesidad de tener una conexión abierta con el origen de datos, lo que libera la conexión para que la utilicen otros clientes. Se puede mejorar el rendimiento de su aplicación si utiliza el DataReader para devolver sus datos de sólo avance y de sólo lectura. al utilizar el DataReader puede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet, Evita el procesamiento necesario para crear y rellenar el contenido del DataSet. TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Lecturas Método Fill del objeto DataAdapter Se utiliza el SelectCommand del DataAdapter Inserta/actualiza datos del DataSet Si la tabla existe, actualiza datos Si no existe, crea y rellena la tabla Una tabla por cada resultset Mantiene la conexión en su estado original TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Actualizaciones La funcionalidad en ADO es implícita. Recordset= caja negra. Ejemplo: UpdateBatch En ADO.NET: Se crea un modelo más explícito y transparente. InsertCommand, UpdateCommand, DeleteCommand Eventos de Update CommandBuilder generación automática de los comandos de Insert, Update y Delete a partir del Select Command TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Actualizaciones DataAdapter.Update: Analiza los cambios del DataSet Ejecuta los comandos Insert, Update y Delete necesarios Refresca el DataSet Orden de ejecución por defecto: Insert, Update y Delete. TGp-2010 (Capa Persistencia) 23/11/2010
ADO.NET: Enlace Controles (binding) ADO.NET soporta enlazar (binding) DataSets a Windows Forms / Web Forms y sus controles VStudio.NET incluye bastantes Ayudas (wizards) para hacer el enlace entre datosy controles TGp-2010 (Capa Persistencia) 23/11/2010
Ejemplo TGp-2010 (Capa Persistencia) 23/11/2010
“WCF Data Services” Implementar servicios de datos en web o en una intranet. Los datos se estructuran como entidades y relaciones de acuerdo a las especificaciones de Entity Data Model. Los datos implementados en este modelo se pueden direccionar mediante el protocolo HTTP estándar. TGp-2010 (Capa Persistencia) 23/11/2010