The document provides an introduction to aspect-oriented programming with .NET. It discusses various cross-cutting concerns like logging, exceptions, validation, and caching that can be addressed using aspect-oriented programming. It also demonstrates how aspects are used to modify the intermediate language (IL) code to inject cross-cutting behavior before, after, and around method calls. Various aspect oriented programming frameworks for .NET are also mentioned.