I've raised the idea previously that design inheritence needs to be improved to ensure fidelity, but I'd like to articulate it more clearly. There are too many ways to break design inheritence. From accidentally (and commonly, mind you) ending up with 'prevent inheritence' ticks here and there, to simply needing to manually run designer in DEV after changes to high-up inherited design elements.
At the most simple level, it works (ie well designed, simple and well deployed template). However ultimately, the actual inheritence depends often on a series of conscientious (and sometimes not), decisions, especially in complex environments. In the development environment, changes to 'commons' must be pulled out using the Client or running designer constantly. Did someone call the Inquisition?
SINGLE COPY TEMPLATES work in a one-to-one relationship. Individual design element inheritence breaks this model.
I'd like to see a 'commons' database type which only allows shared design elements (eg script libraries). This design type would allow PURELY referential (pointer) references to it's design elements from other databases. That way a common set of classes, for example, can be maintained centrally and all referencing applications will reliably use the same object code (script_O).
Result: If a commons script library is changed, a recompilation / pre-compile error report occurs in the UI showing all affected designs on the whole server and respective errors. This Idea really points to a deficiency in the designer client to recognise relationships. It does so almost completely.
Such a scheme raises the question ofcourse, what if a 'commons' database is deleted? Well be a little clever and create full copies of affected commons elements in referencing databases.
Ambitious?, yes, but are we not Lotus? These suggestions are really only speculation as to how a decent Lotus engineer might solve the problem. But a problem it is.