Transações com .NET 2.0: Saiba como funciona o System.Transactions
Neste artigo, exploraremos as funcionalidades oferecidas pelo framework para a utilização de transações de forma implícita e explícita.
ADO.NET
Transações com .NET 2.0
Saiba como funciona o System.Transactions
Quando você realiza uma compra pela internet, vários passos devem ser realizados para que a venda seja efetivada. Esses passos incluem, por exemplo, a verificação de disponibilidade do produto solicitado no estoque da loja virtual, validação e débito do valor faturado em seu cartão de crédito, baixa no estoque da loja e encaminhamento do produto para envio.
Uma falha em qualquer um dos passos deve fazer com que o pedido seja cancelado, além de desfazer todos os passos anteriores ao erro, caso contrário seu cartão poderia ser debitado mesmo sem a finalização do pedido. Nesse tipo de situação o controle transacional é fundamental.
A utilização de transações está sempre associada ao conceito de atomicidade, ou seja: num conjunto de N passos, cada um dos passos só poderá ser confirmado caso todos os outros tenham sido executados com sucesso também. O .NET Framework 2.0 oferece uma arquitetura completa para a implementação de transações através do namespace System.Transactions, suportando transações com SQL Server, ADO.NET, filas de mensagens (MSMQ) e do próprio coordenador de transações da Microsoft, o MSDTC (Microsoft Distributed Transaction Coordinator), nativamente.
Neste artigo, exploraremos as funcionalidades oferecidas pelo framework para a utilização de transações de forma implícita e explícita. Paralelamente, desenvolveremos uma aplicação que realiza a atualização de uma mesma base de dados em dois servidores distintos, demonstrando na prática as funcionalidades descritas ao longo do texto.
Criando a aplicação
Para o entendimento paralelo de teoria e prática na utilização de transações, criaremos uma aplicação que realiza a atualização de algumas informações na tabela Products do banco de dados Northwind.
Para caracterização de um conjunto de passos a serem executados, exigindo controle transacional, trabalharemos com dois servidores distintos, cada um com sua cópia do banco de dados: uma instância SQL Server 2000 e outra do SQL Server 2005.
Nota: Apesar deste artigo utilizar conexões a bancos de dados distintos, o mesmo também pode ser desenvolvido utilizando um único servidor, desde que sejam criadas conexões a dois bancos de dados diferentes.
Abra o Visual Studio 2005 e clique em File>New>Project. Na opção Visual C#>Windows, selecione o item Windows Application. Dê o nome de “TransactionsDotNetMagazine” ao projeto e clique em OK.
Criado o projeto, renomeie o Form1.cs para “FrmTransactions.cs”, e crie os componentes de interface da maneira indicada pela Figura 1.
Figura 1. Layout e componentes da classe FrmTransactions
Ainda no Solution Explorer, clique com o botão direito em References e selecione a opção Add Reference. Na aba .NET, selecione o System.Transactions, clicando em OK na seqüência.
Com os componentes dispostos e devidamente configurados, partiremos para o código. O primeiro passo é fazer com que o grdProdutos seja populado. Para isso, criaremos o método CarregarDados, que será o responsável por consultar os dados necessários na tabela Products e associá-los ao grdProdutos. A chamada ao método será feita no construtor do formulário, como mostra a " [...] continue lendo...
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo