Working with MCML
It's a bit like working with WPF when you're drunk... it's sort of the same concepts, but a bit different, and confusing, and I can't quite do what I think I can.
Slightly more helpful comment now (hopefull). Actually, I didn't expect to get a lot out of MCML having been spoiled by WPF and its fancy design tools, but turns out it's quite good fun and is pretty capable for anything you're going to want to do in a '10-foot' viewing experience.
If you're thinking about messing around with MCML then the SDK has a lot of information on the object model and general concepts, but I found it lacking in detail. The many samples that come with the SDK make up for this in some ways though.
The most useful blogs I found on MCML are around and about here and particularly this one with a great 10 part tutorial on building an application for MCE.
In terms of general approach, then this worked fairly well for me:
- Build out a boilerplate MCML project - which includes pre- and post-build events for GAC registration and installation into MCE, and also includes a set of WIX set-up files (the step-by-step guide in the SDK is great).
- Break down the UI into primitives and construct these. This
- Construct the composite scenarios from the primitive controls.
- THEN add the media playback and other MCE interactivity.
Compositing controls works well, as there is a simple but effective inheritance mechanism for MCML <UI> controls, and also because conceptually in a 10-foot experience, user interaction should be consistent and obvious.
Finally, staying away from MCE until needed allows all of the initial development to be viewed in MCMLPad (included in the SDK) which saves a lot of effort using an MCE shell every time you build the project.