Share via


ADO.NET architectuur

Gegevensverwerking is traditioneel voornamelijk gebaseerd op een model met twee lagen op basis van een verbinding. Naarmate gegevensverwerking steeds vaker gebruikmaakt van architecturen met meerdere lagen, schakelen programmeurs over naar een niet-verbonden benadering om hun toepassingen betere schaalbaarheid te bieden.

ADO.NET-onderdelen

De twee belangrijkste onderdelen van ADO.NET voor het openen en bewerken van gegevens zijn de .NET Framework-gegevensproviders en de DataSet.

.NET Framework-gegevensproviders

De .NET Framework-gegevensproviders zijn onderdelen die expliciet zijn ontworpen voor gegevensmanipulatie en snelle, alleen-lezentoegang tot gegevens. Het Connection object biedt connectiviteit met een gegevensbron. Het Command object maakt het mogelijk om toegang te krijgen tot databaseopdrachten om gegevens te retourneren, gegevens te wijzigen, opgeslagen procedures uit te voeren en parametergegevens te verzenden of op te halen. Het DataReader biedt een krachtige stroom van gegevens uit de gegevensbron. Ten slotte biedt het de DataAdapter brug tussen het DataSet object en de gegevensbron. Er DataAdapter worden Command objecten gebruikt om SQL-opdrachten uit te voeren op de gegevensbron om de DataSet gegevens te laden en wijzigingen in de gegevens in de DataSet back-up naar de gegevensbron af te stemmen. Zie .NET Framework-gegevensproviders en het ophalen en wijzigen van gegevens in ADO.NET voor meer informatie.

De dataset

De ADO.NET DataSet is expliciet ontworpen voor gegevenstoegang onafhankelijk van elke gegevensbron. Als gevolg hiervan kan het worden gebruikt met meerdere en verschillende gegevensbronnen, gebruikt met XML-gegevens of worden gebruikt voor het beheren van gegevens lokaal voor de toepassing. Het DataSet bevat een verzameling van een of meer DataTable objecten die bestaan uit rijen en kolommen met gegevens, en ook primaire sleutel, refererende sleutel, beperking en relationele informatie over de gegevens in de DataTable objecten. Zie DataSets, DataTables en DataViews voor meer informatie.

In het volgende diagram ziet u de relatie tussen een .NET Framework-gegevensprovider en een DataSet.

ADO.Net graphic
ADO.NET architectuur

Een DataReader of een DataSet kiezen

Wanneer u besluit of uw toepassing een DataReader (zie Gegevens ophalen met behulp van een DataReader) of een DataSet (zie DataSets, DataTables en DataViews) moet gebruiken, moet u rekening houden met het type functionaliteit dat uw toepassing nodig heeft. Gebruik een DataSet opdracht om het volgende te doen:

  • Cachegegevens lokaal in uw toepassing, zodat u deze kunt bewerken. Als u alleen de resultaten van een query hoeft te lezen, is dit DataReader de betere keuze.

  • Externe gegevens tussen lagen of vanuit een XML-webservice.

  • Interactie met gegevens dynamisch, zoals binding met een Besturingselement Windows Forms of het combineren en koppelen van gegevens uit meerdere bronnen.

  • Voer uitgebreide verwerking uit op gegevens zonder dat er een open verbinding met de gegevensbron is vereist, waardoor de verbinding wordt vrijgemaakt die door andere clients moet worden gebruikt.

Als u de functionaliteit van de DataSettoepassing niet nodig hebt, kunt u de prestaties van uw toepassing verbeteren door de DataReader gegevens alleen-lezen te retourneren. Hoewel de toepassingen de DataAdapter DataReader inhoud van een DataSet (zie Een DataSet uit een DataAdapter vullen) vullen met behulp van de DataReader, kunt u de prestaties verbeteren omdat u geheugen bespaart dat wordt verbruikt door de DataSet, en vermijd de verwerking die nodig is voor het maken en vullen van de inhoud van de DataSet.

LINQ naar DataSet

LINQ naar DataSet biedt querymogelijkheden en compileertijdtypecontrole over gegevens die in een DataSet-object in de cache zijn opgeslagen. Hiermee kunt u query's schrijven in een van de ontwikkeltaal van .NET Framework, zoals C# of Visual Basic. Zie LINQ naar DataSet voor meer informatie.

LINQ naar SQL

LINQ naar SQL ondersteunt query's op een objectmodel dat is toegewezen aan de gegevensstructuren van een relationele database zonder een tussenliggend conceptueel model te gebruiken. Elke tabel wordt vertegenwoordigd door een afzonderlijke klasse, die het objectmodel nauw koppelt aan het relationele databaseschema. LINQ naar SQL vertaalt taalgebaseerde query's in het objectmodel naar Transact-SQL en verzendt deze naar de database voor uitvoering. Wanneer de database de resultaten retourneert, vertaalt LINQ de resultaten terug naar objecten. Zie LINQ naar SQL voor meer informatie.

ADO.NET Entity Framework

Het ADO.NET Entity Framework is ontworpen om ontwikkelaars in staat te stellen toepassingen voor gegevenstoegang te maken door te programmeren op basis van een conceptueel toepassingsmodel in plaats van rechtstreeks te programmeren op basis van een relationeel opslagschema. Het doel is om de hoeveelheid code en onderhoud te verminderen die nodig is voor gegevensgerichte toepassingen. Zie ADO.NET Entity Framework voor meer informatie.

WCF Data Services

WCF Data Services wordt gebruikt voor het implementeren van gegevensservices op het web of een intranet. De gegevens zijn gestructureerd als entiteiten en relaties volgens de specificaties van het Entiteitsgegevensmodel. Gegevens die op dit model zijn geïmplementeerd, kunnen worden adresseerbaar door het standaard HTTP-protocol. Zie WCF Data Services 4.5 voor meer informatie.

XML en ADO.NET

ADO.NET maakt gebruik van de kracht van XML om niet-verbonden toegang tot gegevens te bieden. ADO.NET is hand-in-hand ontworpen met de XML-klassen in .NET Framework; beide onderdelen van één architectuur zijn.

ADO.NET en de XML-klassen in .NET Framework convergeren in het DataSet object. De DataSet gegevens kunnen worden gevuld met gegevens uit een XML-bron, ongeacht of het een bestand of een XML-stroom is. De DataSet kan worden geschreven als W3C-compatibele XML (World-Wide Web Consortium) die het schema als XSD-schema (XML Schema Definition Language) bevat, ongeacht de bron van de gegevens in de DataSet. Vanwege de systeemeigen serialisatie-indeling van het DataSet is XML, is het een uitstekend medium voor het verplaatsen van gegevens tussen lagen, waardoor de DataSet optimale keuze is voor externe gegevens en schemacontext van en naar een XML-webservice. Zie XML-documenten en -gegevens voor meer informatie.

Zie ook