ADO.Net

Anuncio
ADO.Net
Ing. Christian Ovalle
[email protected]
1
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
2
Ado.Net
TGp-2010 (Capa Persistencia)
23/11/2010
3
ADO.Net
• ADO.NET es el modelo de acceso a datos para
las aplicaciones basadas en .NET
• Se puede utilizar para acceder a sistemas de
base 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
4
• 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
5
Evolució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++
6
Plataforma .Net
TGp-2010 (Capa Persistencia)
23/11/2010
7
Arquitectura Framework .NET
TGp-2010 (Capa Persistencia)
23/11/2010
8
Componentes
TGp-2010 (Capa Persistencia)
23/11/2010
9
Dos 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
TGp-2010 (Capa Persistencia)
23/11/2010
10
Arquitectura
TGp-2010 (Capa Persistencia)
23/11/2010
11
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
12
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
13
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
14
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
15
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
16
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
17
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
18
ADO.NET: DataAdapter
TGp-2010 (Capa Persistencia)
23/11/2010
19
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
20
Otros 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
TGp-2010 (Capa Persistencia)
23/11/2010
21
DataSet
TGp-2010 (Capa Persistencia)
23/11/2010
22
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
23
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
24
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
25
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
26
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
27
Ejemplo
TGp-2010 (Capa Persistencia)
23/11/2010
28
“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
29
Descargar