As transações de vida longa são aceitáveis?
Estou pensando em usar transações em aplicativos WPF de 2 camadas (ou formulários do Windows) da seguinte maneira:
Podemos começar uma nova transação quando abrimos uma nova forma de editar dados, editar e persistir alterações de maneira transparente nessa transação. Em seguida, podemos clicar no botão "OK" e confirmar transação, ou no botão "Cancelar" e reverter isso. Se quisermos abrir outra janela de diálogo com esses dados, podemos usar transações aninhadas.
A questão é: esta maneira de usar transações é aceitável ou não? Eu sei que existem muitas maneiras diferentes de implementar essa lógica, mas gostaria de listar as vantagens e desvantagens desta.