VisualStateManager's Benefits
In case you haven't spent time as yet checking this out, you can find a good intro in the 4 part series by Karen Corby, starting here. Another interesting blog is by Ian Griffiths. Christian Schormann captures the goals for VSM here.
Personally I find VSM useful and in a recent conversation, we were discussing the benefits of VSM. I thought I will capture a few here.
1. VSM allows logical grouping of states. Looking at the state groups and states within, it is easy to figure out which states are orthogonal and which don't go hand in hand.
2. The capability of control to exist in mutliple states from different VSM state groups is interesting and as it is internally managed, the control writer doesn't has to worry much about this, apart from invoking GoTo actions to transition to specific states.
3. VSM model can not only be applied at custom control but at a page level as well and page states managed via it. I had shown this in my earlier blog.
4. The best part of VSM, i feel is the ability to deactivate a state when animating to another state in the same state group. VSM not only deactivates, but actually plays a suitable reverse animation. Ian explains this in his blog in more detail. I tried to dig deeper into the framework code to see how this is implemented but hit a roadblock as the real implementation is in agcore.dll and that being a native DLL i could not use reflector with it.
You are welcome to add to this list.


Comments
Fluid Layouts was another feature added in Blend 3. It helps in creating smoother animations and reduces the design complexities too.
One more benefit I find with VSMs is that they help manage the code well. The orthogonal groupings help in better understanding of the states.
Posted by: Nimisha | January 13, 2010 08:19 AM