[Zope] Basic, conceptual help / advice?

zoper@disturbance.dhs.org zoper@disturbance.dhs.org
Wed, 19 Mar 2003 10:06:20 -0800 (PST)


Background: I have been a Zope user and implementor for a couple of years
now, and have created a few non-trivial "applications" using DTML and
_very_ basic python scripting. I have recently expanded my Python
knowledge somewhat and have an understanding of external methods, etc.
Before Zope, my background has been solidly in the LAMP model.

Now, I am on the task of writing a much larger application, and I selected
Zope + Postgres rather than Apache+SQL+PHP.

Here's where I need some conceptual advice, and this highlights where I am
weakest: I really want to build this application in a more modular, OO way
than I am used to working. I am still using SQL to store most of the
information that is custom and specific to users. I want to structure this
application in a way that I have, say, a user object / class, with methods
on that object to handle all of the data operations, i.e. User.getinfo,
User.updateinfo, User.get_some_more_specific_info, User.create,
User.destroy - I'm sure you get the idea.

However, I am NOT sure of which of the Zope paradigms to go with in this
situation. It doesn't seem like ZClass is the way to go (if I understand
things right), because I am not going to be creating instances of users in
the ZODB. (Unneeded detail: I am using ExUserFolder so that auth
information etc. is in my pgsql database).

Right now, I am implementing what needs to be a prototype in DTML, but
it's already getting to be spaghetti, with UI and logic code all
intermingled. I am leaning toward creating big external methods for the
encapsulation that I need, but it just *seems like I am missing

I have read everything I can get my hands on, and just feel like I am
missing some top-level conceptual business. The docs all seem to be *very*
high level, or the opposite - deeply technical and syntax-specific.

Any comments, or pointers to the kind of info I am looking for?

Thanks for any and all constructive advice,