Esecuzione side-by-side in ADO.NET

In .NET Framework il supporto dell'esecuzione side-by-side indica la possibilità di eseguire un'applicazione in un computer in cui sono installate più versioni di .NET Framework usando esclusivamente la versione per la quale è stata compilata l'applicazione stessa. Per informazioni dettagliate sulla configurazione dell'esecuzione side-by-side, vedere Esecuzione side-by-side.

Un'applicazione compilata usando una versione di .NET Framework può essere eseguita in una versione differente di .NET Framework. Si consiglia tuttavia di compilare versioni dell'applicazione diverse per ciascuna versione di .NET Framework installata e di eseguirle separatamente. Indipendentemente dallo scenario è necessario conoscere le modifiche apportate ad ADO.NET tra una versione e l'altra per valutarne le possibili conseguenze sulla compatibilità dell'applicazione con le versioni successive o precedenti.

Compatibilità con le versioni successive e precedenti

Per compatibilità con le versioni successive si intende la possibilità di compilare un'applicazione per una versione precedente di .NET Framework, potendola comunque eseguire correttamente anche in versioni più recenti di .NET Framework. Il codice ADO.NET scritto per .NET Framework versione 1.1 è compatibile con le versioni successive.

Per compatibilità con le versioni precedenti si intende la possibilità di compilare un'applicazione per una versione successiva di .NET Framework, ma di poterla eseguire correttamente anche in versioni precedenti di .NET Framework senza alcuna perdita di funzionalità. Tuttavia, ciò non vale per le funzionalità introdotte nella nuove versioni di .NET Framework.

Provider di dati .NET Framework per ODBC

A partire dalla versione 1.1, il provider di dati .NET Framework per ODBC (System.Data.Odbc) è incluso come parte di .NET Framework.

If you have an application developed for the .NET Framework version 1.0 that uses the ODBC data provider to connect to your data source, and you want to run that application on the .NET Framework version 1.1 or a later version, you must update the namespace for the ODBC data provider to System.Data.Odbc. Ricompilare quindi l'applicazione per la versione successiva di .NET Framework.

Se si dispone di un'applicazione sviluppata per .NET Framework versione 2.0 o successiva che effettua la connessione a un'origine dati usando il provider di dati ODBC e si desidera eseguire tale applicazione in .NET Framework versione 1.0, è necessario scaricare il provider di dati ODBC e installarlo nel computer che esegue .NET Framework versione 1.0. Prima di ricompilare l'applicazione per .NET Framework versione 1.0, è inoltre necessario modificare lo spazio dei nomi del provider di dati ODBC in Microsoft.Data.Odbc.

Provider di dati .NET Framework per Oracle

A partire dalla versione 1.1, il provider di dati .NET Framework per Oracle (System.Data.OracleClient) è incluso come parte di .NET Framework.

Se si dispone di un'applicazione sviluppata per .NET Framework versione 2.0 o successiva che effettua la connessione a un'origine dati usando il provider di dati e si desidera eseguire tale applicazione in .NET Framework versione 1.0, è necessario scaricare il provider di dati e installarlo nel computer che esegue .NET Framework versione 1.0.

Sicurezza dall'accesso di codice

A partire da .NET Framework versione 2.0, tutti i provider di dati .NET Framework possono essere usati in zone parzialmente attendibili. Inoltre, in .NET Framework versione 1.1 è stata aggiunta una nuova funzionalità di sicurezza ai provider di dati .NET Framework. che consente di definire quali stringhe di connessione possano essere usate in una determinata area di sicurezza. È anche possibile disabilitare l'uso di password vuote per una particolare area di sicurezza. Per altre informazioni, vedere Code Access Security and ADO.NET.

Poiché ogni installazione di .NET Framework dispone di un file Security.config separato, le impostazioni di sicurezza non generano problemi di compatibilità. Tuttavia, se l'applicazione dipende dalle funzionalità di sicurezza aggiuntive di ADO.NET incluse in .NET Framework 1.1 e versioni successive, non sarà possibile distribuirla in un computer che usa la versione 1.0.

Esecuzione di SqlCommand

In .NET Framework 1.1 e versioni successive, invece, il metodo ExecuteReader esegue un comando nel contesto della stored sp_executesql solo se il comando contiene parametri, offrendo maggiori vantaggi a livello di prestazioni. Di conseguenza, se un comando che incide sullo stato della connessione viene incluso in un comando senza parametri, le modifiche apportate allo stato della connessione permarranno anche per tutti i comandi eseguiti successivamente, fino alla chiusura della connessione.

Si consideri l'esecuzione del gruppo di comandi seguente in una chiamata al metodo ExecuteReader.

SET NOCOUNT ON;  
SELECT * FROM dbo.Customers;  

NOCOUNT rimarrà ON per tutti i comandi successivi eseguiti mentre la connessione è aperta.

Vedi anche