Windows Media Center - Application Development

Application Development

Windows Media Center was designed as a programmable platform; other programs can tie into the Media Center UI using the WMC API, which is provided as a managed API. The functionality of Windows Media Center can be extended by three different types of applications:

Windows Media Center Presentation Layer Applications
These are managed applications written using the WMC API and packaged as CLI assemblies. Presentation Layer applications can have full access to both the .NET Framework as well as the Windows Media Center API, with the latter exposing a managed object model to access and manipulate the current states of the media management and playback, live television, video recording as well as the presentation capabilities of Windows Media Center. Presentation Layer applications are rendered using the bitmap-based Windows Media Center Presentation Layer, the user-input and presentation system of WMC. Presentation Layer includes support for animations, dynamic layout, keyboard/mouse as well remote navigation. Presentation Layer applications can be streamed over RDP to Windows Media Center Extenders; so Presentation Layer applications run on the extenders without any modification. Presentation Layer, however, exists only in the Windows Vista version of WMC.
Presentation Layer applications are created using an XML based declarative markup language, known as Media Center Markup Language (MCML). MCML is used to define the user interface, with animation, text input, navigation, data binding, and local storage support available from the markup itself. If custom code or other functionality is required to implement a certain feature, CLI assemblies can be referred. Any CLI language can be used to write the code-behind assemblies that implement the required functionality. An MCML document defines the interface as a collection of UI elements, each exposing four attributes: Content which defines what that UI element will display, Properties to control the presentation aspects of the element, Locals which enumerate the set of private state data for the element, and Rules which allow the attributes to be modified based on certain triggers. By modifying these attributes at runtime, either from markup or code behind classes, the interface is generated.
Presentation Layer applications can either be locally installed, or downloaded from the web as necessary. However, in the latter case, the code is untrusted; only the .NET classes that are marked as safe for use by Internet-originating code can be used. Before an application can be used, it has to be registered with Windows Media Center. An application can either register itself as a top-level menu item, in any of the sub-menus (depending on the type of application), as an autoplay handler, into the Program Library (the menu category for all programs), or as a background application without a user interface running as long as a WMC session continues.
XAML Browser Application
WMC can also act as host for XAML Browser Applications (XBAPs), which are rendered in the WMC UI itself. XBAPs are rendered using the vector-based resolution-independent Windows Presentation Foundation component of .NET Framework 3.0. XAML Browser Applications have their UI written in XAML with code behind in any .NET language. XBAPs are also limited to Windows Vista. WMC provides limited support for streaming XBAPs to Windows Media Center Extenders. XBAPs have been declared deprecated in Windows Media Center SDK version 5.3.
Hosted HTML Applications
WMC can host Internet Explorer within its own UI (using WMC UI widgets) and can display web pages and web applications. This feature is supported in both Windows XP and Windows Vista. Web applications written specifically for being hosted in WMC can use a subset of the WMC API which is exposed via JavaScript. HTML applications are also not fully supported for streaming to extenders.

Read more about this topic:  Windows Media Center

Famous quotes containing the words application and/or development:

    The main object of a revolution is the liberation of man ... not the interpretation and application of some transcendental ideology.
    Jean Genet (1910–1986)

    ... work is only part of a man’s life; play, family, church, individual and group contacts, educational opportunities, the intelligent exercise of citizenship, all play a part in a well-rounded life. Workers are men and women with potentialities for mental and spiritual development as well as for physical health. We are paying the price today of having too long sidestepped all that this means to the mental, moral, and spiritual health of our nation.
    Mary Barnett Gilson (1877–?)