Thanks Rik, You answered my question perfectly. This was my guess and found the Data.fs. This makes me wonder though how the implementation of the three tier separation, ie data/logic/presentation is achieved. Do you have any idea? What is the advantage of putting everything in a db? Apparently if the db down, we will lose everything and recovering from a db is pain as you may already know. Even though it is great performance improvement to load the db in RAM at run time, do you know of an other benefits? Philip Rik Hoekstra wrote:
DTML and Zope (code) objects are kept in the object database. It is in <zopehome>/var/data.fs on your filesystem. If you create a new object, Zope creates a new instance of a class that is in Zope. They are defined in Products. The products are visible in your zope site at http://your.site/Control_Panel/Products Zope products/classes may be defined in Python modules. In that case the modules live in the <zopehome>/lib/python/Products directory. They may also be defined in ZClasses, which are defined completely through the web. They are not visible on the filesystem, only in Zope itself.
I don't know whether that was your question, but DTML is interpreted at runtime by the Zope system. It takes the dtml bits from your template and returns the filled in template.
hth
Rik