Yesterday I was visiting an IT department of a media company that was developing internal applications for their internal network users.  They asked a great question about when to use which presentation technologies, now that Microsoft has WPF, WPF XBAP, Silverlight, and ASP.Net+AJAX.  Here is my comparison matrix:

WPF WPF XBAP Silverlight ASP.Net + AJAX
Client Windows XP SP2 (With .Net 3.0) & Vista Internet Explorer + Windows XP SP2 (with .Net 3.0) & Vista FireFox, Mac Safari, Internet Explorer Any Web Browser
Deployment Downloadable Installer or ClickOnce Runs in Internet Explorer secure sandbox One-time install of Silverlight plug-in Web Page
When to use Programs that need access to Windows desktop files. Intranet applications for Windows-oriented companies. Rich Internet Applications for public-facing web sites General-purpose public-facing web sites

Are there any other factors that should be in this matrix?

P.S. Because the media company was developing these applications for internal customers who ran Windows XP, I recommended that they use the WPF XBAP presentation architecture because it provided the rich interaction experience possible with WPF and it was easily deployable and accessible through the Browser.

Notes:

  • Windows Vista comes with .Net 3.0.  For Windows XP SP2, it is a 50MB one-time download (90MB for 64-bit Windows)
  • WPF is the successor to Visual Basic 6, MFC, and Windows Form.  If you need to target your application for Windows 2000 as well as XP and Vista, then I suggest using Windows Forms 2.0.