With the upcoming release of Windows Vista there is also a new version of Windows Media Center to be released. When it comes to developing custom applications for Vista Media Center you now, maybe unfortunately, have a choice of technology. While the only option within Windows XP Media Center Edition was to use DHTML and JScript you can now develop your applications either as a Windows Media Center Presentation Layer (WMCPL) using Media Center Markup Language (MCML) as the UI language, you also can develop your application as a Windows Presentation Foundation Browser Application and you still can use the "old" hosted HTML model. To make it clear to have choices is good however you should be aware of the implications a technology choice will have since you cannot do everything what's possible with one technology with another. A good overview about the basic differences of the three models can be found in the Media Center SDK which can be found here or in the picture shown below just in case you don't want to download the SDK at this time.
However one interesting feature of using the Media Center Presentation Layer is that you are now able to easily integrate live TV broadcast in your own Media Center Application. The key to that is the <Video> element that is introduced in MCML. The <Video> element is a UI placeholder for moving picture content regardless if it's a broadcast, DVD content or video streams and it can be easily integrated in your MCML Layout giving you th change to position, resize or even animate it quite freely. You are no longer limited to the SharedViewport that is located in fixed size in the lower left corner of the screen. A good example that shows this is included in the SDK Sample Application.
Another interesting point about the <Video> element is that you can do Overlays over live broadcast TV giving you the effect of clipping parts of the broadcast picture. This enables you for example to "replace" a stock ticker scroller on the tv broadcast with a personalized one from your application. This scenario is sketched in the following screenshot:
Things like that are not always possible with the other two technology options available mainly because WMCPL has the tightest integration with the Media Center APIs. So especially when it comes to work with live broadcasts the possibilities when working with the Windows Media Center Presentation Layer are really compelling and comprehensive and should be your first technology choice for your application development. So I encourage everyone to take a look at WMCPL and play around with it. For a good start I include the above, quick & dirty, sample which is derived from a SDK sample as markup in the atachment section below.
Although WMCPL with MCML is a great technology I want to mention that of course it is something you need to develop your skills in. Another slight drawback is that you don't have such sophisticated designtools as you have when it comes to Windows Presentation Foundation programming. Also the MCML syntax and semantics are quite different from WPF and XAML. So MCML Markup really is limited for use in a Media Center context. Also WPF gives you more and more compelling possiblities in designing user interfaces in the broader sense. Therefore it would be desireable if WMCPL with MCML and WPF with XAML would converge at some point in time. However there are no statements or indicators at this time that this is in plan for the near future.
For more and continuous information I recommend to visit the Media Center Sandbox from time to time.