Michael, I still feel like a dummy, so there are probably much better answers coming your way... but here's my take on things... I would expect that the organization of a ZOPESite conforms to what you are suggesting (strictness, etc), where acquisition plays a role in supplying parameters that control how the object services respond to the requests. Sure, some inheritance "across the tree" seems useful, and I think (if I understand what I've heard on this list), there are people thinking about how to do this. As I understand it, you're right... you need to implement things branch by branch, where maybe only a few things are different (parameterized templates would solve this maybe? smarter ones than I are working it). ANYWAY... Don't forget that one of the goals (IMO anyway) of ZOPE is to provide a clean separation between the presentation and the application layers of an application. You can have an application that is completely unaware of how its services are being exposed... This is a real cool concept and requires rethinking of how you build systems. (I haven't succeeded yet, but have been preaching this approach for several years). I am really looking forward to getting into the documents that Amos and crew have been working so hard on (I see that there is an ANNOUNCEMENT of another new Guide just ahead in my e-mail!) Anyway, if you read the DTML reference, etc, you'll see that two things need to be strived for: - Keep HTML out of the application classes - Keep application logic out of the DTML... let iterators, and other object accessors ask the exposed application object services for stuff. This is going to be (IMO) revolutionary in that it is going to facilitate demonstrating the difference between CORBA objects (durable services) and the transient objects provided by "object languages" such as Java, Python, Smalltalk, or even C++. Michael Bernstein wrote:
I've been examining Zope with quite a bit of interest for a while now, and I have a question about the basic architecture:
The object hierarchy seems to be 'exact', that is, strictly exclusive. No object can appear in more than one branch of the tree. However, In many cases, user oriented design requires several alternative navigation hierarchies, which would require objects to inherit from more than one branch.
An example would be an event calendar, where events can be organized chronologicaly ( Years>Months>Days) but also according to an event category heirarchy (All events>entertainment>music>concerts). These heirarchies only intersect at the leaf node of an individual event.
Most product catalogs can be profitably organized using multiple heirarchies as well.
So how would you do this in Zope? you could of course represent the alternative heirarchies by branching off the bottom of the primary, or as folder properties, but that doesn't seem as elegant or maintainable. perhaps the answer is some sort of 'pseudo heirarchy' object that could be placed at or near the top of the object tree.
What do you all think?
Michael Bernstein.
-- -- Cheers, --ldl ----------------------------------------------------------------------------- LD Landis ldl@HealthPartners.Com N0YRQ Voice 612/883-5511 Fax 612/883-6363 HealthPartners, 8100 34th Avenue So, PO Box 1309, Minneapolis, MN 55440-1309 Shape your life not from your memories, but from your hopes. (Borrowed) Still programming for the day-job... haven't yet gotten that Microsoft PR job ----------------------------------------------------------------------------- "PowerPoint -- the production platform of choice of the 'Big 6'." -me "The harder truth is that just because a company is spending a large amount on IT doesn't necessarily mean it's spending that money well." -- InformationWeek, Dec 8 1997, Pg 66 in "Old Countries, New Technologies" "But it sure is easier just to sit back and bitch than to actually try to make yourself heard." -- Jim Edwards-Hewitt meanwhile... "I'm not one of those who think Bill Gates is the devil. I simply suspect that if Microsoft ever met up with the devil, it wouldn't need an interpreter." -- Nicholas Petreley, InfoWorld editor. Remember: The enthusiasm for having chosen "NT" is at its maximum at t=-1. -----------------------------------------------------------------------------