I want to thank Joshua Cyr of Savvy Software for his great presentation last night on strategies for building, deploying, and upgrading software-- as someone with a few projects myself, I benefited from his thoughts enormously. If you want to view his presentation slides, just go to Todd Sharp's SlideSix site.
A few thoughts stood out for me during the presentation...
- Provide a configuration file which contains all of the necessary settings that users would need to change to personalize or install the application.
- Try to organize your files well, using separate folders for separate functions (e.g., application code, templates, uploaded content, etc.). Try to keep the files that users would modify or contribute in very specific folders.
- Joshua explained that he encrypts certain files not so much to protect source code or intellectual properties, but to control where users make their customizations.
- Then when it comes time to make an upgrade available, you can overwrite the contents of certain folders and leave the user-modified folders alone.
- Finally, Joshua discussed the great technique of using a well-designed, browser-based form for your installs versus the usual technique of having the developer read an install file and then make manual text changes to the config file or Application.cfc (I've used the former, but am still guilty of the latter in most projects).
After the preso, a bunch of us headed across the street to The Grand Canal, where, as is my habit with speakers, we treated Joshua to drinks. Thanks again, Joshua!

Comments (4)
September 17, 2008
10:09AM | #
Thanks Tom, it was a pleasure. Thanks for the drinks too!
September 17, 2008
1:06PM | #
You can't see me in the photo, but I'm just off camera on the left there and about 25 miles south...
So sorry I couldn't make this one!
September 17, 2008
5:04PM | #
Hmmm, free drinks? Maybe I should come up and present again sometime?! :-)
September 18, 2008
8:13AM | #
Peter, I missed the event the last time you were up-- otherwise, I would have treated you! I'll catch you the next time you're up, so just let me know.