Ado.Net

29
jmrr@2010 ADO.Net TGP (Tecnología de la Programación) Curso de ITI (gestión) [email protected] 23/11/2010 1 TGp2010 (Capa Persistencia)

description

Introducciuón al Ado.Net

Transcript of Ado.Net

Page 1: Ado.Net

jmrr@2010

ADO.Net

TGP (Tecnología de la Programación)

Curso de ITI (gestión)

[email protected]

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

Page 2: 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: Ado.Net

jmrr@2010

Ado.NetAdo.Net

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

Page 4: 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: 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: Ado.Net

jmrr@2010

EvoluciEvolucióónn• 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: Ado.Net

jmrr@2010

Plataforma .NetPlataforma .Net

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

Page 8: Ado.Net

jmrr@2010

Arquitectura Framework .NETArquitectura Framework .NET

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

Page 9: Ado.Net

jmrr@2010

ComponentesComponentes

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

Page 10: 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: Ado.Net

jmrr@2010

ArquitecturaArquitectura

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

Page 12: 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: 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: Ado.Net

jmrr@2010

Conceptos BConceptos Báásicossicos

• 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: 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: 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: 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: 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: Ado.Net

jmrr@2010

ADO.NET: DataAdapterADO.NET: DataAdapter

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

Page 20: 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: 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: Ado.Net

jmrr@2010

DataSetDataSet

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

Page 23: 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: 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: 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: 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: Ado.Net

jmrr@2010

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

jmrr@2010

EjemploEjemplo

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

Page 29: Ado.Net

jmrr@2010

““WCF Data ServicesWCF 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)