es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Sistema multitenant con diferentes requisitos de clientes en asp.net core.

Actualmente estoy trabajando en un sistema multitenant y ya he implementado el flujo híbrido que permite tanto una base de datos única por cliente como una base de datos compartida basada en solicitudes.

Sin embargo, ciertos clientes desean algunas personalizaciones porque tienen procesos ligeramente diferentes, pero solo tengo un flujo de usuario único en todo el sistema.

¿Cómo puedo implementar esta personalización para un cliente sin afectar a otros clientes en el sistema?

Por favor, vea mi arquitectura actual.

Imagen de la arquitectura multitenant

Editar: Las personalizaciones están principalmente relacionadas con el flujo del usuario, por ejemplo, en un sistema de nómina, el Cliente A quiere enviar la nómina al director general para su aprobación, mientras que el Cliente B quiere que se apruebe por el contador antes del director general.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en c#, asp.net-core, .net-core y sistemas de múltiples inquilinos, existen varias formas de implementar personalizaciones para un cliente sin afectar a otros clientes en el sistema. Una posible solución es utilizar el concepto de flags o interruptores de características.

    Los flags o interruptores de características son una técnica común utilizada en el desarrollo de software para habilitar o deshabilitar ciertas características basadas en condiciones como roles de usuario, preferencias de usuario o configuraciones en tiempo de ejecución. En su caso, puede implementar flags de características de forma individualizada para cada cliente y habilitar o deshabilitar determinadas características según los requisitos de personalización.

    Por ejemplo, si el Cliente A desea enviar la nómina al Director General para su aprobación mientras que el Cliente B desea que lo apruebe el contador antes del Director General, puede crear un flag de característica llamado “FlujoDeAprobacionDeNominas” y establecer el valor en “Director General” o “Contador” según la preferencia del cliente. Luego, en su código, puede verificar el valor del flag de característica y personalizar el recorrido del usuario en consecuencia.

    Para implementar flags de características, puede utilizar un sistema de gestión de configuración como Azure App Configuration o AWS Systems Manager Parameter Store. Estos sistemas le permiten almacenar ajustes de configuración fuera del código de su aplicación y actualizarlos de forma dinámica sin necesidad de implementar código. Puede crear variables de entorno o archivos que especifiquen los flags de características para cada cliente y luego leerlos en tiempo de ejecución en su código.

    Con este enfoque, puede proporcionar personalizaciones para cada cliente sin afectar a los demás en el sistema, y puede activar o desactivar fácilmente características según los comentarios de los clientes o los requisitos cambiantes. También le permite mantener una única base de código y evitar la complejidad de ramificar o bifurcar el código para cada cliente.

Comments are closed.