Language-independent aspect-oriented programming
Abstract
The term aspect-oriented programming (AOP) has come to describe\nthe set of programming mechanisms developed specifically to\nexpress crosscutting concerns. Since crosscutting concerns cannot\nbe properly modularized within object-oriented programming, they\nare expressed as aspects and are composed, or woven, with\ntraditionally encapsulated functionality referred to as components.\nMany AOP models exist, but their implementations are typically\ncoupled with a single language. To allow weaving of existing\ncomponents with aspects written in the language of choice, AOP\nrequires a language-independent tool.\nThis paper presents Weave.NET, a load-time weaver that allows\naspects and components to be written in a variety of languages and\nfreely intermixed. Weave.NET relies on XML to specify aspect\nbindings and standardized Common Language Infrastructure to\navoid coupling aspects or components with a particular language.\nBy demonstrating language-independence, Weave.NET provides a\nmigration path to the AOP paradigm by preserving existing\ndeveloper knowledge, tools, and software components. The tool?s\ncapabilities are demonstrated with logging aspects written in and\napplied to Visual Basic and C# components.