Windows Media Center Presentation Layer Applications

Windows Media Center serves as a host for managed code assemblies created with the Microsoft .NET Framework 2.0. A hosted assembly is called a Windows Media Center Presentation Layer application.

A Windows Media Center Presentation Layer application uses the following technologies to control and extend features and capabilities of the Windows Media Center experience:

  • The Microsoft .NET Framework 2.0 is a development and execution environment that allows different programming languages and libraries to work together seamlessly to create Windows-based applications and services that are easier to build, manage, deploy, and integrate with other networked systems. A Windows Media Center Presentation Layer application has access to the .NET Framework's System namespace, and to namespaces provided by external assemblies.
  • The Windows Media Center Application Programming Interface (API) enables you to programmatically automate features and experiences of Windows Media Center, including media playback, queue management, tuning to live TV shows, scheduling recordings of future TV shows, parental controls, and navigation to Windows Media Center features from within a third-party application. For more information, see the Managed Code Object Model Reference.
  • The Windows Media Center Presentation Layer is the same rendering technology used by Windows Media Center itself to create its user interface. Using an XML declarative language called Windows Media Center Markup Language (MCML), you can take advantage of dynamic layout capabilities, integrated animation support, rich text and graphic support, and automatic keyboard, mouse, or remote control navigation. Applications that use the Windows Media Center Presentation Layer can render remotely with full fidelity to a Windows Media Center Extender session running on Xbox 360.

There are three types of Windows Media Center Presentation Layer applications:

  • A Windows Media Center Presentation Layer local application consists of an installed managed code assembly and related files. As a locally-installed application, it has access to all computer resources.

  • A Windows Media Center Presentation Layer Web application uses MCML delivered using the HTTP protocol over the Internet to display rich client UI on the local PC without requiring installation of local files or assemblies. Windows Media Center provides an environment in which the MCML can be hosted and provides full access to Windows Media Center API methods and properties and a subset of Microsoft .NET Framework types to support common scenarios of Web-delivered experiences. A Windows Media Center Presentation Layer Web application has no access to local computer resources.

  • A Windows Media Center Presentation Layer background application has no user interface, launches soon after Windows Media Center is started, and continues to run until it closes on its own or is forced to close by Windows Media Center. A Windows Media Center Presentation Layer background application can run continuously and transcend individual Windows Media Center experiences and features.

    The following are examples of background applications:

    • A sophisticated remote control, such as an application for a Tablet PC that acts as a powerful remote control for a running Windows Media Center on another PC. One way this could be architected could be as a Windows service running on the Windows Media Center PC, hosting a remoting server. The Tablet PC application could connect to the Windows service and issue commands, such as open Windows Media Center, change the channel, and so forth. The Windows service would need to access the Windows Media Center object model.
    • Tools support, such as an application that could start Windows Media Center, navigate to a TV station, take a screen capture, and then close Windows Media Center.
    • TV guide control, such as an application that receives an XMLTV feed for guide data. The application could then use the TV scheduling APIs to change the channel to something the user might like more, after first prompting the user with a dialog box.

See Also