My adventure creating a Media Center add-in, part 2

As you can probably tell by the timestamp from the previous entry in my running journal about learning how to create a Media Center add-in, I haven't had a ton of time in the past few weeks to devote to making forward progress on this project. When I left off last time, I had gotten the Media Center SDK installed and was about to start exploring it. There are a lot of different ways to go about learning new concepts, and the way I've found that I learn things most effectively is by getting hands-on. I learn new coding concepts best by reverse engineering working real-world code, tweaking it to do new things, then using that knowledge as a basis to start writing something new. So that is what I'm going to start out trying to do.

I decided to start by exploring the contents of the SDK (installed by default to C:\Program Files\Microsoft\Microsoft Windows XP Media Center SDK). I quickly notice Microsoft Windows XP Media Center SDK.chm in the root of this folder so I decide to browse through this first. The high-level introduction to the SDK in the CHM file indicates that there are several options for developers who want to extend Media Center functionality. It appears the major branching point for the type of development is to choose to write a Hosted HTML Application or an Add-In. I'm not a huge fan of HTM/HTA/ActiveX development and I want to exercise some of my coding skills that I haven't gotten a chance to use in a few months, so I think the best choice for what I want to try to learn how to do first is going to be an add-in.

I notice that there is a Sample Addins directory in the SDK folder, and there is a topic in the CHM that lists each of the sample add-ins and what concepts they demonstrate. This looks like it will be really cool and useful for me because these are real-world applications and not simple "hello world" apps. I think I'll start by picking apart these samples one after the other. The Sample Addins directory has the source code and it also has Visual Studio .NET 2002 project files. I only have VS 2003 installed, but that should theoretically be fine because it will prompt me to upgrade the project files when I try to open them.

Since I'm really tired and have to get up early tomorrow I think I'm going to have to make this my stopping point for this time around. Next time I'm going to look at the source code for the sample add-ins and see if I can get them building and plugged into my home Media Center machine to make sure I understand the end-to-end deployment scenario.

Eventually I will have to decide what kind of add-in I want to write when I venture out on my own. I've been trying to brainstorm a bit and read about what other folks are doing. I found a couple of cool sounding projects in my reading so far:

  • From Charlie Owen's blog - an add-in to schedule TV recording via an RSS feed. Since Charlie sits across the hall and a couple of doors down from me and I finally got a chance to meet him a few days ago, I should probably stop by and chat with him about this :-)
  • On MSDN - an add-in to jump to specific times while playing back media. The author of this one looks to have done a good job of describing the entire end-to-end development and deployment/testing process, and there is sample code here. So this looks like a good place to go for more complex examples after I work through the simpler add-ins that are in the SDK.