Menu

Home

Trevor Ash

Wiggly Benefits

  • Make it easier to view configuration elements of complex environments.
  • Provides objects for sharing configuration across those applications (Check out the MachineProperties class and XML structure!)
  • Provides parent/child relationships for properties (not flat like appSettings)

These benefits are realized by consolidating configuration information into a single view and providing an extensible set of building blocks for collection classes (singleton, custom implementations, etc.)

Where To Best Utilize Wiggly

Wiggly fits perfectly into automated build processes. Especially those having continuous builds, unit tests, and especially when there are automated integration and regression tests. Wiggly even includes custom MSBuild tasks to quickly integrate itself with your build process.

Sometimes a picture is worth a thousand words. This scenario isn't uncommon:

Before Wiggly

This diagram is attempting to show how many components of a system use the same configuration properties, but sometimes the names differ, or it's in a different location, or stored differently. Time is wasted tracking down an issue because someone forgot to update one or more files.

Conceptually, this is how Wiggly solves these problems:

After Wiggly

High Level Architecture

The architecture is fairly straightforward:

  • Properties: A composite class containing a key/value pair and children properties.
  • Adapters: Converts data sources (e.g. app.config) into properties.
  • Transforms: Converts the result of one adapter to another, or modifies a collection of properties.
  • Collectors: Stores properties from adapters.

High Level Architecture

Sample Code

Here's sample code showing how to create collectors, adapters, transforms, and display properties:

Code Sample