I caught the last half hour of a session on ClickOnce, which is a new installation technology in .NET 2.0. The main idea is that an application can easily be installed over the Web. It can also be updated automatically whenever a new version is placed on the server it originally was installed from.
ClickOnce is a very interesting technology, and it looks like a very interesting deployment option for Smart Clients. It seems quite secure through its use of certificates for signing deployments, and it still leaves enough maneuverability for it to suit a wide range of options. The deployment mechanism can be configured to work both automatically and manually, and if running automatically you can select if it should check for updates before starting (so that users always run the latest version) or while the application is running (so that the user can use the new version the next time he runs the program). You can also configure certain updates to be compulsory, which is nice if you need to distribute an urgent hot fix and don’t want to give the user the chance to not accept the update. You can also do the updating in code, which means you can let the application decide when an update should take place.
ClickOnce can also install the .NET Framework on PC:s that do not already have it installed, through a small bootstrapper. This should greatly simplify deployment on unmanaged machines. I guess most mid-size organizations still tend to not manage their machines through SMS or Tivoli, so this will be a great help both for deploying applications in corporate environments and on machines running in a small organization or in someone's home. In addition to the Framework you can also configure it to check for a bunch of other prerequisites and to also install other MSI packages that is needed by the application. SQL Server Express is now so easy to install and configure (you can even xcopy-deploy databases) that it can be deployed as a prerequisite for your ClickOnce application. Severely cool, and I think we are going to see a lot of stuff utilizing this technology in the next year.
One negative thing is that ClickOnce can only install applications per user, meaning it is difficult to use it to install applications that will be used by several users on the same machine.
Compared to No-Touch-deployment, which was pushed quite hard as the way to distribute .NET apps over the web until now, it is quite safe to say that ClickOnce offers a complete replacement since it can work with a much wider range of applications and is much better. There are still situations where you want to use MSI:s, and conceivably you can also consider the two technologies to be complimentary. You could distribute an application on a CD as an MSI and then have it update itself using ClickOnce. The Application Updater application block is not necessarily replaced by ClickOnce either, since the Application Updater can be tweaked more, giving you a wider range of control over the update functionality. Furthermore, the Application Updater uses BITS for background transfer, which is kinder to your network connection.
I remember that MS demoed click once pull installation at the previous incarnation of .NET
Posted by: Robin Laurén | Wednesday, June 29, 2005 at 11:44
I think what you are referring to is No-Touch Deployment, which is a mechanism through which you can run an executable from a website, and .NET will download the necessary assemblies and files that the executable requires.
Click Once is about doing a "proper" installation, and also offers mechanisms for making sure the application remains up-to-date.
Posted by: Nicke Andersson | Wednesday, June 29, 2005 at 13:11