Windows Media Center RSS 2.0
 Thursday, December 07, 2006

I've been meaning to do a 'brain dump' of why we don't make the Windows Media Center look and feel available to third party developers. Here goes...

Application Compatability Risk
We know exactly who uses our buttons, galleries, templates, etc. -- us. If we change these we break exactly one application -- Windows Media Center. Making them available to third parties imparts a certain amount of risk in that we can break applications without knowing we have done so. For example, we have tweaked media galleries in every version of Windows Media Center to date. Compare the music gallery in Emerald to the one in Diamond, for example of one of the more dramatic changes. What happens if your app is based on our gallery because it assumes certain things about that gallery which are incompatible with our new gallery. Trouble for us -- and you.

Variety Is The Spice Of Life
It would be a very boring world if every application looked like Windows Media Center. We do not have the market cornered in great experiences designed for use with remote control. Now that we have a platform (Windows Media Center Presentation Layer) which allows you to do the same class of animations (including full fidelity remoting to XBox 360 Media Center Extender) as Windows Media Center itself we no longer have this 'thunking down' into a low fidelity HTML experience. I'm excited to see what folks are able to do with this power at their fingertips, and certainly expect developer enthusiasts to start shipping features which surpass our own (have you seen this http://mobilewares.spaces.live.com/blog/cns!78533A1A2E078194!177.entry -- my wife was asking how she could keep track of Law & Order episodes the other night, and this app holds the promise of just that feature --pretty darn cool).

