Tenemos varios clientes, cuyos sistemas comparten algunas funcionalidades, pero también tienen un alto grado de diversidad. El número de clientes está creciendo, ¡siempre es algo saludable! - y la diversidad entre sus negocios también está aumentando.
En la actualidad, hay un único sitio web ASP.Net (formularios web) (en oposición al proyecto web), que tiene subcarpetas para cada inquilino, con las páginas no estándar de ese inquilino. Hay un proyecto modelo separado, que se ocupa del acceso a la base de datos y la lógica empresarial.
Lo cual es preferible, y lo más importante, por qué, entre tener (a) 1 base de datos por cliente, con solo las características asociadas con ese cliente; o (b) una única base de datos compartida por todos los clientes, donde solo un subconjunto de tablas es utilizado por un solo cliente.
Las principales preocupaciones dentro del negocio han terminado:
- mantenimiento de múltiples activos: copias de seguridad, control de versiones y similares
- promoviendo la reutilización tanto como sea posible
¿Cómo se aseguraría de abordar estas preocupaciones, qué solución es preferible y por qué? (También he estado compilando respuestas a preguntas similares)