[MIX06] WPF/E

WPF/E (Windows Presentation Framework Everywhere) is conceptually similar to Flash. It allows for rich client functionality in the browser through the use of a browser plugin. It supports audio and video, vector graphics (2D only), etc. It was announced at the PDC in 2005.

I attended the WPF/E session at Mix06 since I'd ignored it to this point and wanted to get an idea of what it's about. I was pretty skeptical - how is this going to be any better than Flash, anyhow?

I'm impressed.

WPF/E uses a browser plugin to display XAML[1], Microsoft's XML based language for rich applications.[1] This is an advantage in that it's completely text based and can be written in any text editor. Of course Microsoft hopes you'll use Microsoft Expression Web Designer, but it's entirely possible to build WPF/E for free. There are some open source initiatives to build Flash on free tools, but I didn't see any that offer any kind of GUI support.

While the WPF/E object can be manipulated from Javascript (as you'd expect), it can also be programmed in VB.NET and C#. How can a plugin running in Firefox on a Mac support .NET code? The control includes a lightweight MSIL engine! That's pretty impressive when you consider that the target size for the plugin is under 2 MB.

The IL engine supports a small subset of the .NET runtime suitable for WPF/E:

Base

  • XML / XAML Parser
  • Accessibility
  • Input and Eventing
  • Property System

Media Integration Layer

  • 2D
  • Test
  • Audio
  • Video
  • Imaging
  • Animation
  • Composition Engine

Other

  • Core Controls
  • Container Controls
  • Basic Layout

I asked about support for screen readers and search engine spidering. I was told that Accessibility support is included (note the support in the Base libraries above). As for searching, they're working with the major search engines to support spidering inside the WPF/E, but since the XAML is all text based this should work pretty well.

The video support is interesting - the media layer apparently has a custom video stack supplied by the Windows Media team. It looked like it only supports Windows Media, but doesn't require that the player be installed since it runs its own video rendering stack. At this point there's no hardware acceleration, although that's planned.

It's planned for CTP release in 2006 with a go live date in first half of 2007.

[1] XAML is similar to SVG. It's different because it lays on top of a different object model.

1 Comment

Comments have been disabled for this content.