Ir al contenido

Tecnología

Este documento resume las tecnologías, versiones y herramientas necesarias para desarrollar y ejecutar IZ-CentralForms en ambiente local. La información de infraestructura de servidor, IIS y producción se documenta en infraestructura.md y despliegue.md.

ÁreaTecnología / configuraciónUsoEstado
Backend.NET / ASP.NET CoreAPI REST, controllers, configuración HTTP, Swagger, Health Check, archivos estáticos y Rate Limiting.Implementado
AplicaciónC# / Services / DTOsCasos de uso, contratos e interfaces.Implementado
DominioC# EntitiesModelo base del negocio.Implementado
PersistenciaEntity Framework Core + SQL Server LocalDBORM, migraciones y base local.Implementado local
API DocsSwagger / OpenAPIPrueba y documentación interactiva de endpoints.Implementado local
SDK frontendJavaScript vanillaRender dinámico de formularios desde wwwroot/sdk.Implementado
Email localSMTP + MailpitPruebas de notificación sin envío real productivo.Implementado local
Hosting futuroIIS + .NET Hosting BundlePublicación en Windows Server.Documentado / pendiente
ElementoValor
Target Frameworknet10.0
Proyecto APIMicrosoft.NET.Sdk.Web
EF Core10.0.7
EF Core SQL Server10.0.7
EF Core Tools10.0.7
EF Core Design10.0.7
Logging Abstractions10.0.7
Swagger / OpenAPISwashbuckle.AspNetCore 6.6.2
Base local(localdb)\\MSSQLLocalDB
Base de datosCentralFormsDb
SMTP locallocalhost:1025, SSL deshabilitado
Ambiente localASPNETCORE_ENVIRONMENT=Development
URL HTTPhttp://localhost:5273
URL HTTPShttps://localhost:7122
CentralForms.Api
CentralForms.Application
CentralForms.Domain
CentralForms.Infrastructure
ProyectoTipoResponsabilidad
CentralForms.ApiASP.NET Core Web APIEndpoints, Swagger, configuración HTTP, Health Check, Rate Limiting y SDK estático.
CentralForms.ApplicationClass LibraryDTOs, interfaces y servicios de aplicación.
CentralForms.DomainClass LibraryEntidades del dominio.
CentralForms.InfrastructureClass LibraryEF Core, SQL Server, SMTP, webhooks y servicios externos.
HerramientaUso
.NET SDKCompilar y ejecutar la solución.
EF Core CLICrear y aplicar migraciones.
SQL Server LocalDB / DeveloperBase de datos local.
SSMS / Azure Data StudioConsulta y administración de base de datos.
MailpitCaptura local de correos en localhost:1025.
NavegadorSwagger y pruebas del SDK.
PowerShellScripts y comandos de soporte.
Ventana de terminal
dotnet restore
dotnet build .\CentralForms.Api\CentralForms.Api.csproj
dotnet run --project .\CentralForms.Api\CentralForms.Api.csproj
dotnet clean

Validar entorno local:

Ventana de terminal
dotnet --info
dotnet --list-sdks
dotnet --list-runtimes
dotnet list .\CentralForms.Api\CentralForms.Api.csproj package
dotnet list .\CentralForms.Infrastructure\CentralForms.Infrastructure.csproj package

Crear migración:

Ventana de terminal
dotnet ef migrations add NombreMigracion --project .\CentralForms.Infrastructure\CentralForms.Infrastructure.csproj --startup-project .\CentralForms.Api\CentralForms.Api.csproj --context CentralFormsDbContext

Aplicar migraciones:

Ventana de terminal
dotnet ef database update --project .\CentralForms.Infrastructure\CentralForms.Infrastructure.csproj --startup-project .\CentralForms.Api\CentralForms.Api.csproj --context CentralFormsDbContext

El SDK permite integrar formularios dinámicos en páginas externas sin construir el formulario manualmente.

ElementoRuta / valor
Archivo SDKCentralForms.Api/wwwroot/sdk/centralforms.js
URL local SDKhttps://localhost:7122/sdk/centralforms.js
Ejemplo localhttps://localhost:7122/examples/contacto.html

Capacidades principales:

  • Render dinámico del formulario.
  • Validación visual en frontend.
  • Bloqueo de doble submit.
  • Manejo de estados loading, ready, submitting, success y error.
  • Renovación de CSRF después de envío exitoso.
  • Callbacks de ciclo de vida.
  • Auto-init mediante atributos data-*.

CentralForms usa SMTP para enviar notificaciones basadas en submissions. En local se usa Mailpit:

ConfiguraciónValor
Hostlocalhost
Puerto1025
SSLfalse
FromEmailno-reply@centralforms.local
FromNameCentralForms Dev

Las plantillas HTML de correo deben priorizar compatibilidad con clientes reales de email: tablas HTML, estilos inline mínimos y evitar CSS moderno dependiente del navegador.

TemaCriterio
LocalDBSolo local. No usar con IIS.
SQL Server realRequerido para QA, staging o producción.
SwaggerHabilitado en desarrollo; restringir o deshabilitar en producción.
SecretosNo versionar claves reales. Usar User Secrets, variables de entorno o mecanismo seguro.
API KeysAlmacenar hash, no valor plano.
CSRFStateful en base de datos. Se genera en GET y se consume en POST.
Email/WebhookIntegraciones asíncronas. Revisar resultado en IntegrationLogs.