TiqriGlobalShop.Common.Application
1.1.0
dotnet add package TiqriGlobalShop.Common.Application --version 1.1.0
NuGet\Install-Package TiqriGlobalShop.Common.Application -Version 1.1.0
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="TiqriGlobalShop.Common.Application" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TiqriGlobalShop.Common.Application" Version="1.1.0" />
<PackageReference Include="TiqriGlobalShop.Common.Application" />
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 TiqriGlobalShop.Common.Application --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TiqriGlobalShop.Common.Application, 1.1.0"
#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 TiqriGlobalShop.Common.Application@1.1.0
#: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=TiqriGlobalShop.Common.Application&version=1.1.0
#tool nuget:?package=TiqriGlobalShop.Common.Application&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
GlobalShop.Common.Application
Shared application-layer building blocks for GlobalShop micro-services.
What's Inside
| Namespace | Contents |
|---|---|
Abstractions.Messaging |
CQRS interfaces — ICommand, IQuery, ICommandHandler, IQueryHandler |
Abstractions.Behaviors |
Cross-cutting decorator handlers — LoggingDecorator, CommandHandler, CommandBaseHandler, QueryHandler, ValidationDecorator |
Abstractions.Data |
IUnitOfWork |
Abstractions.DomainEvents |
IDomainEventsDispatcher, DomainEventsDispatcher — reflection-based domain event dispatching |
Common.Pagination |
PagedResponse<T> with HATEOAS navigation links |
Common.Time |
DateTimeProvider — default IDateTimeProvider implementation |
Extensions |
DI helpers — AddApplicationHandlers, AddCommonApplicationServices, AddMapster |
Installation
dotnet add package GlobalShop.Common.Application
Usage
1. Define a command / query
using GlobalShop.Common.Application.Abstractions.Messaging;
public sealed record CreateItemCommand(string Name) : ICommand<Guid>;
public sealed record GetItemByIdQuery(Guid Id) : IQuery<ItemResponse>;
2. Implement the handler
public sealed class CreateItemCommandHandler
: ICommandHandler<CreateItemCommand, Guid>
{
public async Task<Result<Guid>> Handle(
CreateItemCommand command,
CancellationToken cancellationToken)
{
// ...
}
}
3. Register everything with one call
using GlobalShop.Common.Application.Extensions;
// Scans for handlers, registers validation + logging decorators,
// domain event handlers, and FluentValidation validators
services.AddApplicationHandlers(typeof(ConfigureServices).Assembly);
// Registers IDateTimeProvider and IDomainEventsDispatcher
services.AddCommonApplicationServices();
// Registers Mapster with assembly scanning
services.AddMapster(typeof(ConfigureServices).Assembly);
Manual decorator registration (alternative)
// Scrutor-based decorator registration
services.Decorate(typeof(ICommandHandler<,>), typeof(ValidationDecorator.CommandHandler<,>));
services.Decorate(typeof(ICommandHandler<>), typeof(ValidationDecorator.CommandBaseHandler<>));
services.Decorate(typeof(IQueryHandler<,>), typeof(QueryHandler<,>));
services.Decorate(typeof(ICommandHandler<,>), typeof(CommandHandler<,>));
services.Decorate(typeof(ICommandHandler<>), typeof(CommandBaseHandler<>));
Dependencies
GlobalShop.Common.SharedKernel—Result,Error,ValidationError,IDomainEvent,IDomainEventHandler,IDateTimeProviderFluentValidation— validation pipelineFluentValidation.DependencyInjectionExtensions— validator auto-registrationScrutor— assembly scanning and decorator registrationMapster+Mapster.DependencyInjection— object mappingMicrosoft.Extensions.Logging.Abstractions—ILogger<T>Microsoft.Extensions.DependencyInjection.Abstractions—IServiceCollectionSerilog—LogContextfor structured logging
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- FluentValidation (>= 11.11.0)
- FluentValidation.DependencyInjectionExtensions (>= 11.11.0)
- Mapster (>= 7.4.0)
- Mapster.DependencyInjection (>= 1.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Scrutor (>= 6.0.1)
- Serilog (>= 4.3.0)
- TiqriGlobalShop.Common.SharedKernel (>= 1.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.