PostSharp Components

PostSharp is composed of the following components:

Component Name

Component Kind

Description

PostSharp Tools for Visual Studio

Visual Studio Extension

This is the user interface of PostSharp. It extends the Visual Studio editor, improves the debugging experience, and provides a new menu, option pages, toolbox windows, smart tags. We strongly recommend to install PostSharp Tools for Visual Studio on each developer workstation.

PostSharp

NuGet Package

This is the core of PostSharp. It contains the PostSharp compiler, the MSBuild integration (the PostSharp.targets file is added to your projects upon installation of the PostSharp package), and the facade library PostSharp.dll, which exposes features to developers:

  • PostSharp Aspect Framework allows you to automate the implementation of other code patterns and address code repetitions that are specific to your own applications, or simply that are not available off-the-shelf in a pattern library. For more information, see sections Developing Custom Aspects and Adding Aspects to Code.

  • PostSharp Architecture Framework allows you to automate the validation of design pattern implementations, to enforce design intend, or simply to verify coding guidelines. The framework allows you to create constraint classes that encapsulate the validation logic and that can be applied to code artifacts. The framework provides tools to analyze the relationships between code artifacts and have access to the AST of method bodies. For more information, see section Validating Architecture.

PostSharp Common Pattern Library

NuGet Package

This package contains definitions and aspects that are shared by other pattern libraries, including:

PostSharp Model Pattern Library

NuGet Package

This package contains the following features:

PostSharp Model Pattern Library (Controls)

NuGet Package

This package contains the undo/redo buttons for WPF. See Adding Undo/Redo to the User Interface for details.

PostSharp Threading Pattern Library

NuGet Package

This package contains all threading aspects and their infrastructure, including:

PostSharp Diagnostics Pattern Library

NuGet Package

This package contains the logging aspect. See Walkthrough: Adding Detailed Tracing to a Code Base for details.