[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.