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, voir 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 du .NET Framework. 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 versions, 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 du .NET Framework. Le code ADO.NET écrit pour le .NET Framework version 1.1 sera compatible avec les 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, sans dégradation des fonctionnalités. Évidemment, ce ne sera pas le cas pour les fonctions introduites dans une nouvelle version du .NET Framework.
Fournisseur de données .NET Framework pour ODBC
Le fournisseur de données .NET Framework pour ODBC (System.Data.Odbc), à partir de la version 1.1, fait partie intégrante du .NET Framework. Le fournisseur de données ODBC est à la disposition des développeurs .NET Framework version 1.0 sous la forme d'un téléchargement Web à l'adresse Data Access and Storage Developer Center (en anglais). L'espace de noms du fournisseur de données .NET Framework pour ODBC téléchargé est Microsoft.Data.Odbc.
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
Le fournisseur de données .NET Framework pour Oracle (System.Data.OracleClient), à partir de la version 1.1, fait partie intégrante du .NET Framework. Le fournisseur de données est à la disposition des développeurs .NET Framework version 1.0 sous la forme d'un téléchargement Web à l'adresse Data Access and Storage Developer Center (en anglais).
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
Les fournisseurs de données .NET Framework contenus dans la version 1.0 du .NET Framework (System.Data.SqlClient, System.Data.OleDb) doivent être exécutés avec l'autorisation FullTrust (confiance totale). Toute tentative d'utiliser les fournisseurs de données .NET Framework de la version 1.0 du .NET Framework dans une zone possédant un niveau d'autorisation inférieur à FullTrust entraîne SecurityException.
Toutefois, avec la version 2.0 du .NET Framework, tous les fournisseurs de données .NET Framework peuvent être utilisés dans des zones de confiance partielle. En outre, une nouvelle fonction de sécurité a été ajoutée aux fournisseurs de données .NET Framework dans la version 1.1 du .NET Framework. Cette fonction 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, voir Sécurité d'accès du code et 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 de ADO.NET incluses dans le .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
À partir de la version 1.1 du .NET Framework, la manière dont la méthode ExecuteReader exécute les commandes à la source de données a été modifiée.
Dans la version 1.0 du .NET Framework, la méthode ExecuteReader exécutait toutes les commandes dans le contexte de la procédure stockée sp_executesql. Par conséquent, les commandes qui affectent l'état de la connexion (SET NOCOUNT ON, par exemple) ne s'appliquent qu'à l'exécution de la commande actuelle. L'état de la connexion n'est pas modifié pour les commandes suivantes qui sont exécutées pendant que la connexion est ouverte.
Dans le .NET Framework version 1.1 et ultérieure, la méthode ExecuteReader exécute uniquement une commande dans le contexte de la procédure stockée sp_executesql si la commande contient des paramètres, ce qui améliore 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;
Dans le .NET Framework version 1.1 et ultérieure, NOCOUNT conserve la valeur ON pour toutes les commandes suivantes qui sont exécutées pendant que la connexion est ouverte. Dans la version 1.0 du .NET Framework, NOCOUNT ne garde la valeur ON que pour l'exécution de la commande actuelle.
Ce changement peut avoir une incidence sur la compatibilité descendante et ascendante de votre application si vous dépendez du comportement de la méthode ExecuteReader pour l'une ou l'autre version du .NET Framework.
Pour les applications qui s'exécutent sur des versions antérieures ou ultérieures du .NET Framework, vous pouvez écrire du code pour garantir que le comportement restera le même, quelle que soit la version utilisée. Si vous souhaitez vous assurer qu'une commande modifie l'état de la connexion pour toutes les commandes suivantes, nous vous recommandons d'exécuter votre commande à l'aide de la méthode ExecuteNonQuery. Si vous souhaitez vous assurer qu'une commande ne modifie pas la connexion pour toutes les commandes suivantes, nous vous recommandons d'inclure les commandes qui rétablissent l'état de la connexion dans votre commande. Par exemple :
SET NOCOUNT ON;
SELECT * FROM dbo.Customers;
SET NOCOUNT OFF;
Microsoft SQL Server Native Client
Microsoft SQL Server Native Client contient le fournisseur OLE DB SQL et le pilote ODBC SQL dans une bibliothèque de liens dynamiques (DLL) prenant en charge des applications à l'aide d'API en code natif (ODBC, OLE DB et ADO) dans Microsoft SQL Server. Il est préférable d'utiliser SQL Server Native Client plutôt que des composants MDAC (Microsoft Data Access Components) pour créer des applications ou améliorer des applications existantes qui doivent tirer parti des fonctionnalités introduites dans SQL Server 2005, telles que la prise en charge de jeux MARS (Multiple Active Result Sets), de notifications de requête, de types définis par l'utilisateur et de type de données XML.
MDAC (Microsoft Data Access Components)
Les fournisseurs de données .NET Framework pour OLE DB et ODBC requièrent MDAC, version 2.6 ou ultérieure, dans toutes les versions du .NET Framework, et MDAC 2.8 SP1 est recommandé. Bien que cette exigence n'entraîne aucun problème d'exécution côte à côte, notez que MDAC ne prend actuellement pas en charge l'exécution côte à côte. Il est donc important de vérifier que votre application continuera à fonctionner correctement avec la nouvelle version avant de procéder à la mise à niveau des composants MDAC dans votre installation.
Pour plus d'informations sur MDAC, voir Data Access and Storage Developer Center (en anglais).
Windows DAC (Windows Data Access Components)
Windows DAC (Windows Data Access Components) 6.0 est un ensemble de technologies inclus dans Windows Vista et qui permet d'accéder aux informations à travers l'entreprise. Ces technologies comprennent notamment les dernières versions des technologies d'accès aux données incluses dans MDAC : Microsoft ActiveX Data Objects (ADO), OLE DB et ODBC (Microsoft Open Database Connectivity).
Pour plus d'informations sur Windows DAC, consultez Windows Data Access Components SDK Overview (en anglais).