Good ZCA Overview
one thing missing that we use heavily is ZCML, an xml format for registering the adapters and utilities
pypi doc is also very good. simple concrete examples
Here is the Zope 2 Python Products doc (old school but still useful)
ExtJS API Doc
Ext Direct Protocol Spec
Example ZenDMD usage of ICatalogTool (and indirectly global_catalog)
>>> from Products.Zuul.interfaces import ICatalogTool
>>> catalog = ICatalogTool(dmd)
>>> result = catalog.search(("Products.ZenModel.Device.Device",))
>>> brains = list(result.results)
>>> brains[0].id
'alpha.zenoss.loc'
>>> brains[0].getObject().os
<OperatingSystem at /zport/dmd/Devices/Discovered/devices/alpha.zenoss.loc/os>
Example ZenDMD usage of facade and info object
>>> from Products import Zuul
>>> facade = Zuul.getFacade('process')
>>> info = facade.getInfo('/zport/dmd/Processes')
>>> info.id
'Processes'
Use ZenDMD to list out adapters loaded from ZCML:
>>> from zope.component.globalregistry import base
>>> for a in base.registeredAdapters():
>>> i = str(a.info)
>>> if i.startswith('File "/usr/local/zenoss/Products'):
>>> print i
File "/usr/local/zenoss/Products/ZenUI3/browser/search/configure.zcml", line 21.4-24.10
<browser:resourceDirectory
name="search"
directory="resources"
/>
File "/usr/local/zenoss/Products/Zuul/infos/graphpoint.zcml", line 66.2-68.57
<adapter factory=".graphpoint.HruleGraphPointInfo"
for="Products.ZenModel.HruleGraphPoint.HruleGraphPoint"
provides="..interfaces.IHruleGraphPointInfo"/>
...