Architecture ADO.NET
Le traitement des données repose traditionnellement sur un modèle à deux couches utilisant une connexion. Le traitement des données utilisant de plus en plus des architectures multicouches, les programmeurs s'orientent vers une approche déconnectée de façon à proposer une meilleure évolutivité pour leurs applications.
XML et ADO.NET
ADO.NET tire parti de la puissance de XML pour fournir un accès déconnecté aux données. ADO.NET a été conçu avec les classes XML du .NET Framework ; les deux composants appartiennent à une même architecture.
ADO.NET et les classes XML du .NET Framework convergent dans l'objet DataSet. Le DataSet peut être rempli de données provenant d'une source XML, qu'il s'agisse d'un fichier ou d'un flux XML. Le DataSet peut être écrit en XML conforme au W3C (World Wide Web Consortium), y compris son schéma, en tant que schéma en langage XSD (XML Schema Definition), quelle que soit la source des données contenues dans le DataSet. Le format de sérialisation natif du DataSet étant XML, il constitue un excellent support pour le déplacement de données entre couches, faisant ainsi du DataSet le meilleur choix pour proposer un accès distant aux données et au contexte du schéma vers et à partir d'un service Web XML.
Le DataSet peut également être synchronisé avec un XmlDataDocument pour fournir en temps réel un accès aux données relationnel et hiérarchique. Pour plus d'informations, consultez Synchronisation d'un DataSet avec un XmlDataDocument.
Composants de ADO.NET
Les composants de ADO.NET ont été conçus de façon à distinguer l'accès aux données de la manipulation de données. Cette distinction est rendue possible par deux composants centraux de ADO.NET : le DataSet et le fournisseur de données .NET Framework, qui est un ensemble de composants comprenant les objets Connection, Command, DataReader et DataAdapter.
Le DataSet ADO.NET est le composant principal de l'architecture déconnectée de ADO.NET. Le DataSet est explicitement conçu pour permettre un accès aux données indépendant de toute source de données. Il peut donc être utilisé avec plusieurs sources de données différentes, utilisé avec des données XML ou utilisé pour gérer des données locales de l'application. Le DataSet contient une collection d'un ou de plusieurs objets DataTable constitués de lignes et de colonnes de données, ainsi que des informations concernant les contraintes de clé primaire, de clé étrangère et des informations relationnelles sur les données contenues dans les objets DataTable.
L'autre élément principal de l'architecture ADO.NET est le fournisseurs de données .NET Framework dont les composants sont explicitement conçus pour la manipulation des données et un accès aux données rapide, avant uniquement (forward only) et en lecture seule. L'objet Connection assure la connectivité avec une source de données. L'objet Command permet l'accès aux commandes de base de données pour retourner des données, modifier des données, exécuter des procédures stockées et envoyer ou extraire des informations sur les paramètres. Le DataReader fournit un flux très performant de données en provenance de la source de données. Enfin, le DataAdapter établit une passerelle entre l'objet DataSet et la source de données. Le DataAdapter utilise les objets Command pour exécuter des commandes SQL au niveau de la source de données afin d'une part d'approvisionner le DataSet en données, et d'autre part de répercuter dans la source de données les modifications apportées aux données contenues dans le DataSet.
Vous pouvez écrire des fournisseurs de données .NET Framework pour n'importe quelle source de données. Le .NET Framework est livré avec deux fournisseurs de données .NET Framework : le fournisseur de données .NET Framework pour SQL Server et le fournisseur de données .NET Framework pour OLE DB.
Le schéma suivant représente les composants de l'architecture ADO.NET.
Architecture ADO.NET
Accès distant ou marshaling des données entre couches et clients
Le design du DataSet vous permet de transporter facilement des données vers les clients via le Web en utilisant les services Web XML, tout en vous autorisant à marshaler des données entre composants .NET à l'aide des services .NET Remoting. Vous pouvez aussi, de cette façon, fournir un accès distant à un DataSet fortement typé. Pour obtenir une vue d'ensemble des services Web XML, consultez Vue d'ensemble des services Web XML. Pour obtenir un exemple d'utilisation d'un DataSet à partir d'un service Web XML, consultez Utilisation d'un DataSet à partir d'un service Web XML.
Vous trouverez une vue d'ensemble des services d'accès distant dans Vue d'ensemble de .NET Remoting. Notez que les objets DataTable peuvent également être utilisés avec des services d'accès distant, mais ils ne peuvent pas être transportés via un service Web XML.
Configuration requise pour l'utilisation de la plate-forme ADO.NET
Le Kit de développement .NET Framework SDK de Microsoft (incluant ADO.NET) est pris en charge sur Microsoft® Windows® 2000, Microsoft® Windows NT® 4 avec le Service Pack 6a, Microsoft® Windows® Millennium Edition, Microsoft® Windows® 98 et Microsoft® Windows® SE. L'utilisation du fournisseur de données .NET Framework pour SQL Server comme celle du fournisseur de données .NET Framework pour OLE DB nécessite l'installation de Microsoft Data Access Components 2.6 ou version ultérieure.
L'exemple de code suivant montre comment inclure l'espace de noms System.Data dans vos applications pour que vous puissiez utiliser ADO.NET.
Imports System.Data
[C#]
using System.Data;
Les classes ADO.NET se trouvent dans System.Data.dll et sont intégrées aux classes XML de System.Xml.dll. Lors de la compilation du code qui utilise l'espace de noms System.Data, il convient de référencer System.Data.dll ainsi que System.Xml.dll. Pour obtenir un exemple de compilation d'une application ADO.NET à l'aide d'un compilateur de ligne de commande, consultez Exemple d'application ADO.NET.
Choix d'un DataReader ou d'un DataSet
Au moment de décider si votre application doit utiliser un DataReader (consultez Extraction des données à l'aide de DataReader) ou un DataSet (consultez Création et utilisation de DataSets), pensez au type de fonctionnalité requis par votre application. Utilisez un DataSet pour effectuer les opérations suivantes :
- Fournir un accès distant entre couches ou à partir d'un service Web XML.
- Interagir dynamiquement avec les données par le biais par exemple de la liaison à un contrôle Windows Forms ou de la combinaison et la mise en relation de données de diverses sources.
- Mettre des données en cache localement dans votre application.
- Fournir un affichage XML hiérarchique de données relationnelles et utiliser des outils tels qu'une transformation XSL ou une requête XPath (XML Path Language) sur vos données. Pour plus d'informations, consultez XML et le DataSet.
- Réaliser un traitement complet sur des données sans qu'une connexion ouverte à la source de données soit nécessaire, ce qui libère la connexion pour d'autres clients.
Si vous n'avez pas besoin de la fonctionnalité fournie par le DataSet, vous pouvez améliorer les performances de votre application en utilisant le DataReader pour retourner les données avec un accès en lecture seule et avant uniquement. Bien que le DataAdapter utilise le DataReader pour remplir un DataSet (consultez Remplissage d'un DataSet à partir d'un DataAdapter), vous pouvez, en utilisant le DataReader, gagner en performances, car vous économiserez la mémoire qui serait utilisée par le DataSet et n'aurez pas à effectuer le traitement requis pour créer et injecter le contenu du DataSet.
Voir aussi
Vue d'ensemble de ADO.NET | Accès aux données avec ADO.NET | Exemple d'application ADO.NET