Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

MIX06 Day 2 - Know Your Chicken (and Flavors of WPF)

Pete Brown - 21 March 2006

(blogged to random Astral Projection tracks with a little Peter Gabriel UP thrown in)

In Praise of Smart Clients

Microsoft has three primary Smart Client targets:

  • Rich WinFX applications running on PCs (desktops, laptops, media centers)
  • Microsoft Office add-ins
  • Windows Vista sidebar gadgets

Microsoft and partners showed off some veyr rich WPF applications, including the digital magazine by Car and Driver and the Yahoo Finance Explorer. Also shown were several interesting sidebar gadgets, and some excel integration.

One thing I don't get is why sidebar gadgets are implemented as HTML. Why not make them XAML/WPF? Maybe that is an option, but it wasn't offered up. HTML/Atlas is nice, but quite frankly, you have to work too hard to get the results you want.

One interesting bit came up from Microsoft pointing out that most office users spend the majority of their time in Outlook. They recognize that, and have built in more functionality to make Outlook more of a killer app. One was the RSS feed support, and how it is used by eBay. eBay now has a feed that allows you to get all your bidding and watching items down in Outlook as real Outlook items. They are visible like email (with support to place a bid), and are added to your task pane. You also get reminders and full synchronization of those reminders and items with your mobile device. If you do a lot of eBay shopping, this is very very nice. (super nice?)

When targeting your smart clients, keep in mind that over 50% of all PCs sold in the US are now laptops. Add to that the new ultra-mobile Origami devices like the Founder MiniNote (I want an Origami PC!), and you have lots of different form factors to consider. Luckily, WPF makes this easy.

TV Connected

Windows Media Center Edition is pretty exciting. Not only is this a cool platform for writing your own little apps, but it is also a great place to create some incredible WPF applications. Apps written for the ten foot experience are so different from web sites or windows applications, that it can be a very exciting way to branch out and try something really new. Of course, the skills are very different as well.

The upper two versions of Windows Vista will include Media Center functionality as part of the package. Microsoft's thinking with how this will work is not that folks will have a PC next to their TV, instead they will have a home network with a media center PC (the family PC), and a Media Center Extender such as the XBOX 360 in the TV room. The Media Center PC will host the app code and will simply send the UI to the extender to be rendered on the TV. This is cool for geeks like us, but I think mom and pop are going to need a simpler setup to really make this catch on. Then again, they're not really the audience for this, so maybe that is a non-issue.


WPF/E is not WPF. In fact, they are related only by name and by their similar ecosystem. Both will use XAML, with WPF/E using a subset. However, their codebase is completely different. WPF is built and optimized for DirectX on the PC. WPF/E is optimized for cross-platform 2D. One personal concern here is that the two codebases will get out of sync, and the platforms will diverge as one needs to move faster than the other. I really hope that does not happen as convergence is the ultimate goal here.

WPF/E is fully sandboxed and will respect browser security settings. It will not provide any access to potentially dangerous operations (such as accessing the file system), and will limit web service calls to the domain which served up the page that hosts the control. Microsoft has taken security seriously, as they usually do, with the release of this new technology.

It should also be mentioned that the XAML will be search engine indexable, and will be ADA compliant. I'm not sure if the packaged XAML will be indexable as it will be somewhat opaque within the cab file. Microsoft is working with Google and other search engine providers to ensure that the XAML will be indexed even though it is housed within a script tag.

Initial WPF/E Target Platforms

  • Windows (IE 5.5+, Mozilla, Firefox)
  • Mac (Safari)
  • Linux
  • Solaris

It is worth noting that the Linux and Solaris versions will likely be done via "trusted partners".

The better part of a year after the initial release, Microsoft intends to have WPF/E running on devices (Windows Mobile, CE, etc.). When I asked, they said the model will be much like the CF work done today, in that the WPF/E code will run outside of the browser, and will just be a different project type in Visual Studio. Yay!

One way to create your page is to embed the WPF/E control and its associated XAML directly into the page. The XAML goes into a script tage with the script/xaml mime type. WPF/E bits* can be scripted using JavaScript accessing the WPF/E controls internal DOM to get to the XAML bits. Another way to get your app in the page is to write your scripting code in C# or VB.NET, and mush it and the XAML into a package which is referenced on the page and downloaded by the browser. The WPF/E runtime (a downloadable install targeted for 2MB or smaller) actually includes an IL scripting engine and its own (very stripped) class library. The more I can do in C#, the happier I am :)

* Ok, so what is the term here? Controls? Applets? WPF-lets?

WPF/E is a non-accelerated 2D and text rendering engine. It does not currently support XAML documents or 3d. IMHO, WPF/E on the web has a very steep hill to climb to get folks away from Flash and the SVG work. There just isn't a compelling case for it (so far) for folks who are using the other technologies. I hope that changes. I think that mobile devices will be a real sweet spot for WPF/E, as we tend to treat devices very differently from web browsers when it comes to installs and our expectations for getting content down there.

Know Your Chicken

Oh, and that odd catchy song that is always playing is Know Your Chicken by Cibo Matto from their debut album Viva La Woman. "I know my chicken. You got to know your chicken."


I have to say that this is the first Microsoft conference I've ever attended where the presenters apologized for showing a little code or markup. Boy, you designer types* sure are wimps ;-) That, and what's with the cult of "super" at Microsoft? Everything is super, heh.

* [sarcasm]my apologies to the pretentious woman who made a point of saying "Graphic Design is dead" and how creative professionals don't want to be called that any more as they all deal with brand identity and the like. Good think they all have such a charismatic self-appointed spokesperson.[/sarcasm]


On to day three, where I'll check out RSS and and get some ideas on Microsoft Research and the future of media and the web.

posted by Pete Brown on Tuesday, March 21, 2006
filed under:      

1 comment for “MIX06 Day 2 - Know Your Chicken (and Flavors of WPF)”

Comment on this Post

Remember me

3 trackbacks for “MIX06 Day 2 - Know Your Chicken (and Flavors of WPF)”

  1. Pete Brown's Blogsays:
    You have to love reporters. Or perhaps I just need to be more clear with them.
    On the way out of the...
  2. Games! Games! Games!says:
    This Xbox configuration does seem a little complicated for the parents....
  3. Pete Brown's Blogsays:
    When I attended MIX last year, it was all about WPF, with only one real session talking about a future