Share via


Execução lado a lado em ADO.NET

A execução lado a lado no .NET Framework é a capacidade de executar um aplicativo em um computador que tenha várias versões do .NET Framework instaladas, usando exclusivamente a versão para a qual o aplicativo foi compilado. Para obter informações detalhadas sobre como configurar a execução lado a lado, consulte 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 que você compile uma versão do aplicativo para cada versão instalada do .NET Framework e execute-os separadamente. Em ambos os cenários, você deve estar ciente de alterações no ADO.NET entre versões que podem afetar a compatibilidade direta ou retroativa do seu aplicativo.

Compatibilidade direta e compatibilidade com versões anteriores

Compatibilidade direta significa que um aplicativo pode ser compilado com uma versão anterior do .NET Framework, mas ainda será executado com êxito em uma versão posterior do .NET Framework. ADO.NET código escrito para o .NET Framework versão 1.1 é compatível com versões posteriores.

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 qualquer perda de funcionalidade. É claro que 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 do .NET Framework para ODBC (System.Data.Odbc) está 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 à sua fonte de dados e quiser executar esse aplicativo no .NET Framework versão 1.1 ou uma versão posterior, você deve atualizar o namespace para o provedor de dados ODBC para System.Data.Odbc. Em seguida, você deve 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 à sua fonte de dados e deseja executar esse aplicativo no .NET Framework versão 1.0, você deve baixar o provedor de dados ODBC e instalá-lo no sistema .NET Framework versão 1.0. Em seguida, você deve alterar o namespace para o provedor de dados ODBC para Microsoft.Data.Odbc e recompilar o aplicativo para .NET Framework versão 1.0.

O provedor de dados do .NET Framework para Oracle

A partir da versão 1.1, o Provedor de Dados do .NET Framework para Oracle (System.Data.OracleClient) está 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 à sua fonte de dados e deseja executar esse aplicativo no .NET Framework versão 1.0, você deve baixar o provedor de dados e instalá-lo no sistema .NET Framework versão 1.0.

Segurança de acesso ao código

A partir do .NET Framework versão 2.0, todos os provedores de dados do .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 do .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 desativar o uso de senhas em branco para uma zona de segurança específica. Para obter mais informações, consulte Segurança de acesso ao código e ADO.NET.

Como cada instalação do .NET Framework tem um arquivo Security.config separado, não há problemas de compatibilidade com as configurações de segurança. No entanto, se seu aplicativo depende 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 de SqlCommand

No .NET Framework versão 1.1 e posterior, ExecuteReader só executa um comando no contexto do procedimento armazenado sp_executesql se o comando contiver parâmetros, o que fornece 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 estiver aberta.

Considere o seguinte lote de comandos executados em uma chamada para ExecuteReader.

SET NOCOUNT ON;  
SELECT * FROM dbo.Customers;  

NOCOUNT permanecerá ON para quaisquer comandos subsequentes executados enquanto a conexão estiver aberta.

Consulte também