We put the template support in for Visual Studio 2008 towards the very end of the 5.3 development cycle as a 'bonus' to fulfill community requests -- you'll notice we don't even mention it in the What's New section of the SDK documentation at all since we didn't know the street date for Visual Studio 2008.

There are three templates which ship in the 5.3 version:

Windows Media Center Application
A project for creating a Windows Media Center Application containing a page with four buttons which invoke a Media Center dialog box.

Windows Media Center Application - Background
A project for creating a Windows Media Center Background Application.

Windows Media Center Application - Fundamental
A project for creating a Windows Media Center Application containing the minimum code and markup required.

It just so happens that Visual Studio 2008 released to the general public a day or two before we released, so I've been scrambling to test out the SDK install on all sorts of permutations of Visual Studio installations -- the surface area for this testing is quite large when you look at the fact all of them can peacefully coexist with side by side installs. Last night we found an issue where one of the templates (the first one in the list above) isn't available in Visual Studio 2008 if the only development tool you have installed is a Visual Studio 2008 SKU.

Select one of the following to resolve...

  • Make sure you have a Visual Studio 2005 SKU installed (including any Express Edition) in addition to Visual Studio 2008 prior to installing the SDK.
  • Run a repair of the Windows Media Center SDK 5.3 if you've already got it and a Visual Studio 2008 SKU installed and are installing a Visual Studio 2005 SKU second.

Categories: SDK | Template | Comments [1] | # | Posted on Thursday, November 22, 2007 3:33:24 PM (GMT Standard Time, UTC+00:00)   

Working through the last revision of the SDK I found it was really hard to discern the development environment for successfully developing a Windows Media Center application -- mainly because you can't read what we write before installing the SDK...! :-)

So, let me take a moment to give you what I consider the bare minimum install set for a development machine in the order they should be installed.

Windows Vista Home Premium or Windows Vista Ultimate

Visual C# 2005 Express Edition

Visual C# 2005 Express Edition SP1

Visual Studio 2005 Service Pack 1 Update for Windows Vista

Visual C# 2008 Express Edition

Windows Media Center Software Development Kit 5.3

I've put these links over on the navigation bar at http://blog.mediacentersandbox.com as well for future reference.


Categories: SDK | Comments [0] | # | Posted on Wednesday, November 21, 2007 11:38:23 PM (GMT Standard Time, UTC+00:00)   

An updated version of the Windows Media Center Software Development Kit is now available for download from http://www.microsoft.com/downloads/details.aspx?familyid=a43ea0b7-b85f-4612-aa08-3bf128c5873e&displaylang=en. This is the same link as before so no need to change your bookmarks. These links also persist in the navigation section at http://blog.mediacentersandbox.com/.

Here is a list of what's new or changed with this release...

MCML Preview Tool Automation Model
An improved automation model allows a tools developer to load an MCML file, refresh the current view, and close or get the position and size of the current instance. New command-line switches specify a folder to watch and automatically refresh when any resource in the folder changes.

Changes to the MCML Preview Tool Launcher
The improved MCML Preview Tool Launcher takes advantage of the new MCML Preview Tool automation model and command-line switches.

Additional Documentation on Animations in MCML

Check out the new or improved documentation on these topics:

  • Working with Animations in MCML
  • Using Keyframes in Animation
  • Applying Interpolations to Keyframes
  • Setting the Weight on Interpolations
  • Playing Different Types of Animations in Response to Events

MCML Animation Explorer
MCML Animation Explorer is a new tool that helps developers learn animation in MCML. Instead of writing XML you can work with a bunch of knobs and switches in a graphical user interface and see the resulting MCML as well as the visuals in the MCML Preview Tool.

New Visual Studio Templates
The following templates have been added for C#:

  • The Windows Media Center Application – Background template creates a project for a Windows Media Center background application.
  • The Windows Media Center Application – Fundamental template creates a project that provides a basic framework for creating a Windows Media Center application.

