Arquitectura de ADO.NETADO.NET Architecture

Tradicionalmente, el procesamiento de datos ha dependido principalmente de un modelo de dos niveles basado en una conexión.Data processing has traditionally relied primarily on a connection-based, two-tier model. A medida que aumenta el uso que hace el procesamiento de datos de arquitecturas de varios niveles, los programadores están pasando a un enfoque sin conexión con el fin de proporcionar una mejor escalabilidad a sus aplicaciones.As data processing increasingly uses multi-tier architectures, programmers are switching to a disconnected approach to provide better scalability for their applications.

Componentes de ADO.NETADO.NET Components

Los dos componentes principales de ADO.NET para tener acceso a los datos y manipularlos son los .NET Framework proveedores de DataSetdatos y.The two main components of ADO.NET for accessing and manipulating data are the .NET Framework data providers and the DataSet.

Proveedores de datos .NET Framework.NET Framework Data Providers

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.The .NET Framework Data Providers are components that have been explicitly designed for data manipulation and fast, forward-only, read-only access to data. El objeto Connection proporciona conectividad a un origen de datos.The Connection object provides connectivity to a data source. 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.The Command object enables access to database commands to return data, modify data, run stored procedures, and send or retrieve parameter information. DataReader proporciona un flujo de datos de alto rendimiento desde el origen de datos.The DataReader provides a high-performance stream of data from the data source. Por último, el objeto DataAdapter proporciona el puente entre el objeto DataSet y el origen de datos.Finally, the DataAdapter provides the bridge between the DataSet object and the data source. 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.The DataAdapter uses Command objects to execute SQL commands at the data source to both load the DataSet with data and reconcile changes that were made to the data in the DataSet back to the data source. Para obtener más información, vea .NET Framework proveedores de datos y recuperar y modificar datos en ADO.net.For more information, see .NET Framework Data Providers and Retrieving and Modifying Data in ADO.NET.

DataSetThe DataSet

DataSet de ADO.NET está expresamente diseñado para el acceso a datos independientemente del origen de datos.The ADO.NET DataSet is explicitly designed for data access independent of any data source. 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.As a result, it can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. 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 de relación relacionada con los datos incluidos en los objetos DataTable.The DataSet contains a collection of one or more DataTable objects consisting of rows and columns of data, and also primary key, foreign key, constraint, and relation information about the data in the DataTable objects. Para obtener más información, vea conjuntos de datos , tablas de datos y vistasde datos.For more information, see DataSets, DataTables, and DataViews.

En el diagrama siguiente se ilustra la relación entre un proveedor de datos de DataSet.NET Framework y un.The following diagram illustrates the relationship between a .NET Framework data provider and a DataSet.

Gráfico ADO.netADO.Net graphic
Arquitectura de ADO.NETADO.NET architecture

Elegir un DataReader o un DataSetChoosing a DataReader or a DataSet

Cuando decida si la aplicación debe DataReader usar un (vea recuperar datos mediante un DataReader) o un DataSet (vea conjuntos de datos , DataTables y vistasde datos), tenga en cuenta el tipo de funcionalidad que requiere la aplicación.When you decide whether your application should use a DataReader (see Retrieving Data Using a DataReader) or a DataSet (see DataSets, DataTables, and DataViews), consider the type of functionality that your application requires. Use un DataSet para hacer lo siguiente:Use a DataSet to do the following:

  • Almacene datos en la memoria caché de la aplicación para poder manipularlos.Cache data locally in your application so that you can manipulate it. Si solamente necesita leer los resultados de una consulta, el DataReader es la mejor elección.If you only need to read the results of a query, the DataReader is the better choice.

  • Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML.Remote data between tiers or from an XML Web service.

  • 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.Interact with data dynamically such as binding to a Windows Forms control or combining and relating data from multiple sources.

  • 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.Perform extensive processing on data without requiring an open connection to the data source, which frees the connection to be used by other clients.

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 solo avance y de solo lectura.If you do not require the functionality provided by the DataSet, you can improve the performance of your application by using the DataReader to return your data in a forward-only, read-only manner. Aunque DataAdapter DataSet DataReaderusa para rellenar el contenido de un (vea rellenar un conjunto de un DataSet desde un DataAdapter), mediante el uso de, puede mejorar el rendimiento porque ahorrará memoria que consumirá el DataReader y evitan el procesamiento necesario para crear y rellenar el contenido DataSetde. DataSetAlthough the DataAdapter uses the DataReader to fill the contents of a DataSet (see Populating a DataSet from a DataAdapter), by using the DataReader, you can boost performance because you will save memory that would be consumed by the DataSet, and avoid the processing that is required to create and fill the contents of the DataSet.

