Compartir a través de


Ejecución en paralelo en ADO.NET

La ejecución en paralelo en .NET Framework es la posibilidad de ejecutar una aplicación en un equipo que tiene instaladas varias versiones de .NET Framework, utilizando exclusivamente la versión para la que se ha compilado la aplicación. Para obtener más información sobre la configuración de la ejecución en paralelo, vea Ejecución simultánea.

Una aplicación compilada mediante una versión de .NET Framework se puede ejecutar en otra versión distinta de .NET Framework. No obstante, se recomienda compilar una versión de la aplicación por cada versión instalada de .NET Framework y ejecutarlas por separado. En cualquier caso, debe tener en cuenta los cambios entre las diferentes versiones de ADO.NET que pueden afectar a la compatibilidad con versiones posteriores o anteriores de la aplicación.

Compatibilidad con versiones anteriores y posteriores

La compatibilidad con versiones posteriores implica que una aplicación se puede compilar con una versión anterior de .NET Framework, aunque se podrá ejecutar asimismo correctamente en una versión posterior de .NET Framework. El código ADO.NET escrito para .NET Framework versión 1.1 es compatible con versiones posteriores.

La compatibilidad con versiones anteriores significa que una aplicación compilada para una versión posterior de .NET Framework se ejecuta también en versiones anteriores de .NET Framework, sin que su funcionalidad se vea afectada. Por supuesto, no será así en el caso de las características incluidas en una versión nueva de .NET Framework.

Proveedor de datos .NET Framework para ODBC

A partir de la versión 1.1, el proveedor de datos .NET Framework para ODBC (System.Data.Odbc) se incluye como parte de .NET Framework. El proveedor de datos de ODBC está disponible para los programadores de la versión 1.0 de .NET Framework mediante descarga en el sitio web del Centro para programadores de acceso a datos y almacenamiento. El espacio de nombres del proveedor de datos .NET Framework para ODBC descargado es Microsoft.Data.Odbc.

Si ha programado una aplicación para la versión 1.0 de .NET Framework que usa el proveedor de datos de ODBC para conectarse al origen de datos y desea ejecutar dicha aplicación en .NET Framework versión 1.1 o posteriores, debe actualizar el espacio de nombres del proveedor de datos de ODBC a System.Data.Odbc. A continuación, debe compilarla de nuevo para la nueva versión de .NET Framework.

Si ha programado una aplicación para la versión 2.0 o posterior de .NET Framework que usa el proveedor de datos de ODBC para conectarse al origen de datos y desea ejecutar dicha aplicación en la versión 1.0 de .NET Framework, debe descargar el proveedor de datos de ODBC e instalarlo en el sistema de la versión 1.0 de .NET Framework. A continuación debe cambiar el espacio de nombres del proveedor de datos de ODBC a Microsoft.Data.Odbc y volver a compilar la aplicación para la versión 1.0 de .NET Framework.

Proveedor de datos .NET Framework para Oracle

A partir de la versión 1.1, el proveedor de datos .NET Framework para Oracle (System.Data.OracleClient) se incluye como parte de .NET Framework. El proveedor de datos está disponible para los programadores de la versión 1.0 de .NET Framework mediante descarga desde el sitio web del Centro para programadores de acceso a datos y almacenamiento.

Si ha programado una aplicación para la versión 2.0 o posterior de .NET Framework que usa el proveedor de datos para conectarse al origen de datos y desea ejecutar esta aplicación en la versión 1.0 de .NET Framework, debe descargar el proveedor de datos e instalarlo en el sistema de la versión 1.0 de .NET Framework.

Seguridad de acceso del código

En la versión 1.0 de .NET Framework, se requiere que los proveedores de datos de .NET Framework (System.Data.SqlClient, System.Data.OleDb) se ejecuten con un permiso FullTrust. Si se intentan utilizar los proveedores de datos de .NET Framework con la versión 1.0 de .NET Framework en una zona con un permiso inferior a FullTrust, se produce una excepción SecurityException.

Sin embargo, desde la versión 2.0 de .NET Framework se pueden usar todos los proveedores de datos de .NET Framework en zonas de confianza parcial. Además, se ha agregado una nueva característica de seguridad a los proveedores de datos de .NET Framework en .NET Framework 1.1. Esta característica le permite restringir las cadenas de conexión que se pueden utilizar en una zona de seguridad determinada. Es posible también deshabilitar el uso de contraseñas en blanco para una zona de seguridad determinada. Para obtener más información, vea Seguridad de acceso del código y ADO.NET.

