Reo.Core.BaseDomainModels
10.0.30
See the version list below for details.
dotnet add package Reo.Core.BaseDomainModels --version 10.0.30
NuGet\Install-Package Reo.Core.BaseDomainModels -Version 10.0.30
<PackageReference Include="Reo.Core.BaseDomainModels" Version="10.0.30" />
<PackageVersion Include="Reo.Core.BaseDomainModels" Version="10.0.30" />
<PackageReference Include="Reo.Core.BaseDomainModels" />
paket add Reo.Core.BaseDomainModels --version 10.0.30
#r "nuget: Reo.Core.BaseDomainModels, 10.0.30"
#:package Reo.Core.BaseDomainModels@10.0.30
#addin nuget:?package=Reo.Core.BaseDomainModels&version=10.0.30
#tool nuget:?package=Reo.Core.BaseDomainModels&version=10.0.30
Reo.Core.BaseDomainModels
Описание пакета
Reo.Core.BaseDomainModels — это библиотека, предоставляющая базовые модели, утилиты и инструменты для разработки
приложений на .NET. Пакет решает задачи, связанные с созданием согласованных доменных объектов, сравнением объектов,
обработкой бизнес-правил и управлением исключениями, возникающими в доменном слое приложения. Он упрощает разработку
через предоставление готовых классов, интерфейсов и констант, которые можно использовать в различных сценариях, таких
как обработка событий, команд, валидация данных и сравнение объектов.
Основные компоненты
1. DomainException
Класс исключения, используемый для обработки ошибок, возникающих в доменном слое. Предоставляет стандартные конструкторы для создания исключений с сообщениями и вложенными ошибками.
2. DomainComparerBase<T>
Абстрактный класс, реализующий IEqualityComparer<T>. Используется для сравнения объектов по их свойствам. Поддерживает
сравнение объектов с учетом всех публичных свойств.
3. DomainEventsComparer / DomainCommandsComparer
Конкретные реализации DomainComparerBase, предназначенные для сравнения объектов, реализующих интерфейсы
IReoDomainEvent и IReoDomainCommand соответственно. Используются для проверки равенства событий и команд в
приложениях с событийной архитектурой.
4. BusinessRule / BusinessRuleValidator
Классы для реализации и валидации бизнес-правил. BusinessRule представляет собой правило, а BusinessRuleValidator —
его валидатор, который проверяет, соблюдается ли правило.
5. Константы (InnConstants, OkpoConstants, OgrnConstants и др.)
Содержат стандартные значения и форматы для идентификаторов, таких как ИНН, ОКПО, ОГРН и др. Используются для валидации и форматирования данных.
6. IReoDomainEvent / IReoDomainCommand
Интерфейсы, определяющие структуру событий и команд в доменном слое. Используются в сочетании с DomainEventsComparer и
DomainCommandsComparer.
Требования
- .NET версии: .NET 6.0 и выше, .NET Standard 2.0.
- Зависимости:
JetBrains.Annotations(для атрибутов[UsedImplicitly]).
Установка
Используйте следующие команды для установки пакета:
NuGet Package Manager:
Install-Package Reo.Core.BaseDomainModels.NET CLI:
dotnet add package Reo.Core.BaseDomainModels
Настройка
Для использования в ASP.NET Core не требуется регистрация сервисов в DI-контейнере, так как пакет не предоставляет
собственных сервисов. Однако, если вы используете BusinessRuleValidator, вы можете зарегистрировать его как синглтон:
services.AddSingleton<BusinessRuleValidator>();
Конфигурационных параметров в пакете нет.
Использование
Пример 1: Обработка исключения
try
{
// Вызов метода, который может вызвать ошибку
ValidateData();
}
catch (DomainException ex)
{
Console.WriteLine($"Ошибка в доменном слое: {ex.Message}");
}
Пример 2: Сравнение событий
var event1 = new MyDomainEvent { Id = 1, Data = "Test" };
var event2 = new MyDomainEvent { Id = 1, Data = "Test" };
var comparer = new DomainEventsComparer();
bool areEqual = comparer.Equals(event1, event2);
Console.WriteLine($"События равны: {areEqual}");
Пример 3: Валидация бизнес-правил
var rule = new BusinessRule("MinValueRule", "Значение должно быть больше 0", value => value > 0);
var validator = new BusinessRuleValidator();
bool isValid = validator.Validate(rule, 5);
Console.WriteLine($"Правило выполнено: {isValid}");
Пример 4: Использование констант
string inn = "1234567890";
if (InnConstants.IsValidLength(inn))
{
Console.WriteLine("ИНН имеет допустимую длину.");
}
else
{
Console.WriteLine("ИНН имеет недопустимую длину.");
}
Лицензия
Данный пакет распространяется под лицензией 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.Annotations (>= 10.0.30)
- Reo.Core.Extensions (>= 10.0.30)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
- System.Linq.Async (>= 7.0.0)
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Reo.Core.BaseDomainModels:
| Package | Downloads |
|---|---|
|
Reo.Core.Elastic.Geo
Package Description |
|
|
Reo.Core.Application.Abstractions
Package Description |
|
|
Reo.Core.Queue.MassTransit.Abstractions
Package Description |
|
|
Reo.Core.Queue.MassTransit.Models
Package Description |
|
|
Reo.Fs.Map.Common
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 | 7 | 2/13/2026 |
| 10.0.30 | 110 | 2/12/2026 |
| 10.0.29 | 118 | 2/12/2026 |
| 10.0.28 | 137 | 2/11/2026 |
| 10.0.27 | 170 | 2/11/2026 |
| 10.0.26 | 264 | 2/9/2026 |
| 10.0.25 | 260 | 2/9/2026 |
| 10.0.24 | 278 | 2/9/2026 |
| 10.0.23 | 268 | 2/9/2026 |
| 10.0.22 | 260 | 2/9/2026 |
| 10.0.21 | 279 | 2/9/2026 |
| 10.0.20 | 269 | 2/9/2026 |
| 10.0.15 | 280 | 2/6/2026 |
| 10.0.14 | 279 | 2/6/2026 |
| 10.0.13 | 546 | 2/4/2026 |
| 10.0.12 | 281 | 2/3/2026 |
| 10.0.11 | 296 | 2/2/2026 |
| 10.0.10 | 296 | 1/29/2026 |