Originated from another post where we have started to discuss how to best leverage the models capabilities. The main question is, how do you structure your model?
Is one model = one solution or product?
How do you manage the dependencies between models?
How do you make sure the developers build the customisations always in the right model?
My personal understanding is that models are "containers" or deployment artifacts for solution. They should not be treated as AOT projects or replacement for XPOs.
Another question is, do you ensure that you test the models (or solutions) which you plan to distribute/reuse in other projects on its own, in an isolated environment?
One of my principles is that you should avoid developing more than one model within one project. Let's say you are and end user with your own development team: You can receive models from partners (one of them could be an industry solution, developed and tested separately; and another your individual customer solution) and install them into your test/build environment. Plus additionally you have an in-house developer team for reports, security and maybe forms. This is a separate model. In this scenario it is ensured that all the model are developed and tested on its own. There are no bi-directional dependencies (only in one way).
The original text Jonathan Halland wrote:
"There are some inter-dependencies between the models and these either just need to be considered or may need to be tested as you suggest.
E.G. Our Securities model is mostly a standalone model and can be frequently deployed on its own as we add and adjust roles.
It does contain some references to menu-items in the Customisations model. This just means that we need to be aware if a new menu-item has been added to the customisations model and the securities model has been adjusted to handle this menuitem we will need to deploy both models. However if only the securities model has changed then we can deploy it on its own. Also if we just change some code in the customisations model we can deploy it without having to redeploy everything else.
It does have a certain management effort associated with it, however so does deploying code via other means such as XPOs. One can't deploy a role via XPO if it is dependant on something that is not in the XPO.
I'd be very interested to get some of the other guys in this conversation perspective on this."
What are you thoughts on that? Do you have any BP how to handle the development across several models?
Waldemar