The WPF/E Developer Environment

On Monday of this week, we introduced a "little brother" for WPF as we released the first CTP of "WPF/E", a technology that was announced a year ago at PDC 2005. "WPF/E" is a small, lightweight, cross-platform client runtime that brings the animation, 2D vector graphics and media capabilities from WPF into the web arena, with support for XAML and JavaScript client-side scripting.

I've been having a lot of fun playing with the subset of functionality that is in the current release. If you're familiar with WPF already, you'll have no problems transferring those skills across. The feature set is relatively limited in the current CTP release, but you can already do some pretty fun things with it. The download is small (complete install with no other prerequisites in 2MB on Windows, 3MB on Macintosh), and we're working hard to keep the size as compact as possible.

It's inevitable perhaps that people will make comparisons between "WPF/E" and Adobe's Flash technology, since there's some overlap in the target scenarios for each technology. One difference that I'll call out is in the way each technology is embedded. Flash applets are distributed as .SWF files, which wrap all the resource and code information into a somewhat opaque binary format. On the other hand, the goal for "WPF/E" is to complement HTML by providing a more transparent approach. XAML can be loose within the HTML document and can be accessed with the same client-side JavaScript that is used for other parts of the web page; there's no hard boundary between the two worlds, which many web developers will find an attractive approach.

As an example, one of the most interesting third-party samples that's emerged over the last few days is Microbe, which has a very interesting demonstration of both technologies "living in harmony". If you look at the source code Lee posted, you'll see that the "WPF/E" code is just regular JavaScript (flashInterface.js) and XAML (plugin.xaml) - very easy to access and manipulate (in this case, using the ExternalInterface.Call() method from Flash).

Another comparison is of course between WPF and "WPF/E". WPF remains our flagship client platform API, enabling powerful Windows applications to be built with XAML, C# and the full underpinnings of the .NET Framework 3.0. On the other hand, "WPF/E" is aimed squarely at the web continuum, providing a great partner for technologies like ASP.NET AJAX. It's our hope and expectation that both technologies will have a long and illustrious future as solutions for different spaces.

I'll be posting quite a bit about "WPF/E" from now on, interspersed of course with continuing posts about WPF.

[As some of you may have noticed, I've been quiet for a few weeks. Microsoft is generous in offering four weeks' paternity leave for fathers, and since we welcomed our third child into the world at the end of October, I took advantage of the opportunity to take time out to recharge. It's good to be back!]

Comments (5)

  1. Anonymous says:

    Nice examples,but Adobe’s SVG plug-in has supported IE’s binary  behavior implementation,so I can write svg tags directly in html page-much more comfortable.But IE’s VML implementation goes even further.It supports HTML/VML interleaving,so I can mix up HTML content in VML markup,essentialy using HTML elements in context of VML-very powerful staff,for example I can use "Rectangle" with rounded corners shape,apply some vector/bitmap effects(like shadow),but inside of it place regular html input/select/table elements instead of VML,so I have beautiful web form without much effort.

    By the way,WPF/E doesen’t support templating/binding constructs and it’s not extendable(closed set of elements)-that WPF is all about(from developer perspective),so it’s not WPF at all but another SVG like implementation IMHO.


  2. Anonymous says:

    Congratulations on the new addition to the family!

  3. Anonymous says:

    In you can find an interesting post and source code example of integrating…

  4. Anonymous says:

    Oh,NO,there’s no styling/Resources handling!SVG has support styling on css level.

    Animation is nice addition though:-)

  5. Anonymous says:


    I’ve been developing to Flash/Actionscript for a while, so I’ve been looking forward to wpf/e… I don’t think _opaque_ in your description of swf does justice to the format, however (see:

    Meanwhile, if I develop on a mac, am I shut out of wpf/e?



Skip to main content