Checklist tecnico

Como montar un modulo nuevo bien

La clave es que el modulo sea dueno de su logica, sus tablas, su DbContext, sus migraciones y sus servicios.

Pasos

  1. Crear carpeta de modulo y entidades.
  2. Crear DbContext del modulo.
  3. Declarar DbContextType en ModuleDescriptor.
  4. Registrar servicios en ModuleInitializer.
  5. Crear migracion inicial del modulo.
  6. Crear seed solo para modulo, permisos, menu y datos base.
  7. Si necesita integrarse en otra pantalla, crear hooks.

Patron recomendado de codigo

Modules/MIMODULO
  Controllers/
  Data/
    Configurations/
      MiEntidadConfiguration.cs
    Migrations/
    MIMODULODbContext.cs
  Entities/
    MiEntidad.cs
  Hooks/
  Seed/
  Services/
  Views/
  ModuleDescriptor.cs
  ModuleInitializer.cs

La entidad debe ser simple. La configuracion EF debe ir separada en Configurations. El DbContext debe aplicar ApplyConfigurationsFromAssembly.

Estructura recomendada

public class MiEntidadConfiguration : IEntityTypeConfiguration<MiEntidad>
{
    public void Configure(EntityTypeBuilder<MiEntidad> builder)
    {
        builder.ToTable("MIMODULO_MiEntidad");
        builder.HasKey(x => x.Id);
        builder.Property(x => x.Nombre).HasMaxLength(150).IsRequired();
    }
}
Resultado esperado: si el modulo se carga por primera vez, debe poder registrar servicios, aplicar su esquema y sembrar sus datos base sin SQL manual disperso.