Vous êtes sur la page 1sur 7

ADO.

NET

Introduccin
ADO.NET es heredero de la tecnologa ADO (ActiveX Data Objects)
implantada por Microsoft hacia el ao 2002.
Supone la adaptacin a .NET Framework de una arquitectura de base de
datos que permita acceder a bases de datos de cualquier proveedor ya se en
modo local o remoto.
Permite su utilizacin baj q qp o cualquier entorno que soporte .NET
Framework (no slo bajo Windows).
Basada en las clases base de la arquitectura .NET.
9 Puede ser utilizada bajo cualquier lenguaje .NET.
Permite la ampliacin a aplicaciones basadas en el modelo
cliente/servidor.
Minimiza la carga de los servidores (modo desconectado).

ADO.NET
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para
programadores de .NET Framework. ADO.NET ofrece abundancia de componentes
para la creacin de aplicaciones de uso compartido de datos distribuidas. Constituye una
parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de
aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creacin
de clientes de base de datos front-end y objetos empresariales de nivel medio que
utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.

I.

Caractersticas:

1.1.

Arquitectura de ADO.NET:

Tradicionalmente, el procesamiento de datos ha dependido principalmente de un modelo


de dos niveles basado en una conexin. A medida que aumenta el uso que hace el
procesamiento de datos de arquitecturas de varios niveles, los programadores estn
pasando a un enfoque sin conexin con el fin de proporcionar una mejor escalabilidad a
sus aplicaciones.

Componentes de ADO.NET:
Los dos componentes principales de ADO.NET 3,0 para el acceso a los datos y su
manipulacin son los proveedores de datos .NET Framework y DataSet.

A)

Proveedores de datos .NET Framework:

Son componentes diseados explcitamente para la manipulacin de datos y el acceso


rpido a datos de solo lectura y solo avance. El objeto Connection proporciona
conectividad a un origen de datos. El objeto Command permite tener acceso a comandos
de base de datos para devolver datos, modificar datos, ejecutar procedimientos
almacenados y enviar o recuperar informacin sobre parmetros. DataReader
proporciona un flujo de datos de alto rendimiento desde el origen de datos. Por ltimo,
el objeto DataAdapter proporciona el puente entre el objeto DataSet y el origen de
datos. DataAdapter 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.

B)

DataSet:

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 DataTable. Para obtener ms
informacin, consulta DataSets, DataTables y DataViews.
En el diagrama siguiente se ilustra la relacin entre un proveedor de datos .NET
Framework y un DataSet.

C)

LINQ to DataSet

Proporciona capacidades de consulta y comprobacin de tipo en tiempo de compilacin


de los datos almacenados en cach de un objeto DataSet. Permite escribir consultas en
uno de los lenguajes de desarrollo de .NET Framework, como C# o Visual Basic.

D)

LINQ to SQL:

Admite consultas en un modelo de objetos asignado a las estructuras de datos de una


base de datos relacional sin utilizar un modelo conceptual intermedio. Cada tabla se
representa mediante una clase distinta, acoplando de manera precisa el modelo de
objetos al esquema de la base de datos relacional. LINQ to SQL convierte las consultas
de Language-Integrated Query del modelo de objetos a Transact-SQL y las enva a la
base de datos para su ejecucin. Cuando la base de datos devuelve los resultados, LINQ
to SQL los vuelve a traducir a objetos.

E)

ADO.NET Entity Framework:

Est diseado para permitir que los desarrolladores creen aplicaciones de acceso a los
datos programando en un modelo de aplicacin conceptual en lugar de programar
directamente en un esquema de almacenamiento relacional. El objetivo es reducir la
cantidad de cdigo y mantenimiento que se necesita para las aplicaciones orientadas a
datos.

F)

Servicios de datos de WCF:

Describe cmo se usa Servicios de datos de WCF para 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 estndar.

G)

XML y ADO.NET:

ADO.NET aprovecha la eficacia de XML para proporcionar acceso a datos sin


conexin. ADO.NET fue diseado teniendo en cuenta las clases de XML incluidas en
.NET Framework; ambos son componentes de una nica arquitectura.
ADO.NET y las clases de XML incluidas en .NET Framework convergen en el objeto
DataSet. DataSet se puede rellenar con datos procedentes de un origen XML, ya sea ste
un archivo o una secuencia XML. DataSet se puede escribir como XML conforme al
consorcio World Wide Web (W3C), que incluye su esquema como esquema lenguaje de
definicin de esquemas XML, independientemente del origen de los datos incluidos
enDataSet. Puesto que el formato nativo de serializacin del DataSet es XML, es un
medio excelente para mover datos de un nivel a otro, por lo queDataSet es idneo para
usar datos y contextos de esquemas de interaccin remota desde y hacia un servicio
Web XML.

ADO.NET con Base de datos SQL Server

Modelo de objetos ADO.NET


