You are on page 1of 50

ASP.

NET

ADO.NET
ActiveX Data Object
Mg. Jos Mauricio Flores Avils Agosto de 2013

ActiveX Data Objects (ADO) es uno de los mecanismos que usan los programas de computadoras para comunicarse con las bases de datos, darles rdenes y obtener resultados de ellas.

Que es ADO?

ADO substituy tanto a DAO (Data Access Object), como a RDO (Remote Data Object), que eran los sistemas previos que se usaban para acceder a las bases de datos y bases de datos remotas, respectivamente. Tiene la mayor parte de la funcionalidad de ambos modelos y sin embargo es ms sencillo de usar y de entender y por lo tanto ms fcil y menos engorroso de programar.

Evolucin

ADO.NET proporciona conectividad para bases de datos entre sistemas relacionales o no relacionales a travs de un conjunto de componentes comn.

ADO.Net

Tambin permite el acceso a datos sin conexin. Tradicionalmente, las aplicaciones cliente-servidor mantienen, durante su ejecucin, una conexin abierta con la base de datos u ofrecen su propio mtodo para almacenar localmente en cach los datos

ADO.Net

ADO.NET es un intermediario entre el programa y la base de datos. El programa no ve la base de datos directamente, sino que hace todo el trabajo a travs de ADO.NET Usando ADO.NET, el programa se comunica con la base de datos, consulta, edita, inserta, borra, registros, aade tablas, etc.

ADO.NET a su vez se comunica con la base de datos a travs de un "proveedor de datos".

Funcionamiento

El proveedor de datos es un componente que se relaciona directamente con la base de datos. Hay un proveedor de datos por cada tipo de base de datos. As, las bases de datos de tipo Access, SQL Server, Oracle, MySql, tienen, cada una, un proveedor de datos especfico. La conexin ADO puede usar dos tipos de proveedores de datos, OLE DB y ODBC, siendo OLE DB el tipo de proveedor nativo.

El proveedor de datos

Cuando no existe un proveedor de OLE DB especfico para una base de datos determinada, y en cambio existe un proveedor ODBC, la conexin ADO puede usarlo para comunicarse con la base de datos, sin embargo, no directamente, sino a travs de un proveedor OLE DB especial que sirve de intermediario entre ADO y ODBC.

El Proveedor de Datos

Proporciona acceso coherente a orgenes de datos como SQL Server y XML, as como a orgenes de datos expuestos mediante OLE DB y ODBC .Las aplicaciones de consumidor que comparten datos pueden utilizar ADO.NET para conectar a estos orgenes de datos y recuperar, controlar y actualizar los datos contenidos.

ADO.Net

Tambin permite el acceso a datos sin conexin. Tradicionalmente, las aplicaciones cliente-servidor mantienen, durante su ejecucin, una conexin abierta con la base de datos u ofrecen su propio mtodo para almacenar localmente en cach los datos

ADO.Net

Modelado
ADO.NET

Por todas estas razones, se dise ADO.NET para arquitecturas sin conexin. Los datos se leen en un componente (un objeto para ser ms precisos) denominado DataSet, que acta como almacn temporal de los datos.
El DataSet almacena los datos aunque se rompa la conexin con la fuente de datos y es efectivo siempre que se encuentre en su alcance. La aplicacin puede manipular los datos del DataSet sin conexin antes de volver a conectar con el almacn de datos para actualizarlo con los cambios.

ADO.Net

Los cambios se efectan de forma optimista. Al volver a establecer la conexin para una actualizacin, las versiones originales de los datos utilizadas para completar el DataSet se comparan con los datos que en ese momento contiene el servidor. Si alguien ha modificado la informacin mientras tanto, se genera un error y se rechaza la operacin.

ADO.Net

NET Framework Data Provider for SQL Server System.Data.SqlClient .NET Framework Data Provider for OLE DB System.Data.OleDb .NET Framework Data Provider for ODBC System.Data.Odbc .NET Framework Data Provider for Oracle System.Data.OracleClient

Proveedores de datos ADO.NET

El proveedor de datos .NET Framework para SQL Server (SqlClient) usa su propio protocolo para comunicarse con SQL Server. Es ligero y presenta un buen rendimiento porque est optimizado para tener acceso a SQL Server directamente, sin agregar una capa OLE DB u ODBC
Imports System Imports System.Data Imports System.Data.SqlClient.

SqlClient

El proveedor de datos .NET Framework para OLE DB (OleDb) usa OLE DB nativo con el fin de habilitar el acceso a datos mediante la interoperabilidad COM. El proveedor de datos .NET Framework para OLE DB admite tanto transacciones locales como transacciones distribuidas.
Imports System Imports System.Data Imports System.Data.Oledb

OleDb

Controlador

Proveedor

SQLOLEDB

Proveedor Microsoft OLE DB para SQL Server

MSDAORA

