A couple months ago I wrote a post about how I didnt really like ClickOnce and that I was going to use ClickThrough. Well, I was wrong. ClickOnce is pretty awesome once you get into it. I also couldn't find much information about ClickThrough and it looks like there isn't much active development going on there.

I thought I needed to use a .msi file to get the install functionality I needed, but it turns out it was all built into ClickOnce... the only issue is that the ClickOnce documentation sucks pretty bad. Because the documentationm sucks I picked up Smart Client Deployment with ClickOnce by Brian Noyes and this book kicks ass, it answered all my questions and helped me figure out the best way to install and update my application.
I kept running into issues I thought would break ClickOnce, but it turns out they did think through alot of stuff. One part that really impressed me is the data migration scenario. Let's say my user is off-line for a week, then they log back in and there is an update. If the update includes updates to the local database then it would overwrite all of their data from the last week... but what ClickOnce does is make a copy of the old data file and put it in a .pre folder in your deployment. This way I can write code that will check to see if the .pre folder is there and if so migrate any of their offline changes.
-James
