AOSD Conference
›› Program Overview
›› Research Track
›› Industry Track
›› Keynotes
›› Workshops
›› Tutorials
›› Demonstrations
›› Panel
›› BOFs

D9: Phx.Morph - Weaving using the Microsoft Phoenix compiler back-end

Wednesday 16:00-16:40 & Friday 9:20-10:00


We present Phx.Morph, a static byte-code weaver that enables Open Classes and Aspect-Oriented Programming for .NET. Phx.Morph is built on top of Phoenix, Microsoft’s industrial-strength back-end compiler framework. Phx.Morph is powerful enough to weave Phoenix itself (1.3 MLOCs), has the unique capability to generate debug information (PDBs), and is semi-officially supported by Microsoft.

We developed Phx.Morph in close collaboration with the Phoenix team. We describe how the development of the Phoenix project, a large software system with a real need for greater separation of concerns, helped motivate and validate our work. We discuss how our Open Classes solution improves the separation of concerns in Phoenix, including how it can provide a superior solution for client extensibility over traditional object-oriented solutions. We also examine some of the issues that hinder the adoption of AOP at Microsoft.

During the demo we show Phx.Morph in action by weaving .NET executables to add support for:

  • the Visitor pattern,
  • foreach enumeration,
  • invariants, and
  • logging.

If you are interested to learn about Phx.Morph and how you can use it on your next project, or about how to build your own binary weaver using Phoenix, then you don’t want to miss this demo!

Phx.Morph can be downloaded from


  • Marc Eaddy (Columbia University, USA)

Back to list of demonstrations

Edited by the AOSD Conference Committee.  Send comments to: