Geeks With Blogs

WinToolZone - Spelunking Microsoft Technologies
I work as a developer on the Common Language Runtime (CLR) team, specifically in the areas of exception handling and CLR hosting.

The information in this weblog is provided "AS IS" with no warranties, and confers no rights. This weblog does not represent the thoughts, intentions, plans or strategies of my employer. It is solely my opinion. Inappropriate comments will be deleted at the authors discretion. All code samples are provided "AS IS" without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

Inside and Out... An attempt to understand technology better...
I had been waiting for ClickOnce to finally work in the latest Community TechnPreview of VS 2005 and it does [May 2004 Edition]!

For starters, this is the upcoming technology that will be based out of the next version of the CLR [implying will require .NET Framework 2.0] and will ease the deployment strategy for Smart Client application. It shares the philosophy of no-touch deployment, but goes beyond it and will be extended even more in the Longhorn time frame. The idea is really simple:

1) Build your application and publish it to the deployment server, which could be a web server, file server, FTP server, and so on. Two manifest files are created: application manifest and deployment manifest.
2) Point the client system to the deployment manifest file [.deploy]. Client system must have .NET Framework 2.0.
3) Sandbox will be created by the CLR at the client where the application execution or installation will take place. Dependency information for the application, strong name and other details are fetched from the application manifest by the CLR.
4) Incase the application requires more execution privileges than are made available [by CAS] to the security sandbox created [also influenced by the zone of download] in Step (3) above, the user is prompted. Applications for ClickOnce scenarios are typically which dont require to do something serious [like manipulating registry or working with security of the system, or installing assemblies in the GAC]. They are simply expected to show good UIs, but talk across networks to core systems [where the middle tier and data tier lies] and get the work done.

This is definitely not a replacement for MSI!

Now, the developer can publish two different kinds of ClickOnce applications:

1) Launchable applications - these are the ones that won't be installed on your system and will be executed from the deployment server to which they have been published. You need to be connected to the deloyment server for obvious reasons.
2) Installed applications - these are the ones that will be installed the first time deployment manifest is accessed. Entries will be made in the Programs menu and Add-Remove menu to launch and uninstall the application respectively. These can be executed even when the user disconnects from the deployment server and thus, are also termed as Offline Applications.

And all this can be specified during the Publish Wizard interface, or even in the Project Configuration Settings. Just a matter of clicks and you are on your way :-)

And not just that, ClickOnce applications are intelligent enough to look for their [or their dependencies's] updated versions, fetch them, and update themselves. And again, the periodicity of this update can be configured via the Project Configuration Settings. And it doesn't stop there. ClickOnce exposes a whole new set of APIs that the applications can invoke to update themselves as required. More on this, but tomorrow.

Now, I would prefer to checkin at my hotel [am in Delhi btw] and maybe go out and catch up with few friends :)
Posted on Thursday, June 17, 2004 4:51 PM .NET Framework | Back to top

Comments on this post: ClickOnce - Install and Execute Anywhere [with .NET 2.0 or later]

No comments posted yet.
Your comment:
 (will show your gravatar)

Copyright © Gaurav Khanna | Powered by: