I agree with your mantra on PUBLICs.
I TOTALLY agree with FormSets. I feel almost as strongly about FORMSETS as I do about the ability to add properties at runtime in VFP 6...neither should ever have been introduced, because they give newbies the chance to go down a dark road...
You're right on the REFRESH(). Also, avoid too much code in the INIT().
I'll get many responses on this, but in the new millenium anyone who doesn't use some form of prefixing should be
I disagree with SET FILTER. While it should be used sparingly, it can be handy (if it's handled correctly).
On the SETs, this should be handled by a form class. I did it once three years ago and haven't had to worry about it since.
Good point on the parameterized views...
On the primary keys, this rule goes back to Grace Hopper (haven't used THAT name in awhile!)
Same on code repitition...this has nothing to do with VFP...just overall common sense.
Amen on consistency.
Happy New Year!