Arham.Foundation.Application
0.6.0-preview.5
dotnet add package Arham.Foundation.Application --version 0.6.0-preview.5
NuGet\Install-Package Arham.Foundation.Application -Version 0.6.0-preview.5
<PackageReference Include="Arham.Foundation.Application" Version="0.6.0-preview.5" />
<PackageVersion Include="Arham.Foundation.Application" Version="0.6.0-preview.5" />
<PackageReference Include="Arham.Foundation.Application" />
paket add Arham.Foundation.Application --version 0.6.0-preview.5
#r "nuget: Arham.Foundation.Application, 0.6.0-preview.5"
#:package Arham.Foundation.Application@0.6.0-preview.5
#addin nuget:?package=Arham.Foundation.Application&version=0.6.0-preview.5&prerelease
#tool nuget:?package=Arham.Foundation.Application&version=0.6.0-preview.5&prerelease
Arham.Foundation.Application
Application-layer contracts and behaviors for .NET services, with a built-in mediator (no MediatR dependency).
Use this package to define command/query handlers, publish domain events, and add common request pipeline behavior without taking a dependency on a specific persistence or hosting stack.
Install
dotnet add package Arham.Foundation.Application
What It Provides
- A minimal built-in mediator (
Arham.Foundation.Application.Mediator):IRequest/IRequestHandler,INotification/INotificationHandler,IPipelineBehavior,ISender/IPublisher/IMediator, plusAddArhamMediator(...) - Command/query request contracts (
ICommand/IQuery) on the built-in mediator - Event publisher and domain-event dispatcher abstractions
- Exception-to-result pipeline behavior for validation and not-found cases
Example
using Ardalis.Result;
using Arham.Foundation.Application.Messaging;
public sealed record CreateCustomerCommand(string Email) : ICommand<Result<Guid>>;
public sealed class CreateCustomerHandler : ICommandHandler<CreateCustomerCommand, Result<Guid>>
{
public Task<Result<Guid>> Handle(CreateCustomerCommand request, CancellationToken cancellationToken)
{
return Task.FromResult(Result.Success(Guid.NewGuid()));
}
}
// Registration: scans the assembly for handlers, notification handlers, and pipeline behaviors.
services.AddArhamMediator(typeof(CreateCustomerHandler).Assembly);
Dependencies
This package depends on Arham Foundation Core, Ardalis.Result, FluentValidation, the dependency-injection abstractions, and logging abstractions. It does not depend on MediatR, persistence, messaging, or ASP.NET host packages.
| 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
- Ardalis.Result (>= 10.1.0)
- Arham.Foundation.Core (>= 0.6.0-preview.5)
- FluentValidation (>= 12.1.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.6)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.6)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Arham.Foundation.Application:
| Package | Downloads |
|---|---|
|
Arham.Foundation.Messaging.Nats
NATS / JetStream messaging package for Arham Foundation. |
|
|
Arham.Foundation.Messaging.Kafka
Kafka messaging package for Arham Foundation. |
|
|
Arham.Foundation.Persistence.MongoDb
MongoDB persistence package for Arham Foundation. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.6.0-preview.5 | 1,848 | 7/5/2026 |
| 0.6.0-preview.4 | 84 | 7/5/2026 |
| 0.6.0-preview.3 | 474 | 6/22/2026 |
| 0.6.0-preview.2 | 122 | 6/19/2026 |
| 0.6.0-preview.1 | 95 | 6/19/2026 |
| 0.6.0-preview.0 | 108 | 6/18/2026 |
| 0.5.0-Preview.0 | 79 | 6/18/2026 |
| 0.4.0-Preview.0 | 92 | 6/18/2026 |
| 0.3.0-Preview.0 | 88 | 6/17/2026 |
| 0.2.0-preview.0 | 193 | 6/17/2026 |
| 0.1.0-Preview.7 | 74 | 6/16/2026 |
| 0.1.0-Preview.6 | 61 | 6/16/2026 |
| 0.1.0-Preview.5 | 1,949 | 6/16/2026 |
| 0.1.0-preview.4 | 68 | 6/13/2026 |
| 0.1.0-Preview.3 | 63 | 6/13/2026 |
0.6.0-preview.5: multitenancy contracts (ITenantScopedEntity, ITenantContextProvider, StaticTenantContextProvider, MissingTenantContextException, CrossTenantWriteException) moved from Arham.Foundation.Persistence.EfCore to Arham.Foundation.Core (namespace Arham.Foundation.Core.Multitenancy) so domain layers can implement the tenant marker without an EF Core dependency. EF enforcement (TenantSaveChangesInterceptor, UseArhamMultitenancy, UseArhamTenantEnforcement) and the PostgreSQL RLS half are unchanged in their packages. Breaking within the 0.6.0 preview line: update usings from Arham.Foundation.Persistence.EfCore.Multitenancy to Arham.Foundation.Core.Multitenancy for the moved types. See CHANGELOG.md and docs/Multitenancy.md.