¿Son aceptables las transacciones de larga duración?
Estoy pensando en usar transacciones en aplicaciones de WPF (o formularios de Windows) de 2 niveles de la siguiente manera:
Podemos comenzar una nueva transacción cuando abrimos un nuevo formulario para editar datos, editar y persistir los cambios de forma transparente en esta transacción. Luego podemos hacer clic en el botón "Aceptar" y confirmar la transacción, o en el botón "Cancelar" y revertirlo. Si queremos abrir otra ventana de diálogo con estos datos, podemos usar transacciones anidadas.
La pregunta es: ¿Es esta forma de usar transacciones aceptable o no? Sé que hay muchas formas diferentes de implementar tal lógica, pero me gustaría enumerar las ventajas y desventajas de esta.