Arquitectura de ADO.NET
Tradicionalmente, el procesamiento de datos ha dependido principalmente de un modelo de dos niveles basado en una conexión. A medida que el procesamiento de datos utiliza cada vez más arquitecturas de varios niveles, los programadores están pasando a un enfoque sin conexión con el fin de proporcionar una escalabilidad mejor para sus aplicaciones.
XML y ADO.NET
ADO.NET aprovecha la eficacia de XML para proporcionar acceso a datos sin mantener una conexión abierta. ADO.NET fue diseñado 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. El DataSet se puede llenar con datos procedentes de un origen XML, ya sea éste un archivo o una secuencia XML. El DataSet se puede escribir como XML compatible con el del Consorcio World Wide Web (W3C), incluyendo su esquema como esquema XSD (Lenguaje de definición de esquemas XML), independientemente del origen de los datos incluidos en el DataSet. Puesto que el formato nativo de serialización del DataSet es XML, es un medio excelente para mover datos de un nivel a otro, por lo que el DataSet es idóneo para utilizar datos y contextos de esquemas de interacción remota desde y hacia un servicio Web XML.
El DataSet también se puede sincronizar con un XmlDataDocument para proporcionar acceso jerárquico y relacional a datos en tiempo real. Para obtener más información, vea Sincronizar DataSet con XmlDataDocument.
Componentes de ADO.NET
Los componentes de ADO.NET están diseñados para separar el acceso a datos de la manipulación de datos. ADO.NET tiene dos componentes principales que cumplen esta función: el DataSet y el proveedor de datos de .NET Framework, que es un conjunto de componentes entre los que se incluyen los objetos Connection, Command, DataReader y DataAdapter.
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.
El otro elemento central de la arquitectura de ADO.NET es el proveedor de datos de .NET Framework, cuyos componentes están diseñados expresamente para la manipulación de datos y para el acceso rápido a datos de avance de sólo lectura. El objeto Connection proporciona conectividad con 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 información sobre parámetros. El objeto DataReader proporciona una secuencia 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. El DataAdapter utiliza objetos Command para ejecutar comandos SQL en el origen de datos tanto para cargar el DataSet con datos como para reconciliar en el origen de datos los cambios aplicados a los datos incluidos en el DataSet.
Es posible escribir proveedores de datos de .NET Framework para cualquier origen de datos. .NET Framework incluye dos proveedores de datos de .NET Framework: el proveedor de datos de .NET Framework para OLE DB y el proveedor de datos de .NET Framework para SQL Server.
En el siguiente diagrama se ilustran los componentes de la arquitectura de ADO.NET.
Arquitectura de ADO.NET
Usar de forma remota o calcular las referencias de datos entre niveles y clientes
El diseño del DataSet le permite transportar fácilmente datos a clientes a través del Web mediante servicios Web XML, así como calcular referencias de los datos entre componentes de .NET mediante servicios .NET Remoting. Mediante los mismos servicios, también puede utilizar de forma remota un DataSet con establecimiento inflexible de tipos. Para obtener información general sobre los servicios Web XML, vea Información general acerca de servicios Web XML. Para ver un ejemplo de cómo consumir un DataSet desde un servicio Web XML, vea Consumir DataSet a partir de un servicio Web XML.
En Información general de .NET Remoting encontrará información general sobre los servicios de interacción remota. Tenga en cuenta que los objetos DataTable también pueden utilizarse con servicios de interacción remota, pero no se pueden transportar mediante un servicio Web XML.
Requisitos de la plataforma ADO.NET
Microsoft .NET Framework SDK (incluido ADO.NET) es compatible con Microsoft® Windows® 2000, Microsoft® Windows NT® 4 con Service Pack 6a, Microsoft® Windows® Millennium Edition, Microsoft® Windows® 98 y Microsoft® Windows® SE. El uso del proveedor de datos de .NET Framework para SQL Server o del proveedor de datos de .NET Framework para OLE DB requiere la instalación de la versión 2.6 o posterior de Microsoft Data Access Components.
En el siguiente ejemplo de código se muestra cómo incluir el espacio de nombres System.Data en sus aplicaciones con el fin de utilizar ADO.NET.
Imports System.Data
[C#]
using System.Data;
Las clases de ADO.NET se encuentran en System.Data.dll y se integran con las clases de XML incluidas en System.Xml.dll. Al compilar código que utiliza el espacio de nombres System.Data, haga referencia tanto a System.Data.dll como a System.Xml.dll. Para obtener un ejemplo de compilación de una aplicación de ADO.NET mediante un compilador de la línea de comandos, vea Aplicación de ejemplo de ADO.NET.
Elegir un DataReader o un DataSet
A la hora de decidir si su aplicación debe utilizar un 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. Use 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. Para obtener más información, vea XML y DataSet.
- 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.
Si no necesita la funcionalidad proporcionada por el DataSet, 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. Aunque el DataAdapter usa el DataReader para rellenar el contenido de un DataSet (vea Llenar un DataSet desde un DataAdapter), al utilizar el DataReader puede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet, además de evitar el procesamiento necesario para crear y rellenar el contenido del DataSet.
Vea también
Información general acerca de ADO.NET | Acceso a datos con ADO.NET | Aplicación de ejemplo de ADO.NET