Exécution côte à côte dans ADO.NET

L’exécution côte à côte dans le .NET Framework représente la capacité à exécuter une application sur un ordinateur sur lequel plusieurs versions du .NET Framework sont installées, en utilisant exclusivement la version pour laquelle l’application a été compilée. Pour obtenir des informations détaillées sur la configuration de l’exécution côte à côte, consultez Exécution côte à côte.

Une application compilée en utilisant une version du .NET Framework peut s’exécuter sur une autre version de celui-ci. Toutefois, nous vous conseillons de compiler une version de l’application pour chaque version du .NET Framework installée, et de les exécuter séparément. Dans l’un ou l’autre cas de figure, vous devez tenir compte des modifications apportées dans ADO.NET entre les mises en production, qui peuvent affecter la compatibilité ascendante ou descendante de votre application.

Compatibilités descendante et ascendante

La compatibilité ascendante signifie qu’une application peut être compilée avec une version antérieure du .NET Framework, et qu’elle fonctionnera correctement avec une version ultérieure de celui-ci. Le code ADO.NET écrit pour le .NET Framework version 1.1 sera compatible avec des versions ultérieures.

La compatibilité descendante signifie qu’une application est compilée pour une version plus récente du .NET Framework, et qu’elle continue de s’exécuter sur des versions antérieures de celui-ci, sans perte de fonctionnalité. Évidemment, ce ne sera pas le cas des fonctionnalités introduites dans une nouvelle version du .NET Framework.

Fournisseur de données .NET Framework pour ODBC

À compter de la version 1.1, le fournisseur de données .NET Framework pour ODBC (System.Data.Odbc) est inclus dans le .NET Framework.

Si une application développée pour la version 1.0 du .NET Framework utilise le fournisseur de données ODBC pour se connecter à votre source de données et que vous voulez exécuter cette application sur le .NET Framework version 1.1 ou ultérieure, vous devez mettre à jour l’espace de noms du fournisseur de données ODBC vers System.Data.Odbc. Vous devez ensuite le recompiler pour la version plus récente du .NET Framework.

Si une application développée pour la version 2.0 ou ultérieure du .NET Framework utilise le fournisseur de données ODBC pour se connecter à votre source de données alors que vous voulez exécuter cette application sur la version 1.0 du .NET Framework, vous devez télécharger le fournisseur de données ODBC et l’installer sur le système .NET Framework version 1.0. Vous devez ensuite remplacer l’espace de noms du fournisseur de données ODBC par Microsoft.Data.Odbc, et recompiler l’application pour la version 1.0 du .NET Framework.

Fournisseur de données .NET Framework pour Oracle

À compter de la version 1.1, le fournisseur de données .NET Framework pour Oracle (System.Data.OracleClient) est inclus dans le .NET Framework.

Si une application développée pour la version 2.0 ou ultérieure du .NET Framework utilise le fournisseur de données pour se connecter à votre source de données alors que vous voulez exécuter cette application sur la version 1.0 du .NET Framework, vous devez télécharger le fournisseur de données et l’installer sur le système .NET Framework version 1.0.

Sécurité d'accès du code

À compter de .NET Framework version 2.0, tous les fournisseurs de données .NET Framework peuvent être utilisés dans des zones partiellement fiables. En outre, une nouvelle fonctionnalité de sécurité a été ajoutée aux fournisseurs de données .NET Framework dans la version 1.1 du .NET Framework. Cette fonctionnalité vous permet de restreindre les chaînes de connexion qui peuvent être utilisées dans une zone de sécurité particulière. Vous pouvez également désactiver l'utilisation des mots de passe vides pour une zone de sécurité particulière. Pour plus d'informations, consultez Code Access Security and ADO.NET.

Dans la mesure où chaque installation du .NET Framework possède un fichier Security.config distinct, il n’existe pas de problème de compatibilité ascendante ou descendante avec les paramètres de sécurité. Toutefois, si votre application dépend des fonctionnalités de sécurité supplémentaires d’ADO.NET incluses dans .NET Framework version 1.1 et ultérieure, vous ne pourrez pas la distribuer sur un système doté d’une version 1.0.

Exécution de SqlCommand

Dans le .NET Framework versions 1.1 et ultérieures, ExecuteReader n’exécute une commande dans le contexte de la procédure stockée sp_executesql que si la commande contient des paramètres qui améliorent les performances. Par conséquent, si une commande affectant l'état de la connexion est incluse dans une commande non paramétrée, elle modifie l'état de la connexion pour toutes les commandes suivantes exécutées pendant que la connexion est ouverte.

Considérez le lot de commandes suivant exécuté dans un appel à ExecuteReader.

SET NOCOUNT ON;  
SELECT * FROM dbo.Customers;  

NOCOUNT restera ON pour toutes les commandes suivantes exécutées pendant que la connexion est ouverte.

Voir aussi