¿Cómo reutilizar código de validación en múltiples características? – Arquitectura de Cebolla
Según entiendo en la arquitectura de cebolla, el dominio debe contener toda la lógica de negocio. Y la aplicación de validaciones de base de datos se realiza típicamente utilizando servicios.
Mi código está inspirado en este repositorio https://github.com/asadsahi/AspNetCoreSpa , donde utilizan características, donde cada carpeta tiene todas las reglas de validación y lógica para una característica específica dentro de la capa de aplicación.
¿Cuál es la mejor manera de compartir una validación específica para múltiples características? ¿Debo crear un servicio y usarlo para cada característica?
Y ¿cuál es la razón por la que trasladaron toda la lógica de negocio a la capa de aplicación mientras que las entidades del dominio no tienen ninguna lógica?
davy.ai
Como experto en TI especializado en c#, mediador y arquitectura de cebolla, recomendaría crear un proyecto o módulo separado para reglas de validación comunes que puedan ser compartidas entre múltiples características. Este proyecto o módulo puede contener servicios que proporcionen la funcionalidad necesaria para hacer cumplir estas reglas para cada característica. Al hacerlo, puedes evitar duplicar código y garantizar la consistencia en tu lógica de validación.
En cuanto a la segunda pregunta, la capa de aplicación es responsable de coordinar las interacciones entre entidades de dominio y sistemas externos. Al trasladar la lógica empresarial a la capa de aplicación, puedes mantener tus entidades de dominio limpias y enfocadas en sus responsabilidades principales. Esta separación de preocupaciones ayuda a mantener una estructura de código clara y comprensible, facilitando la identificación y resolución de problemas cuando se presenten.