Condividi tramite


Architettura ADO.NET

L'elaborazione dei dati si basa tradizionalmente principalmente su un modello a due livelli basato su connessione. Poiché l'elaborazione dei dati usa sempre più architetture multilivello, i programmatori passano a un approccio disconnesso per offrire una migliore scalabilità per le applicazioni.

componenti ADO.NET

I due componenti principali di ADO.NET per l'accesso e la modifica dei dati sono i provider di dati .NET Framework e .DataSet

Provider di dati .NET Framework

I provider di dati .NET Framework sono componenti progettati in modo esplicito per la manipolazione dei dati e l'accesso rapido, forward-only e di sola lettura ai dati. L'oggetto Connection fornisce la connettività a un'origine dati. L'oggetto Command consente l'accesso ai comandi del database per restituire dati, modificare i dati, eseguire stored procedure e inviare o recuperare informazioni sui parametri. DataReader fornisce un flusso di dati ad alte prestazioni dalla sorgente dati. Infine, DataAdapter fornisce il ponte tra l'oggetto DataSet e l'origine dati. DataAdapter usa oggetti Command per eseguire comandi SQL sull'origine dati, sia per caricare DataSet con i dati che per riconciliare le modifiche apportate ai dati in DataSet, riportandole all'origine dati. Per altre informazioni, vedere Provider di dati .NET Framework e recupero e modifica dei dati in ADO.NET.

Set di dati

Il ADO.NET DataSet è progettato in modo esplicito per l'accesso ai dati indipendentemente da qualsiasi origine dati. Di conseguenza, può essere usato con origini dati multiple e differenti, usato con dato XML, oppure usato per gestire i dati locali all'applicazione. DataSet Contiene una raccolta di uno o più DataTable oggetti costituiti da righe e colonne di dati, nonché chiave primaria, chiave esterna, vincolo e informazioni sulle relazioni sui dati negli DataTable oggetti. Per altre informazioni, vedere DataSet, DataTables e DataViews.

Il diagramma seguente illustra la relazione tra un provider di dati .NET Framework e un oggetto DataSet.

grafico ADO.Net ado_1_bpuedev11
architettura ADO.NET

Scelta di un datareader o di un set di dati

Quando si decide se l'applicazione deve usare un DataReader oggetto (vedere Recupero di dati tramite un DataReader) o un DataSet oggetto (vedere Set di dati, DataTable e DataViews), prendere in considerazione il tipo di funzionalità richieste dall'applicazione. Usare un DataSet oggetto per eseguire le operazioni seguenti:

  • Memorizzare nella cache i dati in locale nell'applicazione in modo da poterli modificare. Se è sufficiente leggere i risultati di una query, è DataReader la scelta migliore.

  • Dati remoti tra livelli o da un servizio Web XML.

  • Interagire con i dati in modo dinamico, ad esempio l'associazione a un controllo Windows Form o la combinazione e la correlazione dei dati da più origini.

  • Eseguire un'elaborazione completa sui dati senza richiedere una connessione aperta all'origine dati, che libera la connessione da usare da altri client.

Se non richiedi la funzionalità fornita da DataSet, puoi migliorare le prestazioni della tua applicazione utilizzando DataReader per restituire i dati in modalità forward-only e di sola lettura. DataAdapter Anche se usa per DataReader riempire il contenuto di un oggetto DataSet (vedere Popolamento di un dataset da un DataAdapter), usando DataReader, è possibile migliorare le prestazioni perché si salverà la memoria utilizzata da DataSete si evita l'elaborazione necessaria per creare e riempire il contenuto di DataSet.

LINQ to DataSet

LINQ to DataSet offre funzionalità di query e controllo dei tipi in fase di compilazione sui dati memorizzati nella cache in un oggetto DataSet. Consente di scrivere query in un linguaggio di sviluppo .NET Framework, ad esempio C# o Visual Basic. Per altre informazioni, vedere LINQ to DataSet.

LINQ to SQL

LINQ to SQL supporta le query su un modello a oggetti mappato alle strutture di dati di un database relazionale senza usare un modello concettuale intermedio. Ogni tabella è rappresentata da una classe separata, accoppiando strettamente il modello a oggetti allo schema del database relazionale. LINQ to SQL converte le query integrate nel linguaggio nel modello a oggetti in Transact-SQL e le invia al database per l'esecuzione. Quando il database restituisce i risultati, LINQ to SQL converte nuovamente i risultati in oggetti . Per altre informazioni, vedere LINQ to SQL.

ADO.NET Entity Framework

Il ADO.NET Entity Framework è progettato per consentire agli sviluppatori di creare applicazioni di accesso ai dati tramite la programmazione in base a un modello applicativo concettuale invece di programmare direttamente in base a uno schema di archiviazione relazionale. L'obiettivo è ridurre la quantità di codice e manutenzione necessaria per le applicazioni orientate ai dati. Per altre informazioni, vedere ADO.NET Entity Framework.

WCF Data Services

WCF Data Services viene usato per distribuire i servizi dati nel Web o in una intranet. I dati sono strutturati come entità e relazioni in base alle specifiche di Entity Data Model. I dati distribuiti in questo modello sono indirizzabili dal protocollo HTTP standard. Per altre informazioni, vedere WCF Data Services 4.5.

XML e ADO.NET

ADO.NET sfrutta la potenza di XML per fornire l'accesso disconnesso ai dati. ADO.NET è stato progettato a portata di mano con le classi XML in .NET Framework; entrambi sono componenti di una singola architettura.

ADO.NET e le classi XML in .NET Framework convergeno nell'oggetto DataSet . Può DataSet essere popolato con i dati di un'origine XML, sia che si tratti di un file o di un flusso XML. Può DataSet essere scritto come XML conforme a World-Wide Web Consortium (W3C) che include il relativo schema come schema XSD (XML Schema Definition Language), indipendentemente dall'origine dei dati in DataSet. A causa del formato di serializzazione nativo di DataSet è XML, è un supporto eccellente per lo spostamento dei dati tra livelli, rendendo la scelta ottimale per la DataSet comunicazione remota dei dati e del contesto dello schema da e verso un servizio Web XML. Per altre informazioni, vedere Documenti e dati XML.

Vedere anche