Execução lado a lado no ADO.NET
A execução lado a lado no .NET Framework é a capacidade de executar um aplicativo em um computador com várias versões do .NET Framework instaladas, usando exclusivamente a versão para a qual o aplicativo foi compilado. Para saber mais sobre a configuraçao de execução lado a lado, confira Execução lado a lado.
Um aplicativo compilado usando uma versão do .NET Framework pode ser executado em uma versão diferente do .NET Framework. No entanto, recomendamos compilar uma versão do aplicativo para cada versão instalada do .NET Framework e executá-las separadamente. Em qualquer cenário, você deve estar ciente das alterações na ADO.NET entre versões, que podem afetar a compatibilidade com versões anteriores e posteriores do aplicativo.
Compatibilidade com versões anteriores e posteriores do aplicativo
Compatibilidade com versões posteriores significa que um aplicativo pode ser compilado com uma versão anterior do .NET Framework, mas funcionará em versões posteriores do .NET Framework. O código ADO.NET escrito para o .NET Framework versão 1.1 é compatível com versões mais recentes.
A compatibilidade com versões anteriores significa que um aplicativo é compilado para uma versão mais recente do .NET Framework, mas continua a ser executado em versões anteriores do .NET Framework sem perder funcionalidade. Claro, esse não será o caso dos recursos introduzidos em uma nova versão do .NET Framework.
O Provedor de dados .do NET Framework para ODBC
A partir da versão 1.1, o provedor de dados .NET Framework para ODBC (System.Data.Odbc) é incluído como parte do .NET Framework.
Se você tiver um aplicativo desenvolvido para o .NET Framework versão 1.0 que usa o provedor de dados ODBC para se conectar à fonte de dados e quiser executar esse aplicativo no .NET Framework versão 1.1 ou posterior, atualize o namespace do provedor de dados ODBC para System.Data.Odbc. Em seguida, você precisa recompilá-lo para a versão mais recente do .NET Framework.
Se você tiver um aplicativo desenvolvido para o .NET Framework versão 2.0 ou posterior, que usa o provedor de dados ODBC para se conectar à fonte de dados e quiser executar esse aplicativo no .NET Framework versão 1.0, você precisa baixar o provedor de dados ODBC e instalá-lo no sistema do .NET Framework versão 1.0. Em seguida, você precisa alterar o namespace do provedor de dados ODBC para Microsoft.Data.Odbc e recompilar o aplicativo para .NET Framework versão 1.0.
Provedor de Dados do .NET Framework para Oracle
A partir da versão 1.1, o provedor de dados .NET Framework para Oracle (System.Data.OracleClient) é incluído como parte do .NET Framework.
Se você tiver um aplicativo desenvolvido para o .NET Framework versão 2.0 ou posterior, que usa o provedor de dados para se conectar à fonte de dados e quiser executar esse aplicativo no .NET Framework versão 1.0, você precisa baixar o provedor de dados e instalá-lo no sistema do .NET Framework versão 1.0.
Segurança de Acesso do Código
A partir do .NET Framework versão 2.0, todos os provedores de dados .NET Framework podem ser usados em zonas parcialmente confiáveis. Além disso, um novo recurso de segurança foi adicionado aos provedores de dados .NET Framework no .NET Framework versão 1.1. Esse recurso permite restringir quais cadeias de conexão podem ser usadas em uma zona de segurança específica. Você também pode desabilitar o uso de senhas em branco para uma zona de segurança específica. Para obter mais informações, consulte Segurança de acesso do código e ADO.NET.
Como cada instalação de .NET Framework tem um arquivo Security.config separado, não há problemas de compatibilidade com as configurações de segurança. No entanto, se o aplicativo depender dos recursos de segurança adicionais de ADO.NET incluídos no .NET Framework versão 1.1 e posterior, você não poderá distribuí-lo para um sistema versão 1.0.
Execução do SqlCommand
No .NET Framework versão 1.1 e posterior, ExecuteReader só executará um comando no contexto do procedimento armazenado sp_executesql se o comando contiver parâmetros, o que fornecerá um benefício de desempenho. Como resultado, se um comando que afeta o estado da conexão for incluído em um comando não parametrizado, ele modificará o estado da conexão para todos os comandos subsequentes executados enquanto a conexão está aberta.
Considere o lote a seguir de comandos executados em uma chamada para ExecuteReader.
SET NOCOUNT ON;
SELECT * FROM dbo.Customers;
NOCOUNT
permanecerá ON
para comandos subsequentes executados enquanto a conexão estiver aberta.