AspectC#: An AOSD implementation for C#
A major problem with Object Oriented Programming (OOP) is that it cannot deal efficiently with crosscutting concerns. Aspect Oriented Software Development (AOSD) is a new methodology that tries to enable the extension of the separation of concerns capabilities in software development. AOSD, which encompasses Aspect Oriented Programming (AOP), hopes to enable the developer or architect to capture crosscutting concerns in a modular fashion. The objectives of the dissertation include the design, implementation and evaluation of a tool that enables the modularisation of crosscutting concerns within C#, that we have called ?AspectC#?. AspectC# must: 1. Allow the developer to use AOP constructs within C#. 2. Make no explicit language extensions to C#. 3. Be extensible for future development. AspectC# hopes to enable the developer to modularise crosscutting concerns within C#. By modularising crosscutting concerns this will lead to an easier development and maintenance of applications. The evaluation included a small case study comparing an example using AspectC# and OOP with C#. We believe the case study and tool supports the case for the use and promotion of AOSD. Special emphasis was placed on picking a real world, easily understood example of the use of the tool and we believe this represents an excellent introduction to some of the most widely used AOP and AOSD techniques.