We are developing a sharepoint solution which wil be used/customised by each client. The clients might even cutomise the base contents types/lists (which we have provided) in different sites. The main challenge here is upgrading the content types if they have customised a list by adding columns to the list or creating a new content type based on our artefacts.
I was thinking of managing the meta data (site columns, content types, list templates and list instances) in an axternal storage (DB or a sharepoint site to have the versioning) rathaer than Xml blobs (source code in Visual Studio) and creating them using a custom tool which feeds our internal meta data definition DB instead of deploying then in a solution/feature. The tool, obviously, will include an upgrade tool which identfiies the delta changes and applies them.
I was wondering if you could share you thoughts. Is there any best practices which I can refer to?