Carsten Ziegeler skrev:
Daniel Fagerstrom wrote:
Here the IMO best and most natural solution is to have different blocks
for different implementations. Say we have two different components that
implements the XsltProcessor inteface, the Xalan and the Saxon
implementation. Then if you have a Xalan block with its own embedded
configuration and a Saxon block with its own embedded configuration. If
you want to use the Xalan implementation you deploy the Xalan block and
if you want the Saxon implementation you deply the Saxon block.
The result of this thinking is that you have typically smaller and more
focused blocks, that contain components that are used togerther.
WDYT?
I'm not sure - on the one hand you're probably right. But this will lead
to too many blocks. If you think this through, this will require that
you make for each and every component an own block just to be able to
use a different implementation.
Might be, we maybe need some mechanism so that one can override a
complete component configuration, not just its properties.
OTH, we have lots of components that wouldn't need to be components at
all or at least not be replaceable. Also some blocks are far to fat, the
core contains more than 100 components, while I would guess that most
users only use a handful components from core. In many cases having
blocks that implements a set of interfaces that works together, and
being able to change the block to another one that implements the same
interfaces, is a convenient way to switch implementation. It also keep
the application lean.
/Daniel