After I successfully pre-compiled and published my site, I was faced with the inevitable problem of doing minor updates/corrections. The general consensus seems to edit the original file, pre-compile the site again, then publish the whole site again. Well I seem to have found a way that eliminates the need to publish the whole site again. Here's what I do:
I edit the original file or files, then I click BUILD>PUBLISH WEB SITE, so the site is pre-compiled again. In fact it would be ideal to be able to pre-compile just the edited files again, but that doesn't seem possible, at least not with VS2008. The only option I have checked in the PUBLISH WEB SITE dialog is "Use Fixed Naming and Single Page Assemblies". I get prompted after a while that the previous (local) pre-compiled site will be deleted (and replaced by the current version); I click OK of course. Then I open my local pre-compiled site, which now holds the new version. Now I do WEBSITE>COPY WEB SITE, which gets me the window with my local site on the left and the remote on the right (after I establish the ftp connection).
From here on, one would normally transfer all the files from local to remote again (overwriting remote) but what I do is look in local for the edited aspx page(s), which I then transfer to remote (overwriting). Then I go to the bin folder, which has 2 additional files for each aspx file: one ending in .dll and one ending in .compiled. So I also transfer the corresponding .dll and .compiled files for each aspx to the remote bin folder, and that's it.
I think one can even skip transferring the aspx (transferring only the .dll and .compiled), but I transfer it just the same. If u edit a master page or an ascx then u will only have the the .dll and .compiled to transfer. If u edit a biz object (app_code) then u will have to transfer App_Code.dll and App_Code.compiled (bin folder). Other stuff like images, zip files and so on can be directly updated of course, since they do not get pre-compiled at all.
I also changed the connectionstring in my original site's webconfig to point to to the remote db (so no more App_Data access). This way I can still locally test my site, and see my db in server explorer. Changes made to tables, sprocs, triggers, etc. in server explorer are now updated directly on the remote db (no need to start up SQL Management Studio).
The above has been working fine for me, till now. I don't know if there are any gotchas or caveats to go with it, but up to now I have been able to save some time by not re-publishing everything again.
Maybe this might come in handy for some of u guys too.
Premy