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