Reo.Core.Application.Abstractions 10.0.237

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.237
                    
NuGet\Install-Package Reo.Core.Application.Abstractions -Version 10.0.237
                    
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.237" />
                    
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.237" />
                    
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.237
                    
#r "nuget: Reo.Core.Application.Abstractions, 10.0.237"
                    
#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.237
                    
#: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.237
                    
Install as a Cake Addin
#tool nuget:?package=Reo.Core.Application.Abstractions&version=10.0.237
                    
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.Application.Abstractions.MediatR

Package Description

Reo.Core.Application.Abstractions.MediatorGenerator

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.243 6 6/30/2026
10.0.242 33 6/30/2026
10.0.239 62 6/30/2026
10.0.238 63 6/30/2026
10.0.237 63 6/30/2026
10.0.236 115 6/29/2026
10.0.235 122 6/29/2026
10.0.234 124 6/29/2026
10.0.233 182 6/26/2026
10.0.232 176 6/26/2026
10.0.231 181 6/26/2026
10.0.230 172 6/26/2026
10.0.229 249 6/25/2026
10.0.228 252 6/25/2026
10.0.227 264 6/25/2026
10.0.226 272 6/24/2026
10.0.225 281 6/24/2026
10.0.224 310 6/23/2026
10.0.223 312 6/23/2026
10.0.222 300 6/23/2026
Loading failed