For those who don’t know what dFactor is, it’s a Visual Studio add-in I developed that provides convenience refactoring/code generation options such as implementing INotifyPropertyChanged interface on a class or converting a class to a singleton. See a list of features below.

This new release includes a new feature that Visual Studio SHOULD have by default, but doesn’t. That feature is the ability to collapse all projects at once in the solution explorer. Working with large solutions from source control can cause the solution explorer to expand all projects when you load it up. Projects I’ve worked on have been up to 80+ projects which takes a long time to collapse manually each time.

dFactor is now in the Visual Studio Gallery (supports VS2010 only) and is free. If you would like to have features added, please let me know.
Download from Visual Studio Gallery
Download from Codeplex

Solution & Project

  • Collapse/Expand all projects in Solution Explorer 
  • Collapse/Expand Project and Project Items
  • Add backing – Adds a backing field to default property style.
  • Add backing with change notification – Adds a backing field and includes a call to OnPropertyChange()
  • Include change notification – Includes a call to OnPropertyChange() for a property that already has a backing
  • Encapsulate – Converts field to private and builds a public property
  • Encapsulate with change notification – Converts field to private and builds a public property with a call to OnPropertyChange()
  • Convert to property – Converts a field to a property (default style)
  • IDisposable pattern – Implements IDisposable pattern on a class. Detects class members that implement IDisposable and automatically includes disposing of those members in the Dispose() method
  • INotifyPropertyChanged pattern – Implements INotifyPropertyChanged pattern. Includes a working OnPropertyChanged() method
  • Convert to singleton – Changed the class to implement the singleton pattern. Adds a static instance property (lazy loaded) and converts all constructors to private.
  • Generate argument null checks (all) – Generates null argument checks for all reference and string type parameters, inserted at top of method body
  • Generate argument null check – Generates null argument check for a selected parameter (reference or string type), inserted at top of method body
  • Wrap with Try/Catch – Wraps the method with a Try/Catch block. Does not require any text selection.
  • Wrap with Try/Finally- Wraps the method with a Try/Finally block. Does not require any text selection.
  • Wrap with Try/Catch/Finally – Wraps the method with a Try/Catch/Finally block. Does not require any text selection.