Reo.Core.Application.Abstractions
10.0.2
See the version list below for details.
dotnet add package Reo.Core.Application.Abstractions --version 10.0.2
NuGet\Install-Package Reo.Core.Application.Abstractions -Version 10.0.2
<PackageReference Include="Reo.Core.Application.Abstractions" Version="10.0.2" />
<PackageVersion Include="Reo.Core.Application.Abstractions" Version="10.0.2" />
<PackageReference Include="Reo.Core.Application.Abstractions" />
paket add Reo.Core.Application.Abstractions --version 10.0.2
#r "nuget: Reo.Core.Application.Abstractions, 10.0.2"
#:package Reo.Core.Application.Abstractions@10.0.2
#addin nuget:?package=Reo.Core.Application.Abstractions&version=10.0.2
#tool nuget:?package=Reo.Core.Application.Abstractions&version=10.0.2
Reo.Core.Application.Abstractions
Пакет Reo.Core.Application.Abstractions представляет собой библиотеку, предназначенную для реализации прикладного слоя в архитектуре DDD (Domain-Driven Design). Он предоставляет абстракции и утилиты для работы с доменными командами, событиями, запросами и маппингом между доменными моделями и DTO (Data Transfer Objects). Ниже приведены ключевые аспекты и функции пакета:
Основные компоненты пакета
1. Обработка доменных команд и событий
ReoDomainCommandHandler<TDomainCommand>иReoDomainCommandWithResultHandler<TDomainCommand>:- Реализуют обработчики для доменных команд (команд, изменяющих состояние системы) и команд с результатом (например, валидации).
- Используют MediatR для обработки запросов и интеграции с пайплайн-поведениями (например, логирование, транзакции).
- Поддерживают кастомные псевдонимы для команд и логирование дополнительной информации.
ReoDomainEventHandler<TDomainEvent>иReoDomainEventWithResultHandler<TDomainEvent>:- Обрабатывают доменные события (события, возникающие в результате изменений в домене).
- Поддерживают возврат результатов (например, для проверки условий).
2. Сервисы приложения
ReoApplicationServiceBase:- Базовый класс для прикладных сервисов, предоставляющий общую логику (например, транзакции, логирование).
- Может использоваться для оркестрации доменных команд и событий.
ReoApplicationServiceFactory:- Фабрика для создания экземпляров прикладных сервисов, интегрируется с контейнером DI (Dependency Injection).
3. Маппинг между доменными моделями и DTO
ReoDomainToDtoMapperиReoDtoToDomainMapper:- Утилиты для преобразования данных между доменными объектами и DTO, используемыми в API или внешних слоях.
4. Расширения для MediatR
ReoApplicationServiceExtensions:- Методы расширения для обработки команд, событий и запросов через MediatR.
- Поддерживают интеграцию с пайплайн-поведениями (например, валидация, логирование).
Архитектурные особенности
DDD-ориентированная структура:
- Разделение на доменные команды, события, запросы и прикладные сервисы.
- Использование CQRS (Command Query Responsibility Segregation) для разделения операций чтения и записи.
Интеграция с MediatR:
- Обработка команд и событий через паттерн Request/Response.
- Поддержка pipeline behaviors для добавления общей логики (например, логирование, транзакции).
Декуплирование слоев:
- Зависимость от
Reo.Core.BaseDomainModels(доменные модели) черезProjectReference. - Отсутствие прямой зависимости от инфраструктурных слоев (например, базы данных), что позволяет использовать пакет в различных контекстах.
- Зависимость от
Пример использования
// Пример обработчика команды
public class CreateUserCommandHandler : ReoDomainCommandHandler<CreateUserCommand>
{
protected override async Task InnerHandleAsync(CreateUserCommand command, CancellationToken cancellationToken)
{
// Логика создания пользователя
await _userRepository.AddAsync(new User(command.Name, command.Email), cancellationToken);
}
}
// Пример прикладного сервиса
public class UserService : ReoApplicationServiceBase
{
public async Task CreateUserAsync(CreateUserCommand command)
{
await HandleCommandAsync(command);
}
}
Зависимости
- .NET 8.0 (указано в
csproj). - MediatR (используется для обработки команд и событий).
- Reo.Core.BaseDomainModels (доменные модели и сущности).
Цель пакета
Пакет Reo.Core.Application.Abstractions служит абстракцией для прикладного слоя, позволяя:
- Реализовывать бизнес-логику через доменные команды и события.
- Использовать MediatR для обработки запросов и интеграции с пайплайн-поведениями.
- Разделять доменные модели и DTO для обеспечения чистоты архитектуры.
Этот пакет подходит для проектов, следующих DDD, CQRS и Clean Architecture.
Лицензия
Данный пакет распространяется под лицензией MIT.
| 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
- FluentValidation (>= 12.1.1)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.Extensions.Configuration (>= 10.0.2)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection (>= 10.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Http.Polly (>= 10.0.2)
- Microsoft.Extensions.Logging (>= 10.0.2)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.2)
- Microsoft.Extensions.Options (>= 10.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.2)
- Polly (>= 8.5.0)
- Reo.Core.BaseDomainModels (>= 10.0.2)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.Linq.Async (>= 7.0.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on Reo.Core.Application.Abstractions:
| Package | Downloads |
|---|---|
|
Reo.Core.Hosting
Package Description |
|
|
Reo.Core.Elastic
Package Description |
|
|
Reo.Core.FrontConstants
Package Description |
|
|
Reo.Core.Events
Package Description |
|
|
Reo.Core.Application.Abstractions.MediatR
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.30 | 0 | 2/12/2026 |
| 10.0.29 | 0 | 2/12/2026 |
| 10.0.28 | 51 | 2/11/2026 |
| 10.0.27 | 76 | 2/11/2026 |
| 10.0.26 | 161 | 2/9/2026 |
| 10.0.25 | 153 | 2/9/2026 |
| 10.0.24 | 174 | 2/9/2026 |
| 10.0.23 | 157 | 2/9/2026 |
| 10.0.22 | 149 | 2/9/2026 |
| 10.0.21 | 156 | 2/9/2026 |
| 10.0.20 | 157 | 2/9/2026 |
| 10.0.15 | 176 | 2/6/2026 |
| 10.0.14 | 178 | 2/6/2026 |
| 10.0.13 | 515 | 2/4/2026 |
| 10.0.12 | 258 | 2/3/2026 |
| 10.0.11 | 259 | 2/2/2026 |
| 10.0.10 | 272 | 1/29/2026 |
| 10.0.9 | 254 | 1/29/2026 |
| 10.0.8 | 267 | 1/27/2026 |
| 10.0.2 | 284 | 1/23/2026 |