Difference between WPF, WPF/E and XBAP

Getting closer to all the XAML stuff around the Windows Presentation Foundation I bumped into some understanding problems about all the new concepts. What are the meanings of all these shortcuts?


Stands for Windows Presentation Foundation (formerly known as Avalon) and is part of the new Microsoft .NET Framework 3.0 which is an extension to the existing .NET Framework 2.0. With WPF Microsoft relieves the older Windows Forms programming model and supports the software development process to be split into two different parts:

  • Design phase, where creative artists build the UI using Microsoft Expression or third party tools like Zam3D or Aurora;
  • Development phase, where the applications core functionality (business logic) will be implemented

The WPF team designed XAML (Extensible Application Markup Language) an XML-based scripting language to create user interfaces declaratively. The XAML markup is the interface between the design and implementation phases. The aforementioned designer products spit out XAML, that can be programmed through events and the underlying object model.


Means Windows Presentation Foundation Everywhere. It is a subset of WPF that only shares the XAML presentation layer. This means you won’t have WPF controls (buttons, textbox, …) or databinding support in WPF/E. Only the basic elements for graphics, event handling (using JavaScript) and media are available. The big advantage of this solution is that a visitor of your website doesn’t have to install the whole .NET Framework 3.0 (54MB) on his client machine. WPF/E provides a cross platform option to enable XAML based content in different browsers. This is done shipping out plug-ins for common browsers like Mozilla Firefox, Internet Explorer 6+ and Apple’s Safari. These add-ons are less than 2 MB, thus it is nearly the same size than Adobe’s Flash Player plug-in. But regard WPF/E as being an extension for existing web technologies like ASP.NET, AJAX, PHP, …

Today WPF/E is not in a final state, but will be finally released by mid-2007. In version 2.0 C# and VB.NET should be available, which will extend the current JavaScript support.


Stands for XAML Browser Applications. You maybe get to the conclusion, that this is equal to WPF/E. But there is a big difference. With XBAP you can provide a complete WPF application (without restrictions to the whole WPF functionality) to a client browser. The browser is the application host in this situation. Therefore the .NET Framework 3.0 has to be installed on the client side. You also have to ensure, that operations within your XBAP won’t run into security problems on the client (e.g. file system access). This reflects the difference between a stand-alone WPF application and an XBAP: WPF applications run with the priveleges of the currently logged in user, whereas XBAPs are launched inside the browsers sandbox that has just a very small set of privileges. XBAPs and the security issues are pretty difficult. Maybe I can come closer to this in a future post.

In upcoming posts I’ll step into more details about WPF/E, because I’m now looking for a new solution for combining my blog page and the flash based picture page.