Reo.Core.Application.Abstractions
8.0.742
See the version list below for details.
dotnet add package Reo.Core.Application.Abstractions --version 8.0.742
NuGet\Install-Package Reo.Core.Application.Abstractions -Version 8.0.742
<PackageReference Include="Reo.Core.Application.Abstractions" Version="8.0.742" />
<PackageVersion Include="Reo.Core.Application.Abstractions" Version="8.0.742" />
<PackageReference Include="Reo.Core.Application.Abstractions" />
paket add Reo.Core.Application.Abstractions --version 8.0.742
#r "nuget: Reo.Core.Application.Abstractions, 8.0.742"
#:package Reo.Core.Application.Abstractions@8.0.742
#addin nuget:?package=Reo.Core.Application.Abstractions&version=8.0.742
#tool nuget:?package=Reo.Core.Application.Abstractions&version=8.0.742
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 | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- AutoMapper (>= 11.0.1 && < 15.0.0)
- FluentValidation (>= 11.11.0)
- FluentValidation.AspNetCore (>= 11.3.1)
- Flurl (>= 4.0.0)
- Flurl.Http (>= 4.0.2)
- JetBrains.Annotations (>= 2025.2.4)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 8.0.22)
- Microsoft.Bcl.AsyncInterfaces (>= 9.0.11)
- Microsoft.CSharp (>= 4.7.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Http.Polly (>= 10.0.0)
- Microsoft.Extensions.Logging (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- NEST (>= 7.17.5)
- Newtonsoft.Json (>= 13.0.4)
- Polly (>= 8.5.0)
- RedLock.net (>= 2.3.2)
- Reo.Core.BaseDomainModels (>= 8.0.742)
- stbychkov.AutoLoggerMessage (>= 1.0.14)
- System.Collections.Immutable (>= 10.0.0)
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Configuration.ConfigurationManager (>= 10.0.0)
- System.IO.Abstractions (>= 22.1.0)
- System.IO.Pipelines (>= 10.0.0)
- 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.112 | 46 | 4/17/2026 |
| 10.0.111 | 123 | 4/16/2026 |
| 10.0.110 | 123 | 4/16/2026 |
| 10.0.109 | 127 | 4/16/2026 |
| 10.0.108 | 126 | 4/16/2026 |
| 10.0.107 | 127 | 4/16/2026 |
| 10.0.106 | 125 | 4/16/2026 |
| 10.0.105 | 164 | 4/15/2026 |
| 10.0.104 | 183 | 4/15/2026 |
| 10.0.103 | 200 | 4/14/2026 |
| 10.0.101 | 198 | 4/14/2026 |
| 10.0.100 | 248 | 4/13/2026 |
| 10.0.99 | 233 | 4/13/2026 |
| 10.0.98 | 245 | 4/13/2026 |
| 10.0.97 | 249 | 4/13/2026 |
| 10.0.96 | 242 | 4/13/2026 |
| 10.0.95 | 261 | 4/10/2026 |
| 10.0.94 | 243 | 4/10/2026 |
| 10.0.93 | 250 | 4/10/2026 |
| 8.0.742 | 607 | 12/10/2025 |