Understanding Windows Presentation Foundation User-Interface and Deployment Options

By Bill Hatfield

http://www.htmlgoodies.com/beyond/dotnet/article.php/3832406/Understanding-Windows-Presentation-Foundation-User-Interface-and-Deployment-Options.htm (Back to article)

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 deployment:

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 last.)

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

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

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:

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.