The must-have companion for your MVVM developments.

  • Remove repetitive code from INotifyPropertyChanged, Commands, Dependency Properties and Undo/Redo.
  • Easy validation with Code Contracts.
  • Keep your View-Model code super clean.
  • Works with most MVVM frameworks: Caliburn.Micro and MVVM Light.
  • Highly customizable.

More than 10% of all Fortune 500 companies have already chosen PostSharp.



Get rid of 95% of the INotifyPropertyChanged boilerplate and never miss a notification again.

  • Support for composite properties and child objects

  • Consistent and reliable

  • Fully customizable

  • Integrates with other MVVM frameworks: MVVM Light and Caliburn.Micro



Stop creating a class every time you define a command.

  • Easy, based on custom attributes and naming conventions.

  • Validated at build time.

  • CanExecute property integrates with the [NotifyPropertyChanged] aspect.

Dependency & Attached Properties


Dependency properties that still look like properties.

  • Support for composite properties and child objects.

  • Consistent and reliable.

  • Fully customizable.

  • Integrates with PostSharp code contracts.

  • Integrates with other MVVM frameworks.

Code Contracts


The most readable way to validate values at run-time.

  • Works with parameters, output parameters, return values, fields, and properties.

  • Works on interfaces and abstract methods. Automatically inherited.

  • As fast as hand-written code.

  • Customizable and localizable exception messages.

  • Integrates with the [DependencyProperty] aspect.

Weak Event


Avoid the most common source of memory leaks in .NET.

  • As simple as a custom attribute.

  • Apply to all events in your project in a single line.



Give your users the familiar Undo/Redo experience without breaking the bank.

  • Undo/Redo any object state change.

  • Handle multiple changes as one step.

  • Expose in the UI with built-in or custom controls.