ADO.NET es un conjunto de libreras orientadas a objetos que permiten interactuar con
el origen de datos (data source). El origen de datos es una base de datos como tambin
puede ser un archivo de texto, planilla electrnica o un archivo XML. En este tutorial
tomaremos a ADO.NET como una forma de comunicarse con una base de datos.
El modelo de objetos ADO.NET proporciona una API (application programming
interface) para acceder a los sistemas de bases de datos mediante la programacin.
El IDE de Visual Studio .Net cuenta con herramientas de programacin visual que
simplifican el proceso de utilizar una base de datos en un proyecto. Tambin posee
herramientas visuales para crear una base de datos de distintos proveedores de BD.
System.Data es el espacio de nombres raz de la API de ADO.NET.
System.Data.OleDb es el espacio de nombres (workspace) que contiene clases
diseadas para trabajar con cualquier origen de datos (Access, Oracle, MySql, etc.)
System.Data.SqlClient contiene clases optimizadas para trabajar con bases de datos de
Microsoft SQL Server.
Para este tutorial utilizaremos bases de datos de SQL Server 2010 que viene incluido en
el Visual C# 2010.

Ventajas de ADO.NET
ADO.NET brinda varias ventajas sobre las anteriores versiones de ADO y sobre otros
componentes de acceso a datos. Estas ventajas se incluyen en las siguientes categoras:

Interoperabilidad
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. En
realidad, 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. El componente de destino podra ser una aplicacin de Visual Studio o
cualquier otra aplicacin implementada con cualquier herramienta. El nico requisito es

que el componente receptor pueda leer XML. Como estndar del sector, XML se dise
precisamente con el propsito de alcanzar este tipo de interoperabilidad.

Mantenibilidad
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. Por ejemplo, a
medida que una aplicacin implementada se hace ms popular entre los usuarios, es
posible que el aumento de la carga de rendimiento haga necesarios cambios
estructurales. A medida que crece la carga de rendimiento en un servidor de la
aplicacin implementada, los recursos del sistema pueden escasear y el tiempo de
respuesta y el rendimiento pueden resentirse. Ante este problema, los arquitectos de
software pueden tomar la decisin de 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. En la prctica, el nivel del servidor de aplicacin se reemplaza con
dos niveles, lo que alivia la escasez de recursos del sistema.
El problema no consiste en disear una aplicacin de tres niveles. Por el contrario, se
trata de aumentar el nmero de niveles despus de implementar una aplicacin. Si la
aplicacin original se implement en ADO.NET mediante conjuntos de datos, esta
transformacin resulta ms sencilla. Cuando reemplace un solo nivel por dos niveles, no
olvide organizar estos dos niveles para que intercambien informacin. Dado que los
niveles pueden transmitir datos por medio de conjuntos de datos con formato XML, la
comunicacin es relativamente fcil.

Programabilidad
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.
De igual forma, las clases de datos ADO.NET generadas por las herramientas del
diseador tienen como resultado conjuntos de datos con tipo. Esto, a su vez, permite el
acceso a los datos mediante programacin con tipo. Por ejemplo, considere la siguiente
lnea de cdigo, que obtiene acceso a un miembro de datos en un conjunto de datos sin
tipo:
C#VB
if (totalCost > (double)dataSet1.Tables["Customers"].Rows[n]["AvailableCredit"])

La lnea equivalente, con acceso a un miembro de datos de un conjunto de datos con


tipo, tiene el aspecto siguiente:
C#VB

if (totalCost > dataSet2.Customers[n].AvailableCredit)

El cdigo correspondiente al conjunto de datos con tipo es ms fcil de leer. Tambin es


ms fcil de escribir, porque se proporciona la finalizacin de instrucciones. Por
ejemplo, entre la lista de opciones para finalizar la siguiente instruccin se encuentra
"AvailableCredit":
If totalCost > dataSet2.Customers(n).
Por ltimo, el cdigo correspondiente al conjunto de datos con tipo es ms seguro,
porque proporciona la comprobacin de tipos en tiempo de compilacin. Por ejemplo,
suponga que AvailableCredit se expresa como un valor de moneda. Si el programador
asigna, por error, un valor de cadena a AvailableCredit, el entorno le informara del error
en tiempo de compilacin. Cuando se trabaja con conjuntos de datos sin tipo, el
programador no sabe del error hasta el momento de la ejecucin.
Para obtener ms informacin sobre conjuntos de datos con y sin tipo, vea Informacin
general sobre conjuntos de datos en Visual Studio.
Rendimiento
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.
Escalabilidad
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. Una aplicacin que consuma recursos tales
como bloqueos y conexiones de base de datos no dar un buen servicio a un gran
nmero de usuarios, porque la demanda de recursos limitados por parte de los usuarios
acabar por superar su disponibilidad.
Para facilitar la escalabilidad, ADO.NET anima a los programadores a ahorrar recursos
limitados. Las aplicaciones ADO.NET utilizan un acceso desconectado a los datos, por
lo que no retienen bloqueos ni conexiones activas con bases de datos durante largos
perodos de tiempo.