Software design patterns offer flexible, proven and effective solutions to common software development problems. GOF (Gang of Four) stands for the authors of Design Patterns: Elements of Reusable Object-Oriented Software. Gamma et. al. Addison-Wesley, 1995, identified 23 distinct design patterns and documented them in their book. This project is an effort of implementing Aspect based versions of these patterns in .NET.
This work is based on initial implementation by Jan Hannemann and Gregor Kiczales in ASPECTJ. Their findings have been referenced in the following paper.
Jan Hannemann and Gregor Kiczales. Design pattern implementation in Java and AspectJ. In Proceedings of the 17th Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA ’02), pages 161–173. ACM Press, 2002.
As an initial experiment we chose to convert the AspectJ implementations of the 23 GoF to ASPECT.NET. Aspect.NET is a visual environment for developing aspect-oriented applications for Microsoft.NET that was implemented as an add-in to Microsoft Visual Studio.NET 2005. Using Aspect.NET, the user can define and weave aspects and assess the results of the weaving in his or her projects. The focus on the GoF patterns, allows us to establish results and quantifiable metrics for improvement based on well known patterns. This will demonstrate the existence and optimization of cross cutting concerns in the design patterns and also how by isolating these concerns we can improve the quality of code and implementation complexity.