Visual Studio 2008 Support
The application templates now work with Visual Studio 2008.

Deprecated Features
The following platform features have been deprecated with this release:

  • Hosting for Microsoft .NET Framework 3.0 Extensible Application Markup Language (XAML) browser applications (XBAPs).
  • The Triple-tap / Soft-keyboard ActiveX control for hosted HTML applications.
  • Support for using alternative shells to run and host HTML applications.

Categories: SDK | Comments [12] | # | Posted on Monday, November 19, 2007 11:52:28 PM (GMT Standard Time, UTC+00:00)   

An updated version of the Windows Media Center Software Development Kit is now available for download from http://www.microsoft.com/downloads/details.aspx?familyid=a43ea0b7-b85f-4612-aa08-3bf128c5873e&displaylang=en. This is the same link as before so no need to change your bookmarks. These links also persist in the navigation section at http://blog.mediacentersandbox.com/.

The following is a summary of the key changes to the Windows Media Center Software Development Kit for this version:

  • The Windows Media Center Application Step By Step document which helps you create a Windows Media Center application from an empty project using Media Center Markup Language (MCML), C# and Windows Installer XML (WiX).
  • The C# project template has been revised and now includes Windows Installer XML (WiX) 3.0 scripts for generating a setup program to install the application. See the Readme.htm file when you create a new application with the template for more information. This application template is the same result you get from working completely through the new Step By Step document.
  • The MCML file template has been revised to work better with the C# project template and includes the basic Properties, Locals, Rules, and Content elements typically needed.
  • A Visual Studio solution for the MCML Sampler making it easier to search, copy, and paste from the markup and code files.

I'd like to take a moment to thank our community of developers over at http://discuss.mediacentersandbox.com who provided lots of feedback on the Step By Step document to make it a great resource for beginners.


Categories: SDK | Comments [1] | # | Posted on Tuesday, August 7, 2007 12:46:01 AM (GMT Daylight Time, UTC+01:00)   

IgnoranceIsBliss continues his series on creating a Windows Media Center application using managed code (C#) and Media Center Markup Language (MCML). In his most recent post Stage 10 - Installing It he has the following to say about writing registry keys directly instead of using the Registration API:

1. Charlie, the Microsoft product director for Media Center extensibility (IE. the Media Center SDK) has informed me that MS won't guarantee that the method of registering plugins will remain the same. Of course, I then asked 'OK - then why do you TELL us to register them that way?' and there wasn't much of a response. I'm yet to see if this is still true in the newer version of the Media Center SDK.

2. If you run a 32 bit installation on a 64 bit version of Windows, your registry entries are placed in an entirely different tree. So the 64 bit version of Media Center can't actually see the keys you've created.. This means you MUST produce both a 64 and 32 bit version of your installer.

Microsoft themselves suggest you use WiX, which is an open source product of theirs that allows you to create installers - but since it's a complicated platform and I want to be able to take you through the basics without needing any additional software, I'm going to take you through the easy, but perhaps not officially supported method of adding registry keys directly.

In response...

A) The reason we provide an abstraction layer for the registry keys is simple: We can change the underlying methodologies for registering experiences without breaking the apps (or their installers). For example, suppose we change where Windows Media Center looks in the registry for applications. By writing registry keys yourself they may end up in a location we aren't polling -- and therefore the app won't appear. Using the API will always work even if we change things under the covers. Abstraction is good -- it helps you maintain forward compatibility.

B) There are a very few select OEM scenarios where writing the registry keys directly makes sense. Specifically, where you are using a single image for thousands of preinstalled machines. Outside of this specific scenario (i.e. if you aren't an OEM using this to prep machine images) there is no good reason to write the registry keys themselves, and to do so only increases the risk the installer will be possibly broken at some later date. I've even advised OEMs to use the Registration API during the preinstall phase rather than write registry keys.

C) We include writing the registry keys directly for those who are committed to only using a Visual Studio setup project. Effectively, the Windows Media Center Platform team does not recommend using the Visual Studio setup project because of it's inherent limitations (which are more than just this singular issue). As a bonus, using WiX also makes the installation solution accessible to folks using free tools (Visual C# 2005 Express Edition) as well.

