Friday, April 19, 2024

Understanding Windows Presentation Foundation User-Interface and Deployment Options

Windows Presentation Foundation (WPF) isn’t simply
another user interface (UI) option. WPF is a whole new UI
approach that, itself, has three different options for UI

  • Standalone Applications

  • XAML Browser-hosted Applications (XBAP)

  • Silverlight Applications (which isn’t the same as XBAP)

So which one should you use? Here’s a quick rundown of
what’s the same and what’s different, aimed at making it
clear what’s best for your application. (I’ll begin by
discussing Standalone and XBAP and save Silverlight for

The difference between Standalone Applications and XBAP
is roughly analogous to Windows Forms vs. ASP.NET. But the
line between standalone applications and XBAP is much
fuzzier. That’s because you use the same set of controls and
the same way of defining them either way. The distinction
between the two is also fuzzier when it comes to deployment,
as well. Standalone Applications can be deployed in a
flexible way. Initial deployment and updates can be
virtually automatic, thanks to the newly empowered Click-

So what are the important differences?

A Standalone Application is installed on the user’s
machine using an MSI file or ClickOnce. It appears in the
Start menu and in the Add/Remove Programs dialog. (However,
it doesn’t have registry dependences and can be XCopy-
deployed, as with other .NET applications.)

  • An XBAP requires no initial deployment or update
    deployment. You simply browse to the URL and use it.

  • You must be on-line to use an XBAP. Standalone
    applications can run without an Internet connection.

  • A Standalone Application typically runs in a Full-Trust
    environment and therefore has full access to the .NET
    Framework libraries. An XBAP runs in a Partial-Trust
    environment that is limited. It cannot, for example, use
    Reflection. (In .NET 3.0, an XBAP was also restricted from
    using Windows Communication Foundation (WCF), .NET 3.5
    lifts that restriction, while retaining Partial Trust.)

  • An XBAP must run in a browser and in the browser’s
    process. A Standalone Applications runs in its own separate
    window and its own process. (An XBAP in .NET 3.0 is limited
    to running within IE 6.0+, but .NET 3.5 supports

That clarifies the difference between a Standalone
Application and XBAP. But what about Silverlight?
Silverlight is a browser plug-in that implements a subset of
the .NET Framework, including a subset of the WPF libraries.
This allows you to build a Web application that has a much
broader reach, running on all major Linux platforms
including MacOS X. The price you pay, of course, is the more
limited .NET Framework implementation.

So which is right for your project? Here are the
essential questions to ask:

  • How difficult is standalone deployment in your
    environment? While WPF Standalone Applications are easier
    than their Windows Forms counterparts, nothing is simpler
    than Web application deployment.

  • What’s the lowest common denominator client machine
    configuration in your environment? Can you rely on having
    Windows XP+ and .NET Framework 3.0+ on every client? Or do
    you have a mix that includes different flavors of

  • What pieces of the .NET Framework 3.0+ will your
    application need to leverage? And a corollary: What
    resources will your application need? Both XBAP’s and
    Silverlight Applications run in Partial Trust, using a
    limited .NET Framework (much more limited, in the case of

WPF portends a bright future for application UI’s. So a
clear understanding of the options is critical. Now you’re
ready to make an informed decision for your own environment
and projects.

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Popular Articles