Introducción al ADO.NEt

29
jmrr@201 0 ADO.Net TGP (Tecnología de la Programación) 3º Curso de ITI (gestión) Jmrr @infor.uva.es 23/11/2010 1 TGp-2010 (Capa Persistencia)

description

Sesión de la capa de Presentación (ADO.NEt)

Transcript of Introducción al ADO.NEt

Page 1: Introducción al ADO.NEt

jmrr@2010

ADO.Net

TGP(Tecnología de la Programación)

3º Curso de ITI (gestión)

[email protected]

23/11/2010 1TGp-2010 (Capa Persistencia)

Page 2: Introducción al ADO.NEt

jmrr@2010

Ado.NETAdo.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

23/11/2010 2TGp-2010 (Capa Persistencia)

Page 3: Introducción al ADO.NEt

jmrr@2010

Ado.NetAdo.Net

23/11/2010 3TGp-2010 (Capa Persistencia)

Page 4: Introducción al ADO.NEt

jmrr@2010

ADO.NetADO.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

23/11/2010 4TGp-2010 (Capa Persistencia)

Page 5: Introducción al ADO.NEt

jmrr@2010

• 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

23/11/2010 5TGp-2010 (Capa Persistencia)

Page 6: Introducción al ADO.NEt

jmrr@2010

EvoluciónEvolución• ODBC (Open DataBase Connectivity)

– 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++

23/11/2010 6TGp-2010 (Capa Persistencia)

Page 7: Introducción al ADO.NEt

jmrr@2010

Plataforma .NetPlataforma .Net

23/11/2010 7TGp-2010 (Capa Persistencia)

Page 8: Introducción al ADO.NEt

jmrr@2010

Arquitectura Framework .NETArquitectura Framework .NET

23/11/2010 8TGp-2010 (Capa Persistencia)

Page 9: Introducción al ADO.NEt

jmrr@2010

ComponentesComponentes

23/11/2010 9TGp-2010 (Capa Persistencia)

Page 10: Introducción al ADO.NEt

jmrr@2010

Dos ComponentesDos Componentes

• Proveedores de datos– 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

23/11/2010 10TGp-2010 (Capa Persistencia)

Page 11: Introducción al ADO.NEt

jmrr@2010

ArquitecturaArquitectura

23/11/2010 11TGp-2010 (Capa Persistencia)

Page 12: Introducción al ADO.NEt

jmrr@2010

Proveedores de datos .NET Proveedores de datos .NET FrameworkFramework

• 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.

23/11/2010 12TGp-2010 (Capa Persistencia)

Page 13: Introducción al ADO.NEt

jmrr@2010

DataSetDataSet• 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.

23/11/2010 13TGp-2010 (Capa Persistencia)

Page 14: Introducción al ADO.NEt

jmrr@2010

Conceptos BásicosConceptos 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

23/11/2010 14TGp-2010 (Capa Persistencia)

Page 15: Introducción al ADO.NEt

jmrr@2010

ADO.NET: ConnectionADO.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

23/11/2010 15TGp-2010 (Capa Persistencia)

Page 16: Introducción al ADO.NEt

jmrr@2010

ADO.NET: CommandADO.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

23/11/2010 16TGp-2010 (Capa Persistencia)

Page 17: Introducción al ADO.NEt

jmrr@2010

ADO.NET: DataReaderADO.NET: DataReader

• OleDbDataReader/SQLDataReader• Stream forward-only read-only• Utilizado por el DataAdapter• Muy rápido• Creado por un objeto Command

(ExecuteReader)

23/11/2010 17TGp-2010 (Capa Persistencia)

Page 18: Introducción al ADO.NEt

jmrr@2010

ADO.NET: DataAdapterADO.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

23/11/2010 18TGp-2010 (Capa Persistencia)

Page 19: Introducción al ADO.NEt

jmrr@2010

ADO.NET: DataAdapterADO.NET: DataAdapter

23/11/2010 19TGp-2010 (Capa Persistencia)

Page 20: Introducción al ADO.NEt

jmrr@2010

ADO.NET: DataSetADO.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

23/11/2010 20TGp-2010 (Capa Persistencia)

Page 21: Introducción al ADO.NEt

jmrr@2010

Otros ObjetosOtros Objetos• DataTable– 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

23/11/2010 21TGp-2010 (Capa Persistencia)

Page 22: Introducción al ADO.NEt

jmrr@2010

DataSetDataSet

23/11/2010 22TGp-2010 (Capa Persistencia)

Page 23: Introducción al ADO.NEt

jmrr@2010

Elegir un DataReader o un DataSetElegir 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.

23/11/2010 23TGp-2010 (Capa Persistencia)

Page 24: Introducción al ADO.NEt

jmrr@2010

ADO.NET: LecturasADO.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

23/11/2010 24TGp-2010 (Capa Persistencia)

Page 25: Introducción al ADO.NEt

jmrr@2010

ADO.NET: ActualizacionesADO.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

23/11/2010 25TGp-2010 (Capa Persistencia)

Page 26: Introducción al ADO.NEt

jmrr@2010

ADO.NET: ActualizacionesADO.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.

23/11/2010 26TGp-2010 (Capa Persistencia)

Page 27: Introducción al ADO.NEt

jmrr@2010

ADO.NET: Enlace Controles (binding)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

23/11/2010 27TGp-2010 (Capa Persistencia)

Page 28: Introducción al ADO.NEt

jmrr@2010

EjemploEjemplo

23/11/2010 28TGp-2010 (Capa Persistencia)

Page 29: Introducción al ADO.NEt

jmrr@2010

““WCF Data Services” 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.

23/11/2010 29TGp-2010 (Capa Persistencia)