Hi, Paul.
>VFP 8 has CursorAdapter, but that still puts them in the UI layer - possibly not the best place for them.
A CursorAdapter doesn't have to be in the UI layer at all. It can be used as a semi-visual class as well as de DataEnvironment, but you can instantiate it in the data or middle-tier and use the underlying XML or recordset to use it as a transport method over all tiers.
I'm yet playing with this to discover the best approach from an architecture perspective but with an eye on performance, too.
See you!