Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
DataAdapter gebruikt Command objecten om SQL-opdrachten uit te voeren op de gegevensbron, voor zowel het laden van de DataSet met gegevens, als het afstemmen van wijzigingen die in de gegevens zijn aangebracht in de DataSet terug naar de gegevensbron. 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 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:
Sla gegevens lokaal in uw toepassing in de cache op voor latere bewerking. Als u alleen de resultaten van een query hoeft te lezen, is dit
DataReaderde betere keuze.Externe gegevens tussen lagen of vanuit een XML-webservice.
Interageer dynamisch met gegevens, door bijvoorbeeld te binden aan een Windows Forms-besturingselement of door gegevens uit meerdere bronnen te combineren en te relateren.
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 die door de DataSet wordt geleverd niet nodig hebt, kunt u de prestaties van uw toepassing verbeteren door de DataReader te gebruiken om uw gegevens in een alleen-doorsturen en alleen-lezen manier te retourneren. Hoewel de DataAdapter de DataReader gebruikt om de inhoud van een DataSet te vullen (zie Een DataSet uit een DataAdapter vullen), kunt u de prestaties verbeteren doordat u geheugen bespaart dat anders verbruikt zou worden door de DataReader, en vermijdt u de verwerking die nodig is om de inhoud van de DataSet te maken en te vullen.
LINQ naar DataSet
LINQ naar DataSet biedt mogelijkheden voor query's en typecontrole tijdens compileertijd over gegevens die in een DataSet-object zijn gecached. 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 in 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 werd in nauw samenhang ontworpen met de XML-klassen in het .NET Framework; beide zijn onderdelen van een enkele architectuur.
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 het feit dat de systeemeigen serialisatie-indeling van het DataSet XML is, vormt het een uitstekend medium voor het verplaatsen van gegevens tussen lagen. Hierdoor is de DataSet een optimale keuze voor het overbrengen van gegevens en schemacontext naar en van een XML-webservice. Zie XML-documenten en -gegevens voor meer informatie.