About PostSharp MVVM

A must-have companion for your XAML developments.

PostSharp MVVM (formerly PostSharp XAML) is an ideal companion for your XAML developments. Remove boilerplate from your WPF and WinForms apps. Stop writing repeating code for INotifyPropertyChanged, commands, dependency properties, contracts, undo/redo, and more.

INotifyPropertyChanged

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

Command

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 add 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.

Undo/Redo

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.

PostSharp MVVM Features

  • Framework
    • Method-level aspects
    • Code validation
  • Common
    • Code Contracts
  • MVVM
    • INotifyPropertyChanged: automatic properties
    • INotifyPropertyChanged: explicit properties and child objects
    • Dependency Property
    • Command
  • Logging
    • Developer mode (freshly-built apps)