Ado.Net
-
Upload
jose-m-rodriguez -
Category
Documents
-
view
223 -
download
4
description
Transcript of Ado.Net
jmrr@2010
ADO.Net
TGP (Tecnología de la Programación)
3º
Curso de ITI (gestión)
23/11/2010 1TGp‐2010 (Capa Persistencia)
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)
jmrr@2010
Ado.NetAdo.Net
23/11/2010 3TGp‐2010 (Capa Persistencia)
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)
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)
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)
jmrr@2010
Plataforma .NetPlataforma .Net
23/11/2010 7TGp‐2010 (Capa Persistencia)
jmrr@2010
Arquitectura Framework .NETArquitectura Framework .NET
23/11/2010 8TGp‐2010 (Capa Persistencia)
jmrr@2010
ComponentesComponentes
23/11/2010 9TGp‐2010 (Capa Persistencia)
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)
jmrr@2010
ArquitecturaArquitectura
23/11/2010 11TGp‐2010 (Capa Persistencia)
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)
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)
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)
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)
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)
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)
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)
jmrr@2010
ADO.NET: DataAdapterADO.NET: DataAdapter
23/11/2010 19TGp‐2010 (Capa Persistencia)
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)
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)
jmrr@2010
DataSetDataSet
23/11/2010 22TGp‐2010 (Capa Persistencia)
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)
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)
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)
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)
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)
jmrr@2010
EjemploEjemplo
23/11/2010 28TGp‐2010 (Capa Persistencia)
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)