Debido a que cada instalación de .NET Framework tiene un archivo Security.config independiente, no existen problemas de compatibilidad con la configuración de la seguridad. Sin embargo, si la aplicación depende de las capacidades de seguridad adicionales de ADO.NET incluidas en la versión 1.1 de .NET Framework y posteriores, no podrá distribuir la aplicación a un sistema de la versión 1.0.

Ejecución de SqlCommand

A partir de la versión 1.1 de .NET Framework, se ha cambiado la forma en que ExecuteReader ejecuta los comandos en el origen de datos.

En la versión 1.0 de .NET Framework, ExecuteReader ejecuta todos los comandos en el contexto del procedimiento almacenado sp_executesql. Como resultado, los comandos que influyen en el estado de la conexión (Activar NOCOUNT, por ejemplo) solo se aplican a la ejecución del comando actual. Mientras la conexión permanece abierta, los comandos que se ejecutan posteriormente no modifican el estado de la conexión.

En la versión 1.1 de .NET Framework y posteriores, ExecuteReader solo ejecuta un comando en el contexto del procedimiento almacenado sp_executesql si dicho comando contiene parámetros, ya que de esta forma mejora el rendimiento. Como consecuencia, si un comando que influye en el estado de la conexión se incluye en un comando sin parámetros, modifica el estado de la conexión de todos los comandos posteriores que se ejecuten mientras la conexión esté abierta.

Tomemos como ejemplo el siguiente lote de comandos, que se ejecuta en una llamada a ExecuteReader.

SET NOCOUNT ON;
SELECT * FROM dbo.Customers;

En la versión 1.1 de .NET Framework y posteriores, NOCOUNT permanecerá en ON para los comandos que se ejecuten posteriormente, mientras la conexión esté abierta. En el caso de la versión 1.0 de .NET Framework, NOCOUNT solo permanece en ON para la ejecución actual de comandos.

Este cambio puede afectar a la compatibilidad con versiones posteriores y anteriores de la aplicación si depende del comportamiento de ExecuteReader para cualquiera de las versiones de .NET Framework.

Para las aplicaciones que se ejecutan en versiones anteriores y posteriores de .NET Framework, puede escribir el código para asegurarse de que el comportamiento sea el mismo independientemente de la versión que se esté ejecutando. Si desea asegurarse de que un comando modifica el estado de la conexión para todos los comandos que se ejecuten posteriormente, se recomienda ejecutar el comando usando ExecuteNonQuery. Si desea asegurarse de que un comando no modifica el estado de la conexión para todos los comandos que se ejecuten posteriormente, se recomienda incluir los comandos para restablecer el estado de la conexión en el comando. Por ejemplo:

SET NOCOUNT ON;
SELECT * FROM dbo.Customers;
SET NOCOUNT OFF;

Microsoft SQL Server Native Client

Microsoft SQL Server Native Client combina el proveedor OLE DB de SQL y el controlador ODBC de SQL en una biblioteca de vínculos dinámicos (DLL), compatible con las aplicaciones que usan distintas API de código nativo (ODBC, OLE DB y ADO) en Microsoft SQL Server. Debe utilizar SQL Server Native Client en lugar de Microsoft Data Access Components (MDAC) para crear nuevas aplicaciones o mejorar las aplicaciones existentes que necesitan aprovechar las características que se incorporaron en SQL Server 2005, como los conjuntos de resultados activos múltiples (MARS), las notificaciones de consulta, los tipos definidos por el usuario (UDT) y la compatibilidad con tipos de datos XML.

Microsoft Data Access Components (MDAC)

Los proveedores de datos de .NET Framework para OLE DB y ODBC necesitan MDAC 2.6 o posterior en todas las versiones de .NET Framework. Se recomienda la versión MDAC 2.8 SP1. Si bien esto no presenta problemas en la ejecución en paralelo, es importante tener en cuenta que, en la actualidad, MDAC no admite la ejecución en paralelo. Por lo tanto, es importante comprobar que la aplicación seguirá funcionando correctamente con la nueva versión antes de actualizar los componentes de MDAC de la instalación.

Para obtener más información acerca de MDAC, vea el Centro para programadores de acceso a datos y almacenamiento.

Windows Data Access Components (Windows DAC)

Windows Data Access Components (Windows DAC) 6.0 es un conjunto de tecnologías incluidas en Windows Vista para proporcionar acceso a la información en toda la empresa. Estas tecnologías incluyen las últimas versiones de las tecnologías de acceso a datos incluidas en MDAC: Microsoft ActiveX Data Objects (ADO), OLE DB y Microsoft Open Database Connectivity (ODBC).

Para obtener más información acerca de Windows DAC, vea Windows Data Access Components SDK Overview.

Vea también

Otros recursos

Información general sobre ADO.NET

Recuperación y modificación de datos en ADO.NET