Reo.Core.Application.Abstractions 10.0.156

dotnet add package Reo.Core.Application.Abstractions --version 10.0.156
                    
NuGet\Install-Package Reo.Core.Application.Abstractions -Version 10.0.156
                    
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.156" />
                    
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.156" />
                    
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.156
                    
#r "nuget: Reo.Core.Application.Abstractions, 10.0.156"
                    
#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.156
                    
#: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.156
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Application.Abstractions&version=10.0.156
                    
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.156 64 5/20/2026
10.0.155 110 5/19/2026
10.0.154 225 5/15/2026
10.0.153 221 5/15/2026
10.0.152 220 5/15/2026
10.0.151 223 5/15/2026
10.0.150 236 5/15/2026
10.0.149 211 5/14/2026
10.0.148 329 5/13/2026
10.0.146 331 5/12/2026
10.0.145 326 5/12/2026
10.0.143 349 5/8/2026
10.0.140 358 5/8/2026
10.0.139 309 5/8/2026
10.0.138 332 5/7/2026
10.0.135 319 5/7/2026
10.0.134 315 5/7/2026
10.0.133 333 5/7/2026
10.0.132 322 5/7/2026
10.0.131 327 5/7/2026
Loading failed