D) WiX does carry a higher learning curve. Along with that comes much more granular control over the installer and, perhaps more importantly, a fundamental understand of what is happening when the user installs the application. FWIW, I personally found it difficult at first, but now that I've got a pretty good understanding of the pattern in the WXS file it's much more 'friendly' to me compared to a Visual Studio setup project -- which abstracts everything out too much in my opinion, and I'm not even a setup guru and love the abstraction to make it easier (just ask Aaron).

D) If you do follow IgnoranceIsBliss logic, just remember it's pretty unfriendly to force a user to figure out which installer to use (32 bit or 64 bit) -- especially given the actual library is identical for both (you don't need to compile for each in the context of a Windows Media Center application). Make it simple -- have a single installer. That means using the Registration API and WiX.

E) We revised this SDK documentation with the last release (see http://msdn2.microsoft.com/en-us/library/bb189827.aspx) which quickly vectors the reader back to 'use the Registration API'. We will make further clarifying changes in the future.

IgnoranceIsBliss has done a pretty good job of giving you a guide to creating a Windows Media Center application -- just make sure you use his documents as a supplement to the information in the Software Development Kit -- not in lieu of.


Categories: SDK | Comments [3] | # | Posted on Monday, June 18, 2007 8:23:23 PM (GMT Daylight Time, UTC+01:00)   

An updated version of the Windows Media Center Software Development Kit is now available both online via MSDN at http://msdn2.microsoft.com/en-us/library/aa286546.aspx and download from http://www.microsoft.com/downloads/details.aspx?familyid=a43ea0b7-b85f-4612-aa08-3bf128c5873e&displaylang=en. These are the same links as before, so no need to change your bookmarks. These links also persist in the navigation section at http://blog.mediacentersandbox.com/.

This update was primarily designed to consolidate some whitepapers and technical articles and take into consideration some of the feedback we've been hearing over at http://discuss.mediacentersandbox.com/forums/.

The following is a summary of the key changes to the Windows Media Center Software Development Kit:

  • Incorporation into CHM of previously separate MSDN technical articles and team blog postings.
  • The MCML Preview Tool Launcher power toy is now included ‘out of the box’ (no separate install).
  • Q and Z setup projects now based on WiX 3.0 (was WiX 2.0).
  • Shortcuts for the MCML Preview Tool have been added to the Windows Vista Start Menu: One launches standalone, the other within Windows Media Center.
  • Registry files (*.reg) added to the \Tools folder to enable / disable of launch debugging and error details.
  • MCML Sampler source C# files (*.cs) files added.
  • Minor fixes and tweaks to the Z sample application.
  • Installs to the same c:\Program Files\Microsoft SDKs\Windows Media Center\v5.0 folder.
  • Setup UI and the entry in Add/Remove Programs both refer to Windows Media Center Software Development Kit 5.1.

In addition, we've heard many times over the past few months that MCMLSampler is wonderful for demonstrating the individual pieces and parts of MCML, and the Q and Z applications are really helpful as well. The feedback concludes they are good resources -- for the advanced developer. What we've been missing is something to bridge the gap for the novice or intermediate developer. So a couple of us sat down and created the Windows Media Center Application Step By Step whitepapers.

These documents take you step by step through creating a simple Windows Media Center Application with Media Center Markup Language (MCML) for the visuals leveraging managed code and the Windows Media Center object model. Each major section is prefaced by an explanation of what will be accomplished in that section as well as links back to the online version of the SDK. We've also put together a second whitepaper which shows you how to use Windows Installer XML (WiX) to build a setup program for the application. Finally, we are making source code for both available which is the end result after working through both whitepapers.

Windows Media Center Application Step By Step

Word Format: http://play.mediacentersandbox.com/docs/WindowsMediaCenterApplicationStepByStep.zip
Adobe Acrobat Format (PDF): http://play.mediacentersandbox.com/docs/WindowsMediaCenterApplicationStepByStep.pdf

Windows Media Center Application Step By Step -- WiX Installer

Word Format: http://play.mediacentersandbox.com/docs/WindowsMediaCenterApplicationStepByStep.WiX.zip
Adobe Acrobat Format (PDF): http://play.mediacentersandbox.com/docs/WindowsMediaCenterApplicationStepByStep.WiX.pdf

Windows Media Center Application Step By Step -- Source Code


As always, feedback is welcome either in comments here or in the forums at http://discuss.mediacentersandbox.com/forums/.

Categories: SDK | Comments [4] | # | Posted on Thursday, May 3, 2007 4:04:50 PM (GMT Daylight Time, UTC+01:00)   

We just posted the Windows Media Center Software Development Kit 5.0. Aaron stated it most appropriately: Sweeeeeeeeeeeet!!!!

Not many surprises in our RTW release (well, a few) -- let me recap some of the highlights of what you get in the SDK...

Documentation -- The overall structure of the documentation has been vastly reworked to take a task based approach, including a new 'Designing For...' section. *New* We have also added a good bit of new material to the Media Center Markup Language tutorial for this release.

Media Center Markup Language Preview Tool -- Available in Windows Media Center and as a standalone application. Be sure to also download our first ever SDK Powertoy -- the Media Center Markup Language Preview Tool Launcher which provides cut-n-paste and history functionality.

Media Center Markup Language Sampler -- 145 Media Center Markup Language samples demonstrating how to create a user interface, starting with the typical 'Hello World' and progressing through animations, input handlers, layouts, repeaters, scrollers, transformers, rules and API usage.

*New* Media Center Markup Language Sampler Online -- Coming soon, this resource will showcase new MCML examples as we build them, particularly targeted for the web approach.

Visual Studio Templates -- For Windows Media Center Presentation Layer Applications and .NET Framework 3.0 eXtensible Markup Language Applications for both C# and VB.NET.

Sample Application 'Q' -- A podcasting and videoblog client for Windows Media Center.

*New* Sample Application 'Z' -- An end-to-end sample which demonstrates how to put the pieces + parts found in MCMLSampler together in a real world application. I posted more in-depth information about Z here (or click the screencap).

Click To Record Authoring Wizard -- This applet helps you craft the XML needed to pass in to the Click To Record API methods to schedule TV recordings using the DVR features of Windows Media Center.

*New* Registration Example -- There is now sample registration XML and registry keys which demonstrates how to register a web application for every integration location available within Windows Media Center.

Download the Windows Media Center Software Development Kit 5.0 from...


Categories: SDK | Comments [7] | # | Posted on Saturday, November 18, 2006 12:35:30 AM (GMT Standard Time, UTC+00:00)   

Several weeks ago a few of us were helping out some friends in MCML creation and realized the Media Center Markup Language Preview Tool wasn't exactly optimized for testing with web applications (i.e., any time you need to type http:// for a URI). It also has a few shortcomings in the history department (ummmmmm, there isn't one). So a few of us got together and created a powertoy (i.e., not an official part of the SDK and not supported by Microsoft --read the EULA for details) which greatly enhances use of the Media Center Markup Language Preview Tool as a standalone application. It provides a handy dandy graphical user interface which...

  • Allows you to browse to / type / copy / paste / edit a URI and launch MCMLPad with command line switches.
  • Maintain a history of all URIs opened using the launcher.
  • Automatically save the history when the tool is closed and restore the next time you launch the tool.
  • Double-click any item in the history to launch MCMLPad with the item selected (and bubble it up to the top of your history).
  • Drag and Drop files from Windows Explorer to add items to your history.
  • Save a history to share with others or create resource groups for various projects.
  • Open histories you have saved or received from others. Included with the tool is a history for the MCMLSampler (MCMLPadAuto.Sampler.xml).
  • Clear the history.


