EAC.Application.Runtime
0.1.0-rc.4
dotnet add package EAC.Application.Runtime --version 0.1.0-rc.4
NuGet\Install-Package EAC.Application.Runtime -Version 0.1.0-rc.4
<PackageReference Include="EAC.Application.Runtime" Version="0.1.0-rc.4" />
<PackageVersion Include="EAC.Application.Runtime" Version="0.1.0-rc.4" />
<PackageReference Include="EAC.Application.Runtime" />
paket add EAC.Application.Runtime --version 0.1.0-rc.4
#r "nuget: EAC.Application.Runtime, 0.1.0-rc.4"
#:package EAC.Application.Runtime@0.1.0-rc.4
#addin nuget:?package=EAC.Application.Runtime&version=0.1.0-rc.4&prerelease
#tool nuget:?package=EAC.Application.Runtime&version=0.1.0-rc.4&prerelease
EAC.Application.Runtime
Desde 2026-10-09, Native AOT queda fuera del alcance por decisión del usuario. No se declara compatibilidad ni se exige su gate. Las referencias históricas no constituyen soporte vigente; build y tests ordinarios siguen siendo obligatorios.
Desarrollo desde el workspace
El proyecto referencia el código fuente de eac-foundation, situado como
repositorio hermano. La solución incluye esa dependencia para compilarla con
la misma configuración. Antes de ejecutar scripts/ci.sh, deben estar presentes
ambos repositorios; no se utiliza el paquete publicado como alternativa local.
Repositorio propietario del paquete NuGet EAC.Application.Runtime.
El runtime registra casos de uso y behaviors explícitos, conserva un manifiesto inmutable y despacha solicitudes mediante keyed DI nativo de .NET. Los behaviors se ejecutan en orden determinista dentro del mismo ensamblado y una continuación no puede invocarse más de una vez.
IUseCaseExecutionObserver recibe, después del despacho, la identidad de
operación congelada por el manifiesto, el tipo de request, estado acotado y
duración. No recibe request ni response. Sus fallos se aíslan del resultado
funcional, por lo que observabilidad puede registrarse una sola vez sin cambiar
cada AddUseCase.
IUseCaseExecutionScopeFactory puede abrir opcionalmente un scope sin payload
antes de validation, behaviors y caso de uso. Recibe solamente la identidad
estable del manifiesto y lo completa siempre con el estado final; sus fallos se
aislan de la ejecución funcional. Esta frontera permite que un adaptador de
observabilidad cree un único span padre de toda la operación sin registrar un
behavior por cada caso de uso.
Estado
| Elemento | Estado |
|---|---|
| Scaffold del repositorio | implementado |
| Paquete NuGet único | implementado |
Dependencia EAC.Foundation |
fijada en 0.1.0-rc.3 |
| CI, build, test y pack local | implementados |
| Registro y manifiesto | implementados |
| Dispatcher keyed scoped | implementado |
| Pipeline behaviors | implementados |
| Diagnóstico de composición | implementado sin activar servicios scoped |
| Validation | implementado sobre el pipeline existente |
| Candidato NuGet verificable | implementado sin publicación |
| Publicación prerelease | completada; 0.1.0-rc.3 publicada en NuGet.org |
La versión de trabajo nace como 0.1.0-alpha.1; la línea publicada alcanzó
0.1.0-rc.3. El componente consume la línea RC aprobada de Foundation y no
requiere una versión estable para continuar su integración.
Configuración y consumo
EAC.Application.Runtime no posee settings ambientales. Referenciar el paquete
no registra el runtime, casos de uso, behaviors o validadores; la raíz de
composición debe seleccionarlos explícitamente mediante sus extensiones tipadas.
<PackageReference Include="EAC.Application.Runtime" Version="0.1.0-rc.3" />
services.AddEacApplicationRuntime();
services.AddUseCase<IssueOrderCommand, Result<OrderId>, IssueOrderUseCase>();
services.AddPipelineBehavior<
IssueOrderCommand,
Result<OrderId>,
AuthorizationBehavior>(200);
No existe una sección appsettings equivalente: tipos de request, casos de uso,
validadores y orden de behaviors son decisiones de composición en código. El
paquete no lee variables de entorno, conexiones o secretos y no mantiene
configuración recargable. Un registro ausente, duplicado o incompatible falla
al construir o validar la composición sin revelar datos sensibles. Cambiar la
composición requiere reiniciar o desplegar nuevamente el proceso consumidor.
Registro y despacho
services.AddEacApplicationRuntime();
services.AddUseCase<
IssueOrderCommand,
Result<OrderId>,
IssueOrderUseCase>();
services.AddPipelineBehavior<
IssueOrderCommand,
Result<OrderId>,
AuthorizationBehavior>(200);
services.AddUseCaseValidation<IssueOrderCommand, OrderId>(validation => validation
.AddValidator<IssueOrderRequiredFieldsValidator>()
.AddValidator<IssueOrderDatesValidator>());
var result = await dispatcher.DispatchAsync(
new IssueOrderCommand(orderId),
cancellationToken);
Cada solicitud concreta admite exactamente un caso de uso. Los behaviors se ordenan por el valor declarado, pueden cortar la cadena y comparten el scope existente con dispatcher, ejecutor y caso de uso. El runtime no crea scopes, no descubre assemblies y no captura excepciones ni cancelaciones.
Validation ocupa el orden gobernado 300 del mismo pipeline. Sus validadores son
scoped, se registran explícitamente y se ejecutan secuencialmente en el orden
declarado. Un fallo devuelve ValidationError y evita ejecutar el caso de uso;
cancelaciones y excepciones inesperadas se propagan.
Ejecución local
./scripts/ci.sh
./scripts/pack.sh
./scripts/release-candidate.sh
Las pruebas se muestran en tabla por defecto e incluyen el identificador de la
regla validada. Se puede usar TEST_OUTPUT=Detailed cuando se necesite el log
completo.
release-candidate.sh requiere que ci.sh haya compilado y probado el mismo
commit. Empaqueta sin recompilar, genera .nupkg, .snupkg, SBOM SPDX 2.2,
hashes SHA-256 y evidencia ligada al commit, y restaura el paquete en un
consumidor temporal que ejecuta AddEacApplicationRuntime. El script no acepta
credenciales ni publica artefactos.
Navegación
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- EAC.Foundation (>= 0.1.0-rc.4)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on EAC.Application.Runtime:
| Package | Downloads |
|---|---|
|
EAC.Infrastructure.Observability
Native-first observability semantics for EAC application operations. |
|
|
EAC.Infrastructure.Security
Provider-neutral identity and capability authorization for EAC applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-rc.4 | 122 | 10/23/2026 |
| 0.1.0-rc.3 | 296 | 8/21/2026 |
| 0.1.0-rc.2 | 82 | 8/21/2026 |
| 0.1.0-rc.1 | 241 | 8/7/2026 |
| 0.1.0-beta.1 | 84 | 8/7/2026 |
| 0.1.0-alpha.2 | 86 | 8/7/2026 |