dbproviderfactory

21
Acceso a diferentes proveedores de datos ADO.Net

Upload: martin-pires

Post on 06-Sep-2014

126 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DBProviderFactory

Acceso a diferentes proveedores de datos

ADO.Net

Page 2: DBProviderFactory

ADO.Net Introducción de ADO.Net Proveedores de accedo a datos Mejoras de ADO.Net 2.0 (acceso a datos) Espacio de nombre System.Data.Common DbProviderfactory Ejemplo practico de acceso a distintos motores de base de datos

Page 3: DBProviderFactory

Introducción a ADO.NET

¿Qué es ADO.NET?

ADO.NET es un conjunto de clases del Microsoft .NET Framework que permiten recuperar y manipular datos de diferentes repositorio.

(Sea Microsoft SQL Server, otros motores de bases de datos, Web Services, y cualquier otro repositorio de datos compatible, por ejemplo, basado en XML)

Page 4: DBProviderFactory

Introducción a ADO.NET

Concepto

ADO.NET es un intermediario entre el programa consumidor de datos y el repositorio de los mismos.

ADO.NET se comunica con una base de datos mediante un “Proveedor de datos” o “Data Provider”

Page 5: DBProviderFactory

Los proveedores de acceso a datos ADO.NET representan conjuntos específicos de clases que

permiten conectarse e interactuar con una base de datos, cada uno utilizando un protocolo

particular .

Proveedor de datos

Page 6: DBProviderFactory

Proveedores de Acceso a Datos

El .NET Framework incluye cuatro proveedores de acceso a datos

SQL Server/Access (System.Data.SqlClient) OLE DB (System.Data.OleDb) ODBC (System.Data.Odbc) Oracle (System.Data.OracleClient)

Page 7: DBProviderFactory

ADO.NET provee una arquitectura extensible, posibilitando que terceras partes creen sus propios proveedores de acceso nativo para aplicaciones .NET. Algunos ejemplos de esto

son:

• Data Provider para DB2, desarrollado por IBM.• Providers de acceso nativo a bases de datos

OpenSource, como MySQL y PostgreSQL

Proveedores de Acceso a Datos

Page 8: DBProviderFactory

ADO.NET 1.xLos proveedores de acceso a datos trabajan cada

uno con su conjunto de clases independientes, por ejemplo:

4 clases para representar una conexión, todas implementando una misma interfaz

SqlConnectionOracleConnectionOdbcConnectionOleDbConnection

De esta forma, tenemos tantas clases XxxCommand, XxxDataAdapter, XxxConnection y XxxDataReader como proveedores de acceso haya en ADO.NET.

Page 9: DBProviderFactory

Base de Datos

XxxConnectionXxxConnection

XxxCommandXxxCommand

DataSetDataSet XxxDataReaderXxxDataReader

XxxDataAdapterXxxDataAdapter

Maneja la conección a una base de datosManeja la conección a una base de datos

Ejecuta> comandos contra una basede datosEjecuta> comandos contra una basede datos

Copia local de datos relacionalesCopia local de datos relacionales

Provee acceso a datos read-only, Forward-onlyProvee acceso a datos read-only, Forward-only

Intercambia datos entre un dataset y una base de datosIntercambia datos entre un dataset y una base de datos

ADO.NET- Clases más comunes

Page 10: DBProviderFactory

ADO.NET 2.0

Las clases han sido modificadas y reorganizadas para proveer ahora una API (Interfaz de Programación de Aplicaciones) limpia, consistente y genérica para todos los tipos de proveedores.

Page 11: DBProviderFactory

ADO.NET 2.0

El corazón de esta API lo constituyen una serie de nuevas clases base abstractas, ubicadas en el namespace:

System.Data.Common.

Page 12: DBProviderFactory

System.Data.Common

El espacio de nombres System.Data.Common contiene clases que comparten los proveedores de datos de .NET Framework.

La finalidad de estas clases es proporcionar a los desarrolladores una forma de escribir código ADO.NET que funcione con todos los proveedores de datos de .NET Framework.

Page 13: DBProviderFactory

ADO.NET 2.0 – API Independiente

Namespace System.Data.Common

DbCommand DbCommandBuilder DbConnection

DataAdapter DbDataAdapter DbDataReader

DbParameter DbParameterCollection DbTransaction

DbProviderFactory DbProviderFactories DbException

Page 14: DBProviderFactory

Interfaces IDb* (ej: IDbConnection)

clases base abstractas Db* (ej: DbConnection)

Implementa la clase base Db*

Sql OleDb ODBC Oracle3rd

Party 13rd

Party 2

Provider- Independiente del código de la aplicación en esta capa

Provider-específico en el código de la aplicación en esta capa

ADO.NET 2.0 – API Independiente

Page 15: DBProviderFactory

ADO.NET - Providers Factory

Independizar código del proveedor de datos

Page 16: DBProviderFactory

DbProviderFactory

Representa un conjunto de métodos para crear instancias de la implementación de un proveedor de las clases de origen de datos.

Page 17: DBProviderFactory

El proceso de obtención de DbProviderFactory

Implica pasar información sobre un proveedor de datos a la clase DbProviderFactories. En función de esta información, el método GetFactory crea un generador del proveedor fuertemente tipado.

Ej: para crear SqlClientFactory, se le pasa al método GetFactory(System.Data.SqlClient”

Page 19: DBProviderFactory

Establece una sesión con una fuente de datos

Implementada por:SqlConnection,ODBCConnection,OleDbConnection, etc.

FuncionalidadAbrir y Cerrar conexionesGestionar TransaccionesUsada conjuntamente con objetos DbCommand y DataAdapter

DbConnection

Page 20: DBProviderFactory

Representa una sentencia que se envía a una fuente de datos

Implementada por SqlCommand, OleDbCommand, etc.

Funcionalidad• Definir la sentencia a ejecutar• Ejecutar la sentencia• Enviar y recibir parámetros

DbCommand

Page 21: DBProviderFactory

Acceso a Distintas Bases de Datos

MS SQL

MS SQL MySQL MySQL Oracle Oracle

Archivo de Configuración Mi Aplicación

Nombre de DB: SystemNombre de Tabla: Persona (Persona String)