Architettura ADO.NETADO.NET Architecture

L'elaborazione dei dati è stata sempre basata principalmente su un modello a due livelli basato su connessione.Data processing has traditionally relied primarily on a connection-based, two-tier model. In considerazione dell'utilizzo crescente dell'architettura a più livelli per l'elaborazione dei dati, i programmatori si avvalgono di un approccio disconnesso per ottenere applicazioni con scalabilità maggiore.As data processing increasingly uses multi-tier architectures, programmers are switching to a disconnected approach to provide better scalability for their applications.

Componenti di ADO.NETADO.NET Components

I due componenti principali di ADO.NET 3.0ADO.NET 3.0per l'accesso e la modifica dei dati sono i provider di dati .NET Framework.NET Framework e DataSet.The two main components of ADO.NET 3.0ADO.NET 3.0 for accessing and manipulating data are the .NET Framework.NET Framework data providers and the DataSet.

Provider di dati .NET Framework.NET Framework Data Providers

I provider di dati .NET Framework sono componenti espressamente progettati per la modifica dei dati e per un accesso ai dati rapido, di tipo forward-only e di sola lettura.The .NET Framework Data Providers are components that have been explicitly designed for data manipulation and fast, forward-only, read-only access to data. L'oggetto Connection fornisce la connettività a un'origine datiThe Connection object provides connectivity to a data source. mentre l'oggetto Command consente di accedere ai comandi di database per restituire e modificare i dati, eseguire stored procedure e inviare o recuperare informazioni relative ai parametri.The Command object enables access to database commands to return data, modify data, run stored procedures, and send or retrieve parameter information. DataReader fornisce un flusso di dati a elevate prestazioni dall'origine datiThe DataReader provides a high-performance stream of data from the data source. e infine DataAdapter costituisce infine un collegamento tra l'oggetto DataSet e l'origine dati.Finally, the DataAdapter provides the bridge between the DataSet object and the data source. Gli oggetti DataAdapter vengono usati da Command per eseguire comandi SQL nell'origine dati in modo da caricare dati in DataSet e risolvere le differenze relative alle modifiche apportate ai dati in DataSet fino all'origine dati.The DataAdapter uses Command objects to execute SQL commands at the data source to both load the DataSet with data and reconcile changes that were made to the data in the DataSet back to the data source. Per ulteriori informazioni, vedere .NET Framework Data Providers e recupero e modifica dei dati in ADO.NET.For more information, see .NET Framework Data Providers and Retrieving and Modifying Data in ADO.NET.

Il DataSetThe DataSet

L'oggetto DataSet di ADO.NET è stato espressamente progettato per un accesso ai dati indipendente dall'origine dati.The ADO.NET DataSet is explicitly designed for data access independent of any data source. Di conseguenza, può essere usato con diverse origini dati, con dati XML o per la gestione di dati locali dell'applicazione.As a result, it can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. Il DataSet contiene una raccolta di uno o più oggetti DataTable, costituiti da righe e colonne di dati, nonché da informazioni su chiave primaria, chiave esterna, vincoli e relazioni relative ai dati degli oggetti DataTable.The DataSet contains a collection of one or more DataTable objects consisting of rows and columns of data, and also primary key, foreign key, constraint, and relation information about the data in the DataTable objects. Per ulteriori informazioni, vedere DataSet, DataTable e DataView.For more information, see DataSets, DataTables, and DataViews.

Nel diagramma seguente viene illustrata la relazione tra un provider di dati .NET Framework.NET Framework e un DataSet.The following diagram illustrates the relationship between a .NET Framework.NET Framework data provider and a DataSet.

ADO.Net graphicADO.Net graphic
Architettura di ADO.NETADO.NET architecture

Selezione di un DataReader o un DataSetChoosing a DataReader or a DataSet

Quando si decide se l'applicazione deve utilizzare un DataReader (vedere recupero di dati mediante DataReader) o un DataSet (vedere DataSet, DataTable e DataView), considerare il tipo di funzionalità richieste dall'applicazione.When you decide whether your application should use a DataReader (see Retrieving Data Using a DataReader) or a DataSet (see DataSets, DataTables, and DataViews), consider the type of functionality that your application requires. Usare un oggetto DataSet per eseguire le seguenti operazioni:Use a DataSet to do the following:

  • Memorizzare localmente i dati nella cache dell'applicazione in modo da poterli modificare.Cache data locally in your application so that you can manipulate it. Se è necessario solo leggere i risultati di una query, il DataReader rappresenta la scelta migliore.If you only need to read the results of a query, the DataReader is the better choice.

  • Eseguire attività remote sui dati tra livelli o da un servizio Web XML.Remote data between tiers or from an XML Web service.

  • Interagire dinamicamente con i dati, associandoli ad esempio a un controllo Windows Form o combinando e correlando dati da più origini.Interact with data dynamically such as binding to a Windows Forms control or combining and relating data from multiple sources.

  • Eseguire un'elaborazione estensiva dei dati senza richiedere una connessione aperta all'origine dati, in modo da liberare la connessione per consentirne l'uso da parte di altri client.Perform extensive processing on data without requiring an open connection to the data source, which frees the connection to be used by other clients.

