VisualStateManager

Recently, I talked about how templates in WPF/SL are fundamentally built around the concept of a state machine, where the condition is a Trigger (desktop WPF) or code (Silverlight) and the new state is a group of Setters (desktop WPF) or a Storyboard (Silverlight).  I hinted that in the future we would be making this more formal, and with the announcement of VisualStateManager for Silverlight Beta 2, you can see what I was talking about.

 Christian's introduction thoroughly covers the functionality and tooling, so let me expand on where this is going architecturally:

 VisualStateManager, by providing an abstraction of a VisualState, makes unifying the deskop and web models much more straightforward.  While currently in Silverlight a VisualState contains a Storyboard, in the future it contain a group of Setters, just as in WPF.  And while currently the user must call VisualStateManager.GoToState in code, in the future a GoToState action in the body of a Trigger will allow WPF style "codeless" templates to utiltize VisualStates and get the benefits of automatic transition generation and a more designer-friendly tooling experience.  More soon...