ClickThrough - simple MSI creation plus auto-update over RSS.
I have wanted to talk about ClickThrough for many months. Finally, enough of the prototype came together this weekend at Seattle Mind Camp to be released (over a very slow internet connection) to SourceForge. I showed it to a few people at the event and received a lot of positive feedback and interest in the tool's future.
Disclaimer: ClickThrough is in what I would call just-post-prototype phase. Enough of the project works such that you can see what is supposed to happen but the code doesn't always make it there. There are lots of bugs and quirks to fix plus plenty of features yet to implement. ClickThrough IS NOT yet ready for use in production software, but we're working on it. Want to help out? Join the wix-devs mailing list.
So what is ClickThrough?
ClickThrough (download here) is the latest addition to the WiX toolset designed to ease the creation of installation packages for distribution over the Internet. ClickThrough consists of three parts. First, there is a simple graphical user interface to ease the creation of MSI packages for isolated applications using the WiX toolset. Second, there is a setup bootstrap executable to be a single entry point for the installation experience. Third, there is an update executable that uses RSS to keep an application up to date.
Did you say ClickThrough is a GUI for WiX?
ClickThrough is not an all purpose GUI for WiX the way that WixEdit and WixTool are designed to be. Instead, ClickThrough focuses on the installation needs for a single type of application. This initial release focuses on "isolated applications" or applications that don't interact with other applications on the operating system much (i.e. they are trivial to install <smile/>). By focusing on a particular type of applications the GUI can be far simpler than your typical "kitchen-sink" installation packaging user interface.
For example, to create a new package using ClickThrough you:
1. Copy all of your application's files into your directory structure of choice.
2. Launch ClickThrough (Start -> Programs -> Windows Installer XML Toolset -> ClickThrough)
3. Click "Browse..."
4. Navigate to the directory containing your application and click OK.
5. Click the "Package" tab.
6. Provide a URL for your application's "Update Feed". We'll discuss the RSS features of ClickThrough later.
7. Click "Build..." and provide a path to the bootstrap executable you want to create.
That process generates the bootstrap executable and RSS XML file that you can host on your web server (or whatever URL was provided). In the near future, you will also be able to provide ClickThrough a certificate so that the bootstrap executable can be signed.
I did not provide screenshots here because I expect the UI for ClickThrough will change rapidly as we get user input. Reid, Derek and I want to reduce the UI to a single page (right now there are two tabs) and I have a couple ideas to try in the future. Again, remember the disclaimer above about this being "just-post-prototype" code.
Who cares about the UI, did you say RSS?
Yeah, RSS was the part that really interested the few people I showed ClickThrough to at Mind Camp. ClickThrough uses RSS to describe the update history of the application. Think of the RSS feed as your application's own blog tracking all the exciting changes in its life. <smile/>
More importantly, the RSS feed is queried by the auto-update executable that ClickThrough adds to your installation package. The way the auto-update works is that when ClickThrough created the shortcut to your application's executable it pointed the shortcut at the auto-update executable and passed the path to your application as a command-line parameter. When the user clicks on the shortcut the auto-update boots, immediately launches your program (so there is nominal delay in the user experience), then goes and checks the RSS feed for updates in the feed. If there is a new item in the feed, the auto-update executable downloads the item's enclosure. The next time the user clicks on the shortcut, the auto-update executable launches the downloaded enclosure to upgrade the application.
Now, I'm sure you are thinking that there are about fifty different things in there that need to be developer and user configurable. I agree and we'll be doing so in the future. See the disclaimer near the top. <smile/>
What's next for ClickThrough and the WiX toolset?
Well, there are plenty of bugs in ClickThrough that we'll work on while waiting to see what kind of reaction people have to the whole packaging and auto-update via RSS features that ClickThrough provides. Bugs and Feature Requests for ClickThrough should be filed at SourceForge with the rest of the WiX toolset. Discussion should happen on the usual mailing lists.
After that, our priority is to drive WiX v2 toward "production quality". I also want to take some time out and just work on the WiX documentation for a while to fill in some of the blanks and maybe fill out the web site some more.
Finally, I'd like "ClickThrough" to grow into a "brand of targeted packaging tools". This blog entry has primarily discussed the "ClickThrough for Isolated Applications" but I'd like to see more tools such as "ClickThrough for Media Center Applications" or "ClickThrough for Office Plug-ins" or "ClickThrough for Web Applications" or "ClickThrough for Firefox Extensions", etc. I haven't sent the mail yet, but I'm hoping to team up with the developers working on WixEdit and WixTool to see if they are interested in collaborating on the GUIs. I'll talk more in the future about the layers beneath the ClickThrough GUI to show how different user interfaces can be layered on top.
Credits
I may write the blog entries and upload the binaries to SourceForge but the majority of the work done on ClickThrough was completed by Reid Gustin and Derek Cicerone. They should get credit for all of the good stuff that works and I'll take blame for everything that doesn't work. Also, many thanks go out to Daniel Robbins who joined us at a couple of the WiX Tuesday nights at the beginning of this year and mentioned RSS for application updates. That idea floated back to the top in the last couple months when working on the update functionality for ClickThrough and everything came together very nicely.
Anyway, this is just an introduction for a project that I think is going to be a very exciting addition to the WiX toolset. If you check ClickThrough out, please do send feedback. I know there is a lot of work that needs to be done before the tool is completely useable but getting Bugs and Feature Requests open on all the issues will help us figure out just how far away the goal really is.
Comments
- Anonymous
November 08, 2005
You rock Rob! I bow to your greatness. - Anonymous
November 08, 2005
Nice :] One question, though: How will the auto-updater work with LUA? E.g. will it just display some error message or ask for the credentials to perform the work witha dministrator rights? - Anonymous
November 09, 2005
Bjorn, neither. <smile/> These "isolated applications" are designed to install per-user. I'm still waiting for details about how to make it all work but the goal is that these apps install without prompt because they don't require administrative rights to install.
However, if administrative rights are required (for say a pre-req) then since we're just using the Windows Installer we should get the standard LUA prompt. Of course, like you, I'm still waiting for more details about Vista before knowing for sure how this works. - Anonymous
November 16, 2005
Hi Rob,
Another great post, thanks.
I've been reading some of your other posts around the design and use of MSI packages (roll on part 6) and I've got a quick question. You discuss file installation locations and, using ORCA, I can see where everything is being pushed (good job BTW). One thing though, what about the registry keys that need to be changed or added on install/uninstall ? Where are they stored generally?
I've been messing around for ages trying to find the stuff but to no avail :-( - Anonymous
November 17, 2005
The comment has been removed - Anonymous
November 22, 2005
I tried to run the ClickThrough after installing it on Win2k machine. But I cannot see the interface. - Anonymous
November 23, 2005
Bala, be sure that you have the .NET Framework v1.1 SP1. - Anonymous
June 27, 2006
The comment has been removed - Anonymous
June 28, 2006
Andrew, it is still very raw. I got pulled off into other projects. Derek also broke a lot of the ClickThrough build process with all his modifications to WiX v3. I have recently (like last two nights) been back to working on it. You will definitely see progress in the next month. - Anonymous
October 17, 2006
Hi Rob, Is there any stable release ready?(or an estimation when it will be ready?)