Public vs. Private Platform
Because we are both a product and a platform we only have so much time to create the public platform, and the public platform will always be a subset of the private platform (stuff we use to create our product) due to this time constraint. The Windows Media Center user experience relies in some cases on private platform features not present in the public platform. Let me give you an example: The lens effect seen on the Windows Media Center Start Menu when you navigate items in the horizontal strips. Our design team wanted a very specific (and quite subtle) look and feel in this lens effect which could not be created to their satisfaction without a *huge* investment in MCML authoring (and even then, we still really couldn't give them exactly what they desired). So we wrote new rendering code (which is in itself non-trivial) to accomplish the effect -- but it came in too late to be considered part of what we could expose publicly. At some point in any software you have to make a decision about what you will vs. won't ship (even if you use an Agile method or 'ship daily' as can be done with web apps). All of that to say this: It's not possible to give you the controls unless they can be accomplished with the public platform. Classic chicken or egg first problem.

Focus On The Fundamentals
We are still focused on making sure the platform fundamentals are in place -- for example, expanding on what you can do with web application approach (see http://blog.mediacentersandbox.com/PermaLink,guid,cb622812-d80f-45d2-82d6-a54099e62e21.aspx). For example, you can't use session cookies in web apps today -- it's way more important to get this in than trying to recreate Windows Media Center look and feel for the public platform (see previous point).

Maintaining Brands
I'm sure some folks will zero in on this particular point and say 'I knew it -- it's all about the money!' So, up front I'll admit this could also be titled 'who pays our bills' -- which is why I put it at the bottom of this list -- so you would read the prior items first and hopefully see it's a wholistic decision process. We are, after all, out to make a profit for ourselves and shareholders. With but a few exceptions, everyone who has a day job does it to make a living. This puts food on our table and a roof over our heads. But I digress... We make the platform for multiple audiences -- big, brand name partners and individual developer enthusiasts, and many, many medium and small entities in between (think in terms of Large, Medium, Small and Individual audiences). Unfortunately, the needs of these groups will inevitably conflict in some ways -- and this is one of those areas. The big companies who have well established brands will never use a Microsoft brand for their experiences -- it diminishes their brand if they do (and they spend GOBS of money and resources into maintaining their brand -- sometimes too much, and at the expense of great experiences, but that's a topic for another day). We could do a bunch of work to expose our look and feel, but the large and medium shops will never use them. Never. And increasingly, neither do the small shops. Honestly, it's never come up in the list of feature requests from large or medium shops and only very rarely from the small shops. That means we can realize a zero return on investment in this area in terms of dollars. At the end of the day, those partners are what makes or breaks our platform from a 'budget' perspective. It would be great if we could make a platform solely for the individual (aka developer enthusiast) audience, but at this point in the Windows Media Center platform life we can't build a business on this alone. As we grow, and developer enthusiasts grow, we hope to do more things specifically for this audience. The Z sample application is a great example of where I specifically added 'features' to our SDK which would target and assist the individual developer enthusiast -- and hopefully it's a great start.

Maximum Flexibility
Our platform provides for maximum design flexibility at the cost of reuse. We propose 'one size fits all' is not a true statement -- therefore the platform is one which can be tailored at the extreme for any purpose. We understand this precludes many development folks who are used to other types of platforms which provide controls. We've been pretty honest and straightforward the platform may be difficult to grasp for the mass market developer or weekend coder.

Resource Constraints
As with any software product or platform there is a finite amount of resources to put into the project. We've evaluated the idea of including the Windows Media Center controls in our platform resources with each release. And with each release it's been deemed as less valuable than improving the features of the existing platform of visual primitives. Of course, we are still very early in the lifetime of this platform -- at the time of this writing, just over a year since it's been commercially available to consumers. Stick with the platform for 10-15 more years and let's see what happens to this request over time.

[3/26/2008 Edited To Add the Maximum Flexibility and Resource Constraints sections.]

Categories: Media Center Application Design | Windows Media Center | Comments [11] | # | Posted on Thursday, December 07, 2006 7:32:37 AM (GMT Standard Time, UTC+00:00)   
Thursday, December 07, 2006 10:02:42 AM (GMT Standard Time, UTC+00:00)
I think the Z application is a great example of building branding in to a custom Media Center application and show why you don't have to stick to emulating the standard Media Center UI
Having said that it is nice to extend the Media Center existing experience without confusing a user with a new UI
Thursday, December 07, 2006 6:12:21 PM (GMT Standard Time, UTC+00:00)
Whilst I can see the attractiveness of having an application look the same as the Media Center platform, there is one more issue that I'd add to the list - if the "addon" pages are identical in look and feel to the original, it's going to be real tough on the user to determine who they need to call if a specific page goes wrong - is it Microsoft or a third party? On the back of this, buggy third-party apps that look like the platform could cause end users to think the platform is buggy blaming Microsoft (how many times have you heard about Media Center not working, when it turns out to be a display driver problem).

Andrew
Andrew Cherry
Thursday, December 07, 2006 8:25:45 PM (GMT Standard Time, UTC+00:00)
Hi,

Is there an API into the video thumbnail creation functionality? Are there any plans to create a tutorial or give some idea on how you folks make this happen? I'm asking because in an earlier post you hinted about how you accomplish the thumbnails and I was wondering if you wish to share more.

Thanks!
Thursday, December 07, 2006 11:00:54 PM (GMT Standard Time, UTC+00:00)
Hi Charlie, thanks for the post, you raise some good points here.

My main reasons for wanting to be able to reuse the MCE UI elements are;

*To speed up the development process
Developing a good looking, easy to use UI is very difficult and time consuming, and many excellent code developers are also terrible UI developers. Microsoft obviously invested some serious time and research into designing the Vista MCE interface, it is highly polished, well thought out and intuitive to use. I think it's flattery and a good thing people want to reuse it.

*Consistency is good for the WAF
Though boring if all plugins looked and behaved the same, it would give the end user a consistent experience. For example, a certain member of my household doesn't like it when the interface changes radically between functions, she would feel much more comfortable when everything behaved in a standard consistent fashion.

*The good the bad and the ugly!
I see MCML UI design akin to website html/css design, they share many similar elements. This means we are going to see some excellent flashy designs, but we are also going to see some abysmal ones too. Web design templates for the design "challenged" web programmer exist and I am sure templates for MCML design will become a niche of it's own.

Z certainly does give a good template to start with, and I think we will see many smaller plugins based on this.

I can also see some great UI development potential here too. The potential for creativity, branding, etc is streets ahead of what hosted HTML could do, I am very excited about what we will see come out in the following months. I am just saying it would be nice to have the choice to reuse or reinvent.

Anyhow, hope you take my comments as constructive. I certainly don't mean them to come across any other way.
Cheers,
Ben
benneh
Friday, December 08, 2006 11:25:35 AM (GMT Standard Time, UTC+00:00)
Bulldust.

There is nothing worst than using an application without consistancy - screen color / icon changes are just damn annoying and break every guiding rule to a good UI design...

Frameworks are enabled for programmers to use windows functionality in ordinary development, so when they change by M$, then coders have to learn of the new ways - nothing different since year zip. Your argument does not stand in how if you change things it only affects M$ code.

Plugins are an extension to the MCE interface, and should follow guidelines and look similar to MCE just because they are integrated and need to present that UI for common use.

But where there is a will there is a way.... luckily there are a few people around who discover the good oil every now and again - such as this post http://www.xpmediacentre.com.au/community/mce-applications-development-support/15389-mcml-ui-framework.html where it has been found that you can code your plugins using some of the m$ attributes.

Doing things like calling code such as;
<Graphic Visible="true" Name="TestEhres" Content="res://ehres!Common.Background.png"/>

and dumping and looking at other MCE dll's enables at least some of the treasures....


Yep - I know your going to say not to do this - as it may change in the future... Well if it changes, we can just update the plugins to reflect the changes....

Anyone mention cat and mouse ? Until the mouse realises and grows up to be a lion, with lots of smarts - this is what we developers want.... help, support, and access to things to give consistency when we want to develop with consistancy and the option to break away from the mould when we want to do something different!
KC
Friday, December 08, 2006 6:59:15 PM (GMT Standard Time, UTC+00:00)
When using Windows, any software with non-standard menus, buttons, etc, usually feels "wrong". Unfortunately, almost EVERY MCE app feels wrong because we can't use the same menus, buttons, etc and so apps either go their own way (Comedy Central, MTV, AOL) or are poor copies (most are examples of this).

As a developer, I am glad that Microsoft allows me to easily write a Windows App with standard toolbars, buttons, menus, etc. As a developer AND as a constant MCE user, I hate that you force everyone to reinvent the wheel and (for the most part) fail at it. Sure, companies like Viacom and Time Warner can afford to create a GUI that is great but who else has succesfully done this? I will admit that I haven't. That has kept my company's MCE app in perpetual beta and it looks like we're not going to be able to release it in time to target MCE 2005 at all.
Friday, December 08, 2006 8:49:42 PM (GMT Standard Time, UTC+00:00)
KC, that's my post over at xpmceau forums, I am looking to develop a framework/template developers can use as this is one of the most lacking parts in the current SDK. I am doing it because I think there is great potential for MCML plugins, and because I don't think we will be provided anything like this from Microsoft anytime soon.

There is nothing sneaky about using those resources, in fact accessing resource dlls is encouraged in the current SDK MCML Sample Viewer, under fundamentals->resource access it talks about using any resource stored as RCDATA using res:// paths.

Extracting then using those resources I can see being a problem, but I don't see any issue with just referencing them from within code.
benneh
Sunday, December 10, 2006 6:29:04 AM (GMT Standard Time, UTC+00:00)
Unfortunately another typical example of how Microsoft works against it's users.

Either Charlie has NO CLUE what the uses want (if this is the case there is still hope because then we can educate him like you all are trying to do), but I find it REALLY hard to belive that someone could imagine that users want an app that has no continuity.

More likely there are a whole bunch of hidden agendas they are trying to make us buy into blindly with this ultrawierd logic that noone outside the MCE group understands.
Yeah, I hope they remove all the Windows Themes in Vista because it's so booooring with all this AERO that makes everything look the same... (yeah. just using the same ultrawierd logic) Let's spice Vista up with some apps using the Windows 2000 framework and some with Aero.. that would make everything so much more interesting.... NOT!

Pete
Wednesday, December 13, 2006 5:36:15 AM (GMT Standard Time, UTC+00:00)
I am atonished at how so many people want to re-use the look and feel of Windows Media Center in their own applications... After all they are simply a bunch of PNG files and animations that make Media Center look the way it does. My question is, after all, do we all want our applications to look like that?

Every company has a way to do things and each of their applications has to reflect that. By using the same look and feel of Media Center we as developers are denying our applications the chance to have an identity. After all, designers know how to do their thing, and although Microsoft has a bunch of good ones, you can be sure there are some other out there who can also do it great, and soon you'll see examples of that out there, using the Media Center Presentation Layer to its full extent.

Do you imagine how boring the Web would be if in order to pursue "continuity" all web pages would look the same?

Of course there will also exist applications using the MCPL delivering a poor User Interface, an awful look and several other bad things, but, hey, after all, that's how we demonstrate how good or bad we are at creating applications, isn't it? ;-)
Friday, December 15, 2006 9:09:18 PM (GMT Standard Time, UTC+00:00)
I think you miss the point a little, it's not just the look, it's the UI, how you navigate it, how it responds to input, how it is laid out, all these things contribute to making it intuitive to use.

For example, look at Niall's comments here http://mobilewares.spaces.live.com/Blog/cns!78533A1A2E078194!202.entry regarding the new sports strip in media centre. "I was a little confused at times with some of the navigation rules in there - such as the way you could move left right on the vertical list of news items (the tabs for each section were at bottom of the screen rather then on each side of the screen). I also found it a little inconsistent to use if you switched in and out of the local MCPL DLL addin and the MCPL Web Addin. (ie the categories/tabs needed to be 'clicked' on the web app - however in the main app you just needed to move the focus but didn't need to click at all)."

If a guy with his technical competency finds it confusing, how is the typical media center end user going to find it! and this is a professionally produced addin!!

This is exactly the kind of results we get when there aren't predefined reusable objects like buttons, which look and behave the same way. They exist for .net winforms and web apps after all, do you think windows apps would be better if they all looked and behaved differently? Please. *rollseyes*
benneh
Friday, December 15, 2006 10:06:57 PM (GMT Standard Time, UTC+00:00)
I think there is the fear that the Media Center Team will be more restricted to the current look and feel if they open it up for developers to use.

As a developer I have no problem fixing my MCML to conform or use to any future changes that are made in the look and feel. If it breaks my app, then I'll fix it.

Each time a new version of Windows comes out there is usually something that has to be fixed in an app to make it work on that new version. Manufacturers even have to develop new drivers for each new version of Windows.

I don't think that it is that difficult for developers to update their interface to fix any changes that are made in the MCE MCML's.

I for one, want my Media Center plugin to look like it belongs in Media Center. Please open up the MCML.
Comments are closed.
ZuneCard
GamerTag
About

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008 Charlie Owen

Sign In
All Content © 2008, Charlie Owen