kennedjw wrote:John, do you think I would see a performance gain over the network by storing the interface files locally?
Yes you will. We used to do this a lot in the FileMaker 6 days (it was also a great way to prevent record locking). However, there are a few other things to consider. For one, FileMaker does a good job of caching interface elements (.jpegs, etc.) so I think most of your speed gain will be on the first screen loads- not to be underestimated, but I think this can also be dealt with by managing your user's expectations: providing a status bar during launch for example. In general this client-side design will not deal with the real speed problems user will have-- fetching and sorting data on the server: designing with that in mind and making sure you don't go to the server more often than you need to will result in more long term speed benefits.
At the same time, you give up a lot when you move your interface and logic files off the server. The whole we-can-easily-make-changes-because-this-isn't-Oracle thing pretty much goes out the window as almost all changes will require distributing new front end files. (Check out
SyncDek for an cool solution to this problem.) From a security standpoint you are also granting people physical access to the file- making it much easier to crack.
So, as a compromise, I might consider a local file that had your interface graphics, but not your interface per se. You can even extend this to include anything that is large and static- like zip code or some geocoding files, for instance. Use an auto-enter account on this local file--one that does not replicate an account or password in the served solution so that it is the served solution that does the actual authentication.
Do you find by using a multi-file approach that it takes significantly more development time?
No. I don't. While there is redundancy in the multi-file approach, we can copy and paste so many objects from file to file (scripts, script steps, tables, etc.) that it isn't a problem. As I mentioned earlier, however, there is some extra effort needed in the scripts required to write your access privileges / re-logins across multiple files and the difficulty of using GTRR to move form one interface file to another.