Se le funzionalità fornite dal DataSet non sono necessarie, è possibile migliorare le prestazioni dell'applicazione usando il DataReader per restituire i dati in modo forward-only e di sola lettura.If you do not require the functionality provided by the DataSet, you can improve the performance of your application by using the DataReader to return your data in a forward-only, read-only manner. Sebbene il DataAdapter utilizza il DataReader per riempire il contenuto di un DataSet (vedere popolamento di un set di dati da un oggetto DataAdapter), utilizzando il DataReader, è possibile migliorare le prestazioni liberando memoria che potrebbe essere utilizzata dal DataSeted evitare l'elaborazione è necessaria per creare e compilare il contenuto del DataSet.Although the DataAdapter uses the DataReader to fill the contents of a DataSet (see Populating a DataSet from a DataAdapter), by using the DataReader, you can boost performance because you will save memory that would be consumed by the DataSet, and avoid the processing that is required to create and fill the contents of the DataSet.

LINQ to DataSetLINQ to DataSet

LINQ to DataSet fornisce funzionalità di query e controllo dei tipi in fase di compilazione sui dati memorizzati nella cache in un oggetto DataSet.LINQ to DataSet provides query capabilities and compile-time type checking over data cached in a DataSet object. Consente inoltre di scrivere query in uno dei linguaggi di sviluppo di .NET Framework, ad esempio C# o Visual Basic.It allows you to write queries in one of the .NET Framework development language, such as C# or Visual Basic. Per altre informazioni, vedere LINQ to DataSet.For more information, see LINQ to DataSet.

LINQ to SQLLINQ to SQL

LINQ to SQL supporta l'esecuzione di query su un modello a oggetti mappato alle strutture dei dati di un database relazionale senza usare un modello concettuale intermedio.LINQ to SQL supports queries against an object model that is mapped to the data structures of a relational database without using an intermediate conceptual model. Ogni tabella è rappresentata da una classe distinta, che consente di connettere il modello a oggetti allo schema del database relazionale.Each table is represented by a separate class, tightly coupling the object model to the relational database schema. LINQ to SQL converte le query LINQ del modello a oggetti in Transact-SQL e le invia al database per l'esecuzione.LINQ to SQL translates language-integrated queries in the object model into Transact-SQL and sends them to the database for execution. I risultati restituiti dal database vengono quindi riconvertiti in oggetti.When the database returns the results, LINQ to SQL translates the results back into objects. Per altre informazioni, vedere LINQ to SQL.For more information, see LINQ to SQL.

ADO.NET Entity FrameworkADO.NET Entity Framework

ADO.NET Entity Framework è progettato per consentire agli sviluppatori di creare applicazioni di accesso ai dati tramite programmazione in base a un modello di applicazione concettuale anziché direttamente in base a uno schema di archiviazione relazionale.The ADO.NET Entity Framework is designed to enable developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema. L'obiettivo è quello di ridurre la quantità di codice e le operazioni di manutenzione necessarie per le applicazioni orientate ai dati.The goal is to decrease the amount of code and maintenance required for data-oriented applications. Per ulteriori informazioni, vedere ADO.NET Entity Framework.For more information, see ADO.NET Entity Framework.

WCF Data ServicesWCF Data Services

WCF Data ServicesWCF Data Services viene usato per distribuire servizi dati nel Web o in una rete Intranet. is used to deploy data services on the Web or an intranet. I dati sono strutturati come entità e relazioni in base alle specifiche di Entity Data Model.The data is structured as entities and relationships according to the specifications of the Entity Data Model. I dati distribuiti in questo modello sono indirizzabili tramite il protocollo HTTP standard.Data deployed on this model is addressable by standard HTTP protocol. Per ulteriori informazioni, vedere WCF Data Services 4.5.For more information, see WCF Data Services 4.5.

XML e ADO.NETXML and ADO.NET

ADO.NETADO.NET si avvale di XML per fornire un accesso disconnesso ai dati. leverages the power of XML to provide disconnected access to data. ADO.NETADO.NET è stato progettato in stretta associazione con le classi XML in .NET Framework.NET Framework: si tratta di componenti di un'unica architettura. was designed hand-in-hand with the XML classes in the .NET Framework.NET Framework; both are components of a single architecture.

In ADO.NETADO.NET .NET Framework.NET Framework e le classi XML convergono nell'oggetto DataSet.ADO.NETADO.NET and the XML classes in the .NET Framework.NET Framework converge in the DataSet object. È possibile compilare il DataSet con dati provenienti da un'origine XML, sia che si tratti di un file che di un flusso XML.The DataSet can be populated with data from an XML source, whether it is a file or an XML stream. È possibile scrivere il DataSet sotto forma di XML in conformità con le specifiche W3C (World Wide Web Consortium), includendone lo schema sotto forma di schema XSD (XML Schema Definition Language), indipendentemente dall'origine dati nel DataSet.The DataSet can be written as World-Wide Web Consortium (W3C) compliant XML that includes its schema as XML schema definition language (XSD) schema, regardless of the source of the data in the DataSet. XML, che costituisce il formato di serializzazione nativo del DataSet, rappresenta un supporto eccellente per lo spostamento di dati tra i livelli e rende il DataSet una soluzione ottimale per le attività in remoto relative al contesto dei dati e dello schema da e per un servizio Web XML.Because of the native serialization format of the DataSet is XML, it is an excellent medium for moving data between tiers, making the DataSet an optimal choice for remoting data and schema context to and from an XML Web service. Per altre informazioni, vedere XML Documents and Data (Documenti e dati XML).For more information, see XML Documents and Data.

Vedere ancheSee Also

Panoramica di ADO.NETADO.NET Overview
Provider gestiti ADO.NET e Centro per sviluppatori di set di datiADO.NET Managed Providers and DataSet Developer Center