Even a chimp can write code

Sunday, May 21, 2006

Application and Content options with WPF

I'll attempt to provide an overview of the application and content options available with Windows Presentation Foundation. Perhaps that will clear some of the confusion and ambiguity, and help you make decisions. This is a cross-post to my response in the WPF Forum.

Application or content in WPF can be architected to fit into one of the following segments:

  • Loose or Uncompiled XAML

  • Browser-hosted applications (XBAPs)

  • XPS documents

  • Standalone, window-based applications (SAAs)

Loose XAML has the advantages of simplicity and is suitable for small islands of rich data or vector graphics, and sometimes even as standalone pages with low interactivity. Loose XAML is especially good for represent flow documents. However, no script or code-behind support is currently available in concert with loose XAML. Allows for seamless integration with existing web content: you can seamlessly navigate to a loose XAML file from HTML and back.

XBAPs run in a partial trust sandbox within the browser and aim to offer parity in features (I'd argue it achieves it more or less) with traditional web applications. This is suitable for building rich web applications. Currently XBAPs only work on browsers that support the Web Browser control (IE6/7, Netscape, MSN Explorer, Maxthon etc.). I know people have written WebOC plug-ins for Firefox, Opera etc. (e.g. Neptune, IETab etc) but I haven't played with these enough. XBAPs throw no prompts on launch and therefore they too allow for seamless integration with existing web content.

XPS documents are paginated representations of electronic paper. The doc format is open and cross-platform. Ideal for creating, sharing, printing and archiving documents. XPS provides support for a subset of XAML functionality. They may be viewed inside the browser akin to XBAPs, or in another viewer (say 3rd party) if one is registered.

Standalone, window-based WPF applications have the same deployment model of ClickOnce full trust applications (i.e. Start menu and Add/Remove Programs integration, update support etc.). These applications are installed per-user on your computer and you can tap into the complete power of Windows Presentation Foundation with these applications.

Besides these, there is:
  • Windows Presentation Foundation/Everywhere (WPF/E)

This is a parallel initiative that takes much of WPF's functionality and richness, and makes that available cross-platform and on devices. WPF/E provides support for two complimentary programming models: the .NET model and the JavaScript model. This allows you to leverage your existing investments and skills in either areas and provides for a powerful interaction with the browser DOM among other things.


Email this | Bookmark this