Reo.Core.Application.Abstractions 10.0.15

There is a newer version of this package available.
See the version list below for details.
dotnet add package Reo.Core.Application.Abstractions --version 10.0.15
                    
NuGet\Install-Package Reo.Core.Application.Abstractions -Version 10.0.15
                    
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="Reo.Core.Application.Abstractions" Version="10.0.15" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Reo.Core.Application.Abstractions" Version="10.0.15" />
                    
Directory.Packages.props
<PackageReference Include="Reo.Core.Application.Abstractions" />
                    
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 Reo.Core.Application.Abstractions --version 10.0.15
                    
#r "nuget: Reo.Core.Application.Abstractions, 10.0.15"
                    
#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 Reo.Core.Application.Abstractions@10.0.15
                    
#: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=Reo.Core.Application.Abstractions&version=10.0.15
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Application.Abstractions&version=10.0.15
                    
Install as a Cake Tool

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 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 (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.33 0 2/13/2026
10.0.32 0 2/13/2026
10.0.31 11 2/13/2026
10.0.30 104 2/12/2026
10.0.29 109 2/12/2026
10.0.28 137 2/11/2026
10.0.27 158 2/11/2026
10.0.26 239 2/9/2026
10.0.25 231 2/9/2026
10.0.24 251 2/9/2026
10.0.23 242 2/9/2026
10.0.22 230 2/9/2026
10.0.21 245 2/9/2026
10.0.20 244 2/9/2026
10.0.15 251 2/6/2026
10.0.14 252 2/6/2026
10.0.13 522 2/4/2026
10.0.12 258 2/3/2026
10.0.11 259 2/2/2026
10.0.10 272 1/29/2026
Loading failed