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