Is this list a correct understanding of Microsoft's current application deployment options? Is this list a correct understanding of Microsoft's current application deployment options? wpf wpf

Is this list a correct understanding of Microsoft's current application deployment options?


Great Summary, Edward.

Much of the code in Silverlight can be directly used in WPF & WPF XBAP apps because Silverlight is a subset of WPF. For XAML, you will have to change the namespace URI and probably have to do some slight manual tweaking.
For XAML to Silverlight conversions, you will have to do change the namespace URI as well but refactoring might be necessary if WPF elements are used that are not in Silverlight.WPF and the Sync Framework are great options for online/offline applications. See the Syndicated Client Experience Starter Kit for an example of a WPF/Sync Framework app. Also Silverlight + Windows Live Mesh will provide online/offline capabilities.


The deployment options MS supports for client applications are

Clickonce is not WPF specific.

XBAPS are clickonce deployed, browser hosted WPF apps in a trusted security sandbox. WinForms apps can be clickonce deployed and can be browser hosted.

Silverlight is (mostly) source compatible with WPF. You can recompile SL controls as WPF controls.

Non browser hosted clickonce is probably a good fit for you.


AppStart experience:

MSI =Only Windows. Many clicks. Install before use. Good for very huge and resource intensive apps. App can be distributed on dvd. App can do everything. No technology restrictions.

ClickOnce =Only Windows. Can be activated from webpage. Is downloaded once. Keeps info abouts it origin (Server) and can automatically update. App is restricted. Needs .NET

Silverlight =Runs on Windows/Max/Linux(soon) and future Mobiles(planned). Is a webpage or can be embedded into html. Code is on Server and will never be installed. Needs Silverligth-Runtime. Provides subset of WPF

XBAP = Like silverlight but only for windows. Nobody will need that. Silverlight is better

Programming technology:

Silverlight =Runs on client maschine. Uses WPF*

ASP.NET =Runs on server maschine in .NET but Javascript/html on client maschine.

WinForms = old technology

WCF = won't work for browser based apps. Is for distributed apps. One could open up all doors into client mashine. Using WCF = needs MSI.

WCF provides a good framework for server. You will never need WCF on client when you use REST for interfacing. The client can be connected/disconnected in ClickOnce and MSI installed apps. You have to connect to a webpage for appstart in silverlight and ASP.

XAML can be reused for silverlight/wpf/xbap. Minor changes in wpf/silverlight. No changes in wpf/xbap as I know.