Proveedor Microsoft OLE DB para Oracle

Microsoft.Jet.OLEDB.4.0

Proveedor OLE DB para Microsoft Jet

Proveedores de Datos OleDb

El proveedor de datos .NET Framework para ODBC (Odbc) utiliza el Administrador de controladores ODBC nativos para habilitar el acceso a datos. El proveedor de datos de ODBC admite tanto transacciones locales como transacciones distribuidas.
Imports System Imports System.Data Imports System.Data.Odbc

Odbc

Controlador

SQL Server

Microsoft ODBC para Oracle

Microsoft Access Driver (*.mdb)

Controladores Odbc

El proveedor de datos .NET Framework para Oracle (OracleClient) habilita el acceso a datos de orgenes de datos de Oracle mediante el software de conectividad de cliente de Oracle.
Imports System Imports System.Data Imports System.Data.OracleClient

OracleClient

Objeto

Descripcin

Connection
Command

Establece una conexin a un origen de datos determinado. La clase base para todos los objetos Connection es DbConnection
Ejecuta un comando en un origen de datos. Expone Parameters y puede ejecutarse en el mbito de un objeto Transaction desde Connection. La clase base para todos los objetos Command es DbCommand Lee un flujo de datos de solo avance y solo lectura desde un origen de datos. La clase base para todos los objetos DataReader es DbDataReader

DataReader

DataAdapter Llena un DataSet y realiza las actualizaciones necesarias en el origen de datos. La clase base para todos los objetos DataAadapter es DbDataAdapter.

Objetos principales de los proveedores de datos

DataSet de ADO.NET est expresamente diseado para el acceso a datos independientemente del origen de datos. Como resultado, se puede utilizar con mltiples y distintos orgenes de datos, con datos XML o para administrar datos locales de la aplicacin. DataSet contiene una coleccin de uno o ms objetos DataTable formados por filas y columnas de datos, as como informacin sobre claves principales, claves externas, restricciones y de relacin relacionada con los datos incluidos en los objetos

DataSet

Crear mediante programacin una DataTable, DataRelation y una Constraint en un DataSet y rellenar las tablas con datos. Llenar el DataSet con tablas de datos de un origen de datos relacional existente mediante DataAdapter. Cargar y hacer persistente el contenido de DataSet mediante XML.

Maneras de cmo trabajar con un DataSet

Para escribir una aplicacin de ADO.NET segura es necesario algo ms que evitar los errores de codificacin ms comunes, como no validar los datos proporcionados por el usuario. Una aplicacin que tiene acceso a datos tiene muchos puntos dbiles potenciales que un agresor puede aprovechar para obtener, manipular o destruir datos confidenciales.

Seguridad en ADO.NET

Por eso es importante comprender todos los aspectos de la seguridad, desde el proceso de modelo de amenazas durante la fase de diseo de su aplicacin hasta la implementacin y el posterior mantenimiento. .NET Framework ofrece muchas clases, servicios y herramientas que resultan muy tiles para proteger y administrar aplicaciones de base de datos.

Seguridad en ADO.NET

El Common Language Runtime (CLR) proporciona un entorno de seguridad de tipos en el que ejecutar el cdigo, junto con Code Access Security (CAS) para restringir an ms los permisos del cdigo administrado. Si se siguen las recomendaciones de codificacin del acceso seguro a datos, se reduce el dao que podra provocar un posible agresor.

Seguridad en ADO.NET

Comparando ADO y ADO.NET

Mientras que ADO.NET utiliza DataSets para almacenar los datos, ADO utiliza el objeto RecordSet. Un RecordSet de ADO representa una sola tabla por lo que, incluso si se combinan varias tablas, se ver como una sola, ya que no se puede trabajar con varias tablas de forma simultnea. Por su parte, el DataSet de ADO.NET contiene una coleccin de tablas as como las relaciones entre ellas, por lo que puede procesar una estructura de datos mucho ms compleja.

ADO vs ADO.Net

El DataSet de ADO.NET proporciona tanto una vista relacional basada en tablas como una vista jerrquica basada en XML, que se pueden utilizar indistintamente

ADO vs ADO.Net

El RecordSet de ADO almacena datos en formato binario lo que puede resultar problemtico, ya que los cortafuegos tienden a bloquear las transferencias de datos binarios.

XML es un formato de datos basado en texto, por lo que ADO.NET puede transferir datos a travs de cortafuegos de forma ms sencilla y fiable.

ADO vs ADO.Net

XML tambin permite un variedad ilimitada de tipos de datos e incorpora mtodos para validar la utilizacin del tipo de datos correcto. Como ADO utiliza COM como mecanismo de transporte, el rendimiento puede verse afectado debido a la traduccin de y desde los limitados tipos de datos COM.

ADO vs ADO.Net

