I released the first beta of my Smart Client app on the HQ network yesterday remoting in over VPN. My system admin went to the ClickOnce deployment page, clicked on the INSTALL button to install the .NET Framework 2.0 on his machine. This process was on the slow side, even with the framework available on the local app ClickOnce website, but we are talking over 90MBs of framework, so that's expected. It prompted for a reboot, which he did, and on startup it automatically proceeded to install my Smart Client app. Nice.
ClickOnce created a shortcut to the app and program folders in the Start Menu. He fired-up the app, it hit the web service, grabbed some data to create the clientside dataset, and dang if it didn't display in all its glory, functioning exactly as it does here. I'll have to say that this was a singularly satisfying moment for me as a developer. Oh, I experience pleasure in my work every day, but moments of tangible satisfaction in having accomplished something, no, not very often. Listening to my system admin at HQ describe the first version of my first Smart Client app as it ran on his machine was a real feeling of accomplishment. Or maybe the feeling was the release of my anxieties wondering if it was really going to work or not.
So now that it does and the app is running on select users' desktops, the real work begins. But first a few follow-up ClickOnce observations.
1) ClickOnce does not create a standard application folder under "Application Data" by company/app/version as an .MSI does. Instead it creates a new /apps subdirectory and wierd-ass directories under it. I was looking for the dataset and other files I knew the app created and stored clientside. I found them here.
C:\Documents and Settings\dburke\Local Settings\
Apps\Data\91A59NVB.N3E\OC1PJMO5.GHJ\
wins..tion_401287f9b5ed6594_0001.0000_249b47c6ed474c15\Data
Hey, the app works, so I'll just pass along the info for now until I get a clue.
2) I don't think the ClickOnce Security Settings as part of the publish process do anything. Believe me, I've published over 30 times in the span of a few hours, with various settings, and I'm pretty sure the Security tab in VS.NET have no effect on the installed application. Of course, you have to sign all code via Trusted Publisher Certificate which I described previously, so its not like the app isn't secure, I just don't think these settings do anything.
3) Every time you publish the app, the version is automatically incremented. 1.0.0.XXX. You can set this manually, as well. The Published Version is independent of the Application Version set in AssemblyInfo. I have an "ABOUT" form which appears and currently displays the Application Version. I want to figure out how to display the Published Version while the app is in development, and will blog on it when I figure it out.