Summary: Roots of ClickOnce and beyond...

Architecture > SmartClient > DeploymentStrategies > ClickOnce

ClickOnce Defined

ClickOnce is a new application deployment technology that makes deploying a Windows Forms based application as easy as deploying a web application. With “ClickOnce” running a Windows Forms application is as simple as clicking a link in a web page. For administrators, deploying or updating an application is simply a matter of updating files on a server; no need to individually touch every client.

Challenges

* TrackingDeployments - How can you track if deployments are successful or not on client machines?

Resources

* SmartClientDevCenterClickOnce - Official Click Once Feature Site
* HowToBuildIsolatedApps - How To Build and Service Isolated Applications and Side-by-Side Assemblies for Windows XP

Personal Observations


ClickOnce has a humble start around the same time frame as Terrarium - it's an interesting coincident.
We've also designed a similar deployment/update architecture based on this model but had to deal with a number of architectural choices to handle large scale deployments (we have programs now deployed to hundreds of related sites) and tracking of successful (or not) updates.

I'm looking forward to playing with ClickOnce to see how some of these challenges have been handled and, if not, perhaps writing extensions to OC that do handle them.




ClickOnce is no-touch deployment done right. Using XML manifest files to define your application and mode of deployment (VS will be happy to generate these files for you but msbuild is also happy to oblige), all a user has to do is activate your deployment manifest (either by URL, UNC share or file system) and the app is fully installed to a unified application store on the machine. There is even a shortcut on the start menu (you can turn this off if you want). The manifests are signed and describe the permissions the application requires, dependent assemblies, additional "loose" files (which along with assemblies can be optional downloads), etc. Permission elevation is also an interesting feature in that explicit user consent can be given to apps that require more access than normally allowed in the default sandbox. We're even planning support for registration free COM (also known as isolated COM) that is enabled for WinXP and above.

Deployment will never be the same...

Sampy




Our WinForms application has just been ported to .NET 2.0 and now uses ""ClickOnce"" instead of our own inhouse auto-update mechanism. One thing I don't like about it: it uses your current configuration to build the published application. I would like to have an option to ALWAYS publish a Release build, even if the current configuration is Debug. With our previous mechanism, we used Batch Build to make a Release Build of the solution, with Post-build events to publish the application.

@TommyCarlier=http://channel9.msdn.com/Niners/TommyCarlier
TommyCarlier@TommyCarlier
Microsoft Communities