EAC.Application.Runtime 0.1.0-rc.4

This is a prerelease version of EAC.Application.Runtime.
dotnet add package EAC.Application.Runtime --version 0.1.0-rc.4
                    
NuGet\Install-Package EAC.Application.Runtime -Version 0.1.0-rc.4
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="EAC.Application.Runtime" Version="0.1.0-rc.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="EAC.Application.Runtime" Version="0.1.0-rc.4" />
                    
Directory.Packages.props
<PackageReference Include="EAC.Application.Runtime" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add EAC.Application.Runtime --version 0.1.0-rc.4
                    
#r "nuget: EAC.Application.Runtime, 0.1.0-rc.4"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package EAC.Application.Runtime@0.1.0-rc.4
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=EAC.Application.Runtime&version=0.1.0-rc.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=EAC.Application.Runtime&version=0.1.0-rc.4&prerelease
                    
Install as a Cake Tool

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.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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