(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.
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)
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!
* 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.