The Media Center Markup Language Preview Tool Launcher Powertoy is available for download from...

This application is now included in the Windows Media Center SDK available from http://www.microsoft.com/downloads/details.aspx?familyid=a43ea0b7-b85f-4612-aa08-3bf128c5873e&displaylang=en.

Once installed, this powertoy resides in \Program Files\Microsoft SDKs\Windows Media Center\v5.0\Tools\ (unless you change the path) with a shortcut on the Windows Start Menu in the Microsoft Windows Media Center SDK folder. You can copy the executable anywhere you wish on the machine and run. It will create history and settings XML in the same folder as long as it has RW permissions.

Categories: SDK | Comments [0] | # | Posted on Saturday, November 18, 2006 12:34:04 AM (GMT Standard Time, UTC+00:00)   

For years we have had folks ask us for a complete end to end sample. Allow me to take a brief moment of your time and introduce you to our newest family member...


Here are screenshots of what you get with this sample application which debuts with the Windows Media Center Software Development Kit we are making available today:

An on screen keyboard designed to work especially well for remote control (while still working quite naturally for mouse and keyboard). For example, Channel Up / Down allows you to cycle through pages of characters (we ship EN-US uppercase, lowercase and symbols) without having to navigate off of the characters themselves. You can expand the number of pages by adding additional MCML to the source. A commented QWERTY version is already present in the source if you prefer that approach for your end users.

