Core.RW 1.1.1

dotnet add package Core.RW --version 1.1.1
                    
NuGet\Install-Package Core.RW -Version 1.1.1
                    
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="Core.RW" Version="1.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Core.RW" Version="1.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Core.RW" />
                    
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 Core.RW --version 1.1.1
                    
#r "nuget: Core.RW, 1.1.1"
                    
#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 Core.RW@1.1.1
                    
#: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=Core.RW&version=1.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Core.RW&version=1.1.1
                    
Install as a Cake Tool

Core.RW — Domain Primitives & Consistency Model

NuGet Version License NuGet Downloads

Overview / Обзор

Core.RW предоставляет базовые строительные блоки для реализации систем, основанных на предметно-ориентированном проектировании (DDD), с явными границами согласованности и отслеживанием изменений состояния через доменные события.

This library is not a utility collection. Эта библиотека не является набором утилит.

It defines a domain execution model, including: Она определяет модель выполнения домена, включающую:

  • Identity-based domain entities / Сущности с идентичностью
  • Value-based objects / Объекты-значения
  • Aggregate consistency boundaries / Границы согласованности агрегатов
  • Domain event collection model / Модель сбора доменных событий

Architectural Intent / Архитектурное назначение

Core.RW предназначена для систем, которым необходимы:

  • Strict domain encapsulation / Строгая инкапсуляция домена
  • Explicit mutation boundaries / Явные границы изменений состояния
  • Event-driven state propagation / Событийное распространение изменений
  • Compatibility with event sourcing patterns / Совместимость с event sourcing
  • Clear separation between domain and application concerns / Чёткое разделение домена и приложения

Domain Model Structure / Структура доменной модели

Core.RW построена вокруг четырёх основных концепций:

  • Entities / Сущности
  • Value Objects / Объекты-значения
  • Aggregates / Агрегаты
  • Domain Events / Доменные события

Entities / Сущности

Entity Представляет объект со стабильной идентичностью и жизненным циклом.

Сущности определяются своей идентичностью, а не набором свойств.

Key properties / Основные свойства:
  • Identity is immutable / Идентичность неизменна
  • Equality is based on identity / Сравнение основано на идентичности
  • State may change over time / Состояние может изменяться
Responsibility / Ответственность:

Entity представляют доменные объекты, которые изменяются в рамках бизнес-правил.


Value Objects / Объекты-значения

ValueObject Представляет неизменяемый объект, полностью определяемый своими значениями.

Key properties / Основные свойства:
  • No identity / Отсутствует идентичность
  • Immutable by convention / Неизменяемость по соглашению
  • Equality based on structure / Сравнение по структуре
Responsibility / Ответственность:

ValueObject Инкапсулирует доменные концепции, полностью определяемые значениями.

Examples / Примеры:

  • Money / Деньги
  • Address / Адрес
  • Date range / Диапазон дат
  • Measurement / Измерение

Aggregates / Агрегаты

AggregateRoot Представляет границу согласованности внутри доменной модели. Агрегат гарантирует, что все внутренние изменения состояния корректны и согласованы.

Responsibility / Ответственность:
  • Enforce domain invariants / Обеспечение инвариантов
  • Control state mutations / Контроль изменений состояния
  • Maintain internal consistency / Поддержание согласованности
  • Collect domain events / Сбор доменных событий

Domain Events / Доменные события:

Агрегаты не публикуют события напрямую. Они только накапливают их во время выполнения. События извлекаются внешним слоем приложения.

Lifecycle flow / Жизненный цикл:
  1. Command is applied to AggregateRoot / Команда применяется к агрегату
  2. State is mutated internally / Изменяется внутреннее состояние
  3. Domain events are recorded / Записываются доменные события
  4. Events are retrieved externally / События извлекаются приложением

Domain Events / Доменные события

DomainEvent Представляет факт того, что в домене произошло значимое событие.

Key properties / Основные свойства:
  • Immutable / неизменяемые
  • Append-only / только добавление
  • Generated by aggregates / создаются агрегатами
  • Consumed outside domain boundary / обрабатываются вне домена
Key concept / Ключевая идея:

Доменные события описывают что произошло, а не что нужно сделать.

Lifecycle flow / Жизненный цикл:
  1. Created inside AggregateRoot / Создаются в агрегате
  2. Stored internally / Хранятся внутри агрегата
  3. Retrieved by application layer / Извлекаются приложением
  4. Dispatched externally / Отправляются во внешние системы

Design Principles / Принципы проектирования

1. Explicit Consistency Boundaries / Явные границы согласованности

Агрегаты задают строгие границы изменения состояния.


2. Identity vs Value Separation / Разделение идентичности и значений

  • Entities = identity-based / сущности основаны на идентичности
  • Value Objects = structure-based / объекты-значения основаны на структуре

3. Event Capture at Mutation Point / Фиксация событий в точке изменения

Доменные события фиксируются в момент изменения состояния

. Domain Isolation / Изоляция домена

Core.RW не зависит от внешних слоёв.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.1 77 6/3/2026
1.1.0 101 5/16/2026
1.0.0 121 4/12/2026
1.0.0-beta.1 193 10/5/2025
1.0.0-alpha.2 145 6/28/2025
1.0.0-alpha.1 127 6/20/2025