LINQ to DataSetLINQ to DataSet

LINQ to DataSet proporciona capacidades de consulta y comprobación de tipo en tiempo de compilación de los datos almacenados en caché de un objeto DataSet.LINQ to DataSet provides query capabilities and compile-time type checking over data cached in a DataSet object. Permite escribir consultas en uno de los lenguajes de desarrollo de .NET Framework, como C# o Visual Basic.It allows you to write queries in one of the .NET Framework development language, such as C# or Visual Basic. Para más información, vea LINQ to DataSet.For more information, see LINQ to DataSet.

LINQ to SQLLINQ to SQL

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.LINQ to SQL supports queries against an object model that is mapped to the data structures of a relational database without using an intermediate conceptual model. Cada tabla se representa mediante una clase distinta, acoplando de manera precisa el modelo de objetos al esquema de la base de datos relacional.Each table is represented by a separate class, tightly coupling the object model to the relational database schema. LINQ to SQL convierte las consultas de Language-Integrated Query del modelo de objetos a Transact-SQL y las envía a la base de datos para su ejecución.LINQ to SQL translates language-integrated queries in the object model into Transact-SQL and sends them to the database for execution. Cuando la base de datos devuelve los resultados, LINQ to SQL los vuelve a traducir a objetos.When the database returns the results, LINQ to SQL translates the results back into objects. Para más información, vea LINQ to SQL.For more information, see LINQ to SQL.

ADO.NET Entity FrameworkADO.NET Entity Framework

ADO.NET Entity Framework está diseñado para permitir que los desarrolladores creen aplicaciones de acceso a los datos programando en un modelo de aplicación conceptual en lugar de programar directamente en un esquema de almacenamiento relacional.The ADO.NET Entity Framework is designed to enable developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema. El objetivo es reducir la cantidad de código y mantenimiento que se necesita para las aplicaciones orientadas a datos.The goal is to decrease the amount of code and maintenance required for data-oriented applications. Para obtener más información, consulte ADO.NET Entity Framework.For more information, see ADO.NET Entity Framework.

Servicios de datos de WCFWCF Data Services

Describe cómo se usa Servicios de datos de WCFWCF Data Services para implementar servicios de datos en web o en una intranet.Servicios de datos de WCFWCF Data Services is used to deploy data services on the Web or an intranet. Los datos se estructuran como entidades y relaciones de acuerdo a las especificaciones de Entity Data Model.The data is structured as entities and relationships according to the specifications of the Entity Data Model. Los datos implementados en este modelo se pueden direccionar mediante el protocolo HTTP estándar.Data deployed on this model is addressable by standard HTTP protocol. Para obtener más información, vea WCF Data Services 4.5.For more information, see WCF Data Services 4.5.

XML y ADO.NETXML and ADO.NET

ADO.NET aprovecha la eficacia de XML para proporcionar acceso sin conexión a los datos.ADO.NET leverages the power of XML to provide disconnected access to data. ADO.NET se diseñó a mano con las clases XML del .NET Framework; ambos son componentes de una única arquitectura.ADO.NET was designed hand-in-hand with the XML classes in the .NET Framework; both are components of a single architecture.

ADO.net y las clases XML del .NET Framework convergen en el DataSet objeto.ADO.NET and the XML classes in the .NET Framework converge in the DataSet object. DataSet se puede rellenar con datos procedentes de un origen XML, ya sea éste un archivo o una secuencia XML.The DataSet can be populated with data from an XML source, whether it is a file or an XML stream. DataSet se puede escribir como XML conforme al consorcio World Wide Web (W3C), que incluye su esquema como esquema lenguaje de definición de esquemas XML, independientemente del origen de los datos incluidos en DataSet.The DataSet can be written as World-Wide Web Consortium (W3C) compliant XML that includes its schema as XML schema definition language (XSD) schema, regardless of the source of the data in the 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 DataSet es idóneo para usar datos y contextos de esquemas de interacción remota desde y hacia un servicio Web XML.Because of the native serialization format of the DataSet is XML, it is an excellent medium for moving data between tiers, making the DataSet an optimal choice for remoting data and schema context to and from an XML Web service. Para obtener más información, vea XML Documents and Data (Documentos y datos XML).For more information, see XML Documents and Data.

Vea tambiénSee also