Con ADO, siempre se presenta el problema de disponer de la versin correcta de MDAC para acceder a los datos, mientras que ADO.NET es compatible con cualquier versin de ADO.NET

ADO vs ADO.Net

Arquitectura ADO.NET

Contiene las bases de ADO.NET Namespace centrado en Datos Provee los mecanismos para trabajar con y sobre los datos
Clases y mtodos para manipular los datos Habilidad para crear vistas de los datos Formas para representar lgicamente los datos Permite la utilizacin de XML para ver, compartir y almacenar datos

System.Data

System.Data DataSet DataTable DataRow DataColumn DataRelation DataSetView

Contiene las clases principales de ADO.NET


Persistencia en memoria de los datos Persistencia en memoria de la tabla de la base de datos Permite manipular una fila en un DataTable Permite definir columnas en un DataTable Puede relacionar 2 DataTables entre s Presenta una vista del DataSet

System.Data

Arquitectura

El espacio nombres System.Data proporciona acceso a las clases que representan la arquitectura de ADO.NET ADO.NET le permite generar componentes que administran eficazmente los datos de varios orgenes de datos.

System.Data

CONECTADO DESCONECTADO

Un entorno conectado es aquel en que los usuarios estn conectados continuamente a una fuente de datos

Qu es un entorno conectado?

Ventajas:
El entorno es ms fcil de mantener La concurrencia se controla ms fcilmente Es ms probable que los datos estn ms actualizados que en otros escenarios

Inconvenientes:
Debe existir una conexin de red constante Escalabilidad limitada

Conectado

Un entorno desconectado es aquel en el que los datos pueden modificarse de forma independiente y los cambios se escriben posteriormente en la base de datos Ventajas: Las conexiones se utilizan durante el menor tiempo posible, permitiendo que menos conexiones den servicio a ms usuarios Un entorno desconectado mejora la escalabilidad y el rendimiento de las aplicaciones Inconvenientes: Los datos no siempre estn actualizados Pueden producirse conflictos de cambios que deben solucionarse

Qu es un entorno desconectado?

Ventajas:
Las conexiones se utilizan durante el menor tiempo posible, permitiendo que menos conexiones den servicio a ms usuarios Un entorno desconectado mejora la escalabilidad y el rendimiento de las aplicaciones

Inconvenientes:
Los datos no siempre estn actualizados Pueden producirse conflictos de cambios que deben solucionarse

Desconectado

Ventajas
ADO.NET

Las aplicaciones ADO.NET pueden aprovechar la flexibilidad y la amplia aceptacin de XML. Dado que XML es el formato de transmisin de conjuntos de datos a travs de la red, cualquier componente que pueda leer el formato XML podr procesar los datos. No es necesario en absoluto que el componente receptor sea un componente ADO.NET: el componente transmisor puede transmitir simplemente el conjunto de datos a su destino, independientemente de cmo est implementado el componente receptor.

Interoperabilidad

A lo largo de la vida de un sistema implementado es posible hacer cambios modestos, pero raramente se intenta hacer cambios importantes, estructurales, debido a su dificultad. Es de lamentar que sea as puesto que, en el curso natural de los acontecimientos, tales cambios importantes pueden hacerse necesarios. Dividir en el servidor el procesamiento de la lgica de empresa y el procesamiento de la interfaz de usuario en niveles diferentes y en equipos separados.

Mantenimiento

En Visual Studio, los componentes de datos ADO.NET encapsulan funcionalidad de acceso a datos de diversas formas que ayudan a programar de modo ms rpido y con menos errores. Por ejemplo, los comandos de datos condensan la tarea de generar y ejecutar instrucciones SQL o procedimientos almacenados.

Programabilidad

Para las aplicaciones desconectadas, los conjuntos de datos ADO.NET ofrecen ventajas de rendimiento frente a los conjuntos de registros ADO desconectados. Cuando se utiliza el clculo de referencias de COM para transmitir un conjunto de registros desconectado entre niveles, la conversin de los valores del conjunto de registros a tipos de datos reconocibles por COM puede suponer un costo de procesamiento significativo. En ADO.NET, tal conversin de tipos de datos no es necesaria.

Redimiento

Dado que el Web puede incrementar en gran medida la demanda de datos, la escalabilidad adquiere una importancia crucial. Las aplicaciones para Internet tienen un suministro ilimitado de usuarios potenciales. Aunque una aplicacin pueda dar un buen servicio a una docena de usuarios, eso no significa que pueda dar un servicio igualmente bueno a cientos o cientos de miles de ellos.

Escalabilidad

El buen uso y conexin con los gestores de bases de datos tambin depende de la correcta instalacin de ellos, de lo contrario crean problemas Links: http://msdn.microsoft.com/eses/library/gg145028(v=vs.100).aspx

Consideraciones

GRACIAS

ADO.NET
ActiveX Data Object
Mg. Jos Mauricio Flores Avils Agosto de 2013

You might also like