I was asked earlier when to use what Microsoft client Technology. I thought about just sending a link to Michael Schroeder’s post but decided I should put in my own thoughts on the matter first.
At the heart of Michael’s post is this table.
|WPF||WPF XBAP||Silverlight||ASP.Net + AJAX|
|Client||Windows XP SP2 (With .Net 3.0), Vista and obviously Windows 7||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|
Here’s my 2 cents on the subject.
WPF is a fantastic choice for applications that need full access to the desktop for any number of reasons. That could be full 3D support, access to desktop files and the like. You can install these applications through XCopy, a full downloadable Installer or a ClickOnce installer. Where possible, I like to leverage the ClickOnce installer as it gives some amazing benefits around auto-update and keeps my application in a secure sandbox so deployment becomes really easy.
Just don’t use XBAPs anymore. This was an attractive option for Intranet applications back before Silverlight 2 and to a lesser degree Silverlight 3. However, now that Silverlight has the power that it does with .NET and OOB options and the like, opt for Silverlight anytime you would have considered XBAPs.
Silverlight is the right choice for any external facing Applications. But that’s the key. I really look at Silverlight not as an HTML replacement but a true application layer. That’s one of the central points in the talk that James Ward and I did at Web 2.0 Expo last year – http://www.slideshare.net/joshholmes/best-and-worst-practices-building-ria-with-adobe-and-microsoft.
ASP.NET + AJAX