The login page demonstrates a typical username, password and remember me functionality. It's not actually wired up to anything for authentication, but provides a ready made example appropriate for most login experiences.

The top level navigation ('Main Menu') features a nice animation to highlight the row which has current focus. The hypothetical Z company is a triple play, offering great content for Movies, TV and Music. You will begin to notice the animated 'living' background and multiple levels of transparency within and across objects.

The main menu features promotional items which can drill down to the detail page for that item. A good bit of Z is data driven using XML and the SDK includes the Microsoft Access database used to create the XML for developers who want to start with Z and expand features.

Selecting the Movies item takes us to the gallery featuring all movies. The galleries have working filters similar to the pivot points in Windows Media Center. Here we begin to see that in Z, content is king. The design is heavily weighted towards highlighting the images associated with the content and a de-emphasis of the user interface elements.

Selecting one of the items in the gallery takes us to the details page where content is really highlighted with a full screen image. Note the alpha blending of graphics. This is also a good chance to point out the Z main menu logo at the top as well as the Search and Downloads buttons at the bottom which persist on almost every page in Z.

After selecting the Preview button you are treated to the graphics alpha blended on top of a full screen video. In this case it's a sample from the Windows Media High Definition Showcase.

After selecting the Purchase button, Z begins the download of the content using a download manager service (again, full source code included in the SDK) which runs in the background. You can exit out of Z and even close Windows Media Center and the download will continue. By default, downloaded files are placed in \users\public\videos\ so they can be viewed in the Windows Media Center Videos gallery. Note the dialog box customization with Z logo.

Navigating down to and selecting the Downloads button takes us to a page where we can monitor the status of all current downloads, complete with working progress bar.

Here we see the TV gallery which showcases reuse of the same focus elements as other galleries but sized differently and arranged in two rows. In addition, the TV feature is 'deeper' than Movies -- it features 'Shows' which can be selected to see the 'Episodes'. This is designed to show how flexible the databinding is in Media Center Markup Language.

Drilling down to one of the TV episode items ('Error Amice') takes you to a details page which demonstrates use of the FindService method. As with Movie Preview we have alpha blended graphics (we can't show you a screen shot of that because we don't have rights to the images in the TV show -- but it works :-).

