Guia practica
Errores tipicos del sistema modular y como evitarlos
Esta pagina resume los problemas que mas rompen un CRM modular: permisos incoherentes, menus mal filtrados, seeds usados como migracion, duplicidad de maestros y hooks donde no toca.
1. Permisos inconsistentes
Si una clave cambia entre seed, controller, menu y rol, el sistema se vuelve impredecible.
Mal
Seed: ENTIDADES.Empresas.Ver Controller: ENTIDADES_Empresas_Ver Menu: ENTIDADES.Ver
Bien
Seed: ENTIDADES.Empresas.Ver Controller: ENTIDADES.Empresas.Ver Menu: ENTIDADES.Empresas.Ver
2. Menu mal filtrado
- No mostrar enlaces solo porque existe la ruta.
- Filtrar por permiso real.
- No enseƱar modulos internos en menus de empresa.
3. Duplicar maestros
Uno de los errores mas caros es repetir el mismo maestro en varios modulos.
ENTIDADES guarda la ficha base. PROVEEDORES, COMPRAS y otros modulos deben enlazar, no copiar.
4. Seed usado como migracion permanente
- El seed puede ayudar como compatibilidad temporal.
- No debe ser el mecanismo principal para versionar estructura.
- Para columnas nuevas y cambios serios, usa migraciones EF.
5. Hooks usados para logica de negocio
Mal
- Guardar datos complejos directamente desde el hook
- Meter reglas pesadas en la vista host
Bien
- Hook para exponer tab o accion
- Servicio del modulo para la logica real
- Controller del modulo para endpoints del tab
6. DbContext demasiado grande
Cuando toda la configuracion EF va dentro del mismo DbContext, el modulo se vuelve dificil de mantener.
- Usa
IEntityTypeConfiguration<T>por entidad. - Aplica configuraciones desde ensamblado.
7. Dependencias ocultas
Si un modulo necesita otro, debe declararlo en requiredModules y reflejarlo en el modelo.
8. Resumen
- Misma clave de permiso en todas partes - Menu filtrado por permiso real - Maestro comun sin duplicidades - Migraciones para esquema, seed para datos base - Hook para extender, servicio para gobernar - Dependencias declaradas de forma explicita