
Transaction aspect, Aspect Oriented Programming (AOP) kavramı çerçevesinde, bir uygulamada işlem (transaction) yönetimini kolaylaştırmak için kullanılan bir yaklaşımdır.
Transaction aspect, işlemlerin başlatılması, yürütülmesi ve tamamlanması süreçlerini yönetir.
Özellikle, bir hata durumunda işlemlerin geri alınmasını (rollback) ve başarılı olduğunda işlemlerin onaylanmasını (commit) sağlar.
Transaction aspect, genellikle veritabanı işlemlerinde kullanılır ve veri tutarlılığını korumak için önemlidir. Örneğin, bir bankacılık uygulamasında para transferi sırasında, transferin her iki adımının (para çekme ve para yatırma) başarılı olması gerekir.
Eğer transferin bir adımı başarısız olursa, transaction aspect sayesinde tüm işlem geri alınarak veri tutarsızlığının önüne geçilir.
AOP’nin temel prensiplerinden biri olan transaction aspect, uygulamanın farklı katmanlarında tekrar eden işlemleri merkezi bir noktadan yönetmeyi sağlar. Bu sayede kod tekrarını azaltır ve uygulamanın bakımını kolaylaştırır.
public class TransactionAspect : MethodInterception { public override void Intercept(IInvocation invocation) { using TransactionScope transactionScope = new TransactionScope(); try { invocation.Proceed(); transactionScope.Complete(); } catch { transactionScope.Dispose(); throw; } } }