Well, I think we're in agreement on principle but differ slightly in 
implementation, but in any case we've
wandered away from the op's (Mark's) questions. I wonder if he's still reading 
the thread.

Of course, a single screen is always going to be simpler to code than a tabbed 
or multi screen interface, but
there's no theoretical mandate for either style. The main point in separating 
the ui from the business and
data layers is to afford the end user the ability and right to design the ui.

The next situation he addresses is one in which the same and linked data 
appears & must be refreshed &
editable on more than one screen, so in order for changes to be visible, a 
commit must be issued leaving him
without the option of a rollback. As far as I can see this is just a messy, ui 
issue. If the end users have to
have it, then we've got to code it. A temporary single rw cursor would probably 
work here with the various
component tables, buffered or not, updated en mass at some later point.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ted Roche
Sent: Sunday, July 01, 2007 9:18 PM
To: [email protected]
Subject: Re: Object engineering #2

On 6/30/07, Lew <[EMAIL PROTECTED]> wrote:
> Depends on what you're taking.
> Ted's right about buffering and rollbacks, but I think you were 
> referring to a different concept. Namely that the logic governing 
> which tables to update and when doesn't belong in the user interface, 
> it belongs in a business layer with actual storage issues governed by 
> the data layer. I don't feel that this is an object engineering issue 
> so much as a question of how strictly we layer our code and how much of the 
> labor saving features .. in this
case the ControlSource property... in VFP we're willing to give up to achieve 
the perfectly tiered and
engineered app.
> -Lew
>

Interesting "view" of the situation, excusing the pun.

I see the buffered data as an interface between the user interface and the 
business objects. The UI can mess
with the buffered data all it wants, but it is only when the UI passes a 
message to the business objects and
the business objects do whatever validation or processes they might and then 
invoke the data methods to save
the data. The business objects may choose to revert buffered data or ignore 
changes that don't go to the back
end. Then, they pass the names of the cursor they think should be updated to 
the data layer, which can use all
the great VFP data functions like GetNextModified() and GetFldState() to figure 
out what data needs updating,
and then send the SQl to the backend, using SPT or views or CursorAdaptors.

How hard is that? Nothing that ten or twelve man-years of effort can't refine ;)

--
Ted Roche
Ted Roche & Associates, LLC
http://www.tedroche.com


[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: http://leafe.com/archives/byMID/profox/[EMAIL PROTECTED]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to