Selecting the 'Poena Commemorandum' item in the TV strip on the Main Menu takes you to a details page where you can schedule an individual recording using the Click To Record API. Note the Dialog box customization with the show image instead of the Z logo.

The Music feature in Z is designed to enumerate files and folders located in \users\public\music\ and offer them up to the user. This was one of the last features we implemented and we didn't have time to 'make it pretty' via interop with Windows Media Player to get additional metadata and album art. There have been a few requests from end users to be able to walk folders and this example provides a good starting point. When you select and individual music file we add it to the queue using the PlayMedia method. If there are no other items in the queue it immediately starts playing.

Z implements a search feature which returns results from the data XML and allows you to navigate directly to the detail page for the items found in the search. This works for Movies and TV but we didn't get around to enabling music. (Ah, work to book for vNext...!) It's also important to note anytime you navigate to a text box you can invoke the on screen keyboard.

At the top of every Z page (with the exception of login, main menu and on screen keyboard) there is a 'back to main' button which allows you to return to the Z Main Menu at any time. It's a graceful animation when it gets focus and the logo 'expands' to show the 'back to main' text.

Here I've brought up the mouse navigation and transport toolbars. Our design team did a great job making the 'back to main' button conform to the SDK guidelines for mouse overlays while at the same time giving it 'feature parity' with the Green Button and Back buttons native on the mouse toolbar.

Z was a wonderful group effort leveraging a great team both internal and external to Microsoft. A huge word of 'Thanks...!' goes out to the following folks.

The 'Softies...

Brian Kralyevich, Design Manager and Kristina Voros, Usability Engineer were invaluable in working with Method (see below) to make sure our design and usability was awesome and elegant.

Chris Glein, Software Development Engineer was responsible translating the design and making it a reality for the bulk of the data + logic (managed code) and UI (Media Center Markup Language).

Jeff Bogdan, Software Development Engineer took on the stretch goal of implementing the download manager using the new Windows Communication Foundation.

Michael Creasy, Software Design Engineer for Test and Reza Khoshbin provided the testing to make sure Z worked well and delivered what we said we wanted. Michael also provided some of the photography you find in Z.

Aaron Stebner, Program Manager provide a ton of testing, code reviews, developer scripts, Visual Studio integration, source code control and the wonderful Wix (http://wix.sourceforge.net/) installer files which makes it super easy for developers to compile and build a ready made MSI with this sample out of the box.

Michael Palermiti and Lars Giusti provided images from their personal photography collection.

And our partners...

Method (http://www.method.com/) in San Francisco did a great job working with the design and usability team here at Microsoft to envision a back story for the hypothetical Z company as well as come up with several elegant (and highly usable) designs which really made 'the content king' as we requested. Let me give props to Wendy McKennon - Senior Interaction Designer, Tomas Celizna - Senior Designer, Jon Arnett - Senior Designer, Aaron Clinger - Design Technologist, Darcy DiNucci - Interaction Director, Robert Murdock - Design Director, David Nelson - Senior Design Technologist and Galen Myers - Relationship/Account Manager. You guys utterly ROCK...!

Thomas Hawk provided the bulk of the wonderful photos from his personal collection. We wanted some images which would really inspire designers and developers alike and evoke emotion to represent TV and movies. It is very gratifying to highlight the work of a capable photographer who is also an end user fan of Windows Media Center and a passionate blogger.

Watch for a subsequent post today on where you can go to download the Windows Media Center Software Development Kit 5.0. Once you've gotten the SDK we encourage you to compile this app, install and give it a whirl...!

Categories: Application | Sample | SDK | Comments [7] | # | Posted on Saturday, November 18, 2006 12:32:07 AM (GMT Standard Time, UTC+00:00)   
RSS 2.0
Sign In | All Content © 2014 Charlie Owen

This is a personal weblog. The opinions expressed here represent my own and not those of my employer.

Powered by newtelligence dasBlog 2.3.9074.18820