Aspect Oriented Programming (AOP)
Wat is AOP (Aspect Oriented Programming)?Aspect Oriented Programming deelt programma logica op in verschillende delen met elk hun eigen belang. Code blokken die een specifieke taak uitvoeren worden afgezonderd en gegroepeerd, en kunnen worden hergebruikt door andere stukken code, classes, properties, enzovoort… Veel voorkomende voorbeelden van functionaliteit dat vaak wordt geïmplementeerd door middel van aspects zijn logging, exception handling, caching, authorizatie,… Waarom AOP gebruiken?Aspects kunnen als classes geschreven worden om zeer specifieke functies uit te voeren. Deze aspecten kunnen dan aan code objecten (classes, methods, properties, events,…) gehangen worden als attributen. Dit betekent dat je je code slechts eenmaal hoeft te schrijven, en eender waar je ze nodig hebt kunt aanhangen door, meestal, slechts één enkele lijn code Door deze code van je business logica af te zonderen in aspects, hebben wijzigingen in deze aspects geen enkele invloed op je business logica. Op deze manier krijg je properdere en robuustere code, die bovendien eenvoudiger te onderhouden is. Wat dan weer resulteert in minder fouten en bugs. En doordat de code niet keer op keer moet herhaald worden, kun je je als ontwikkelaar focussen op de belangrijke delen van je code, de business logica, productiever worden en kosten besparen op ontwikkelingstijd. Wat kan AOP allemaal doen?Aspect Oriented Programming kan in tal van scenarios worden toegepast:
Hoe werkt Aspect Orient Programming?Afhankelijk van de tool die je gebruikt wordt AOP toegepast door middel van Dependency Injection (DI) (Spring.Net, Castle, fluentAOP, LinFu), als code generator (T4, CodeSmith) of worden aspecten in de programma code “geweven” op het moment van builden of uitvoeren (PostSharp, Aspect.NET, LinFu, SheepAOP, Snap). In deze blogpost wordt een voorbeeld getoond van hoe PostSharp gebruikt wordt om eenvoudige caching en tracing aspecten toe te voegen: Aspect Oriented Programming (AOP) with PostSharp (engels). |





