Update LiteCqrs integration and documentation
- Replaced references to local project connections with the NuGet package for LiteCqrs in multiple documentation files, ensuring clarity on dependency management. - Updated architecture and backend conventions documentation to reflect the current state of the LiteCqrs library as a NuGet package, enhancing consistency across the project. - Improved descriptions of CQRS implementation and command/query handling in the tech stack documentation, providing clearer guidance for developers.
This commit is contained in:
@@ -8,9 +8,8 @@
|
||||
сами создают конфиги, админ управляет серверами и пользователями. Есть **Telegram-бот** (ссылка на
|
||||
сайт, просмотр конфигов, passwordless-вход). Бэкенд оркестрирует панели **3x-ui** через
|
||||
[`ThreeXui.Net`](https://github.com/mrleo1nid/ThreeXui.Net), CQRS — через собственную библиотеку
|
||||
[`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) (на время разработки подключена как
|
||||
`ProjectReference` из соседнего репозитория `D:\Github\LiteCqrs.Net`, ещё не опубликована в
|
||||
NuGet/GitHub), и хранит проекцию домена в PostgreSQL.
|
||||
[`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) (NuGet-пакет), и хранит проекцию домена
|
||||
в PostgreSQL.
|
||||
Живые обновления — SignalR. Поставка — **единый Docker-образ** (фронт+бек+бот) + PostgreSQL в compose.
|
||||
|
||||
> Собрано и покрыто тестами, единый образ и compose-стек проверены живьём. Есть опциональный биллинг
|
||||
|
||||
@@ -134,9 +134,9 @@ PnvPanel — backend на **ASP.NET Core (.NET 10)** по принципам **C
|
||||
- **Команды** меняют состояние, возвращают `Result` / `Result<T>`; выполняются в транзакции (UnitOfWorkBehavior).
|
||||
- **Запросы** только читают; могут ходить в БД проекциями (`Select` в DTO) без загрузки сущностей целиком.
|
||||
- Диспетчер — `ISender` из [`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) (собственная
|
||||
лёгкая CQRS-библиотека, альтернатива MediatR с явным разделением Command/Query — сосед-репозиторий
|
||||
в `D:\Github`, пока подключён `ProjectReference`'ом, не через NuGet): резолвит хендлер
|
||||
команды/запроса из DI (dynamic-free кэшированный диспетчер) и прогоняет через pipeline behaviors.
|
||||
лёгкая CQRS-библиотека, альтернатива MediatR с явным разделением Command/Query — NuGet-пакет,
|
||||
версия закреплена в `Directory.Packages.props`): резолвит хендлер команды/запроса из DI
|
||||
(dynamic-free кэшированный диспетчер) и прогоняет через pipeline behaviors.
|
||||
Абстракции — `ICommand<T>`, `IQuery<T>`, `ICommandHandler<,>`, `IQueryHandler<,>`,
|
||||
`IPipelineBehavior<,>` — все из `LiteCqrs`; PnvPanel-специфичные behaviors (`ValidationBehavior`,
|
||||
`RequireActivationBehavior`, `UnitOfWorkBehavior`) и маркер `IRequiresActivation` остаются в
|
||||
|
||||
@@ -99,7 +99,7 @@ backend/
|
||||
- **Rich domain model**: инварианты в сущностях (приватные сеттеры, фабричные методы `Node.Register(...)`,
|
||||
поведенческие методы `config.Revoke()`), а не анемичные DTO-сущности.
|
||||
- **CQRS через [LiteCqrs.Net](https://github.com/mrleo1nid/LiteCqrs.Net)** (собственная лёгкая
|
||||
CQRS-библиотека, не MediatR — сосед-репозиторий, пока подключён `ProjectReference`'ом): хендлеры
|
||||
CQRS-библиотека, не MediatR — NuGet-пакет): хендлеры
|
||||
реализуют `ICommandHandler<TCommand,TResult>` / `IQueryHandler<,>`; `ISender` резолвит их из DI и
|
||||
прогоняет через `IPipelineBehavior<,>` (`LoggingBehavior` → `ValidationBehavior` →
|
||||
`RequireActivationBehavior` → `UnitOfWorkBehavior`, порядок задан в `AddLiteCqrs(...)`). Без
|
||||
|
||||
+3
-2
@@ -5,8 +5,9 @@
|
||||
- **Платформа**: .NET 10, ASP.NET Core Web API (Minimal API).
|
||||
- **Архитектура**: Clean Architecture, 4 проекта — `Domain / Application / Infrastructure / Api`.
|
||||
- **CQRS**: через [`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) — собственную лёгкую
|
||||
CQRS-библиотеку (сосед-репозиторий, на время разработки подключён `ProjectReference`'ом; ещё не
|
||||
опубликован в NuGet), альтернативу MediatR с явным разделением Command/Query. `ISender.Send()`
|
||||
CQRS-библиотеку (NuGet-пакет, версия закреплена в `Directory.Packages.props`; исходники —
|
||||
отдельный репозиторий `D:\Github\LiteCqrs.Net`), альтернативу MediatR с явным разделением
|
||||
Command/Query. `ISender.Send()`
|
||||
резолвит `ICommandHandler<,>`/`IQueryHandler<,>` из DI (dynamic-free кэшированный диспетчер) и
|
||||
прогоняет через `IPipelineBehavior<,>`: `LoggingBehavior` (готовый, из `LiteCqrs.Behaviors`),
|
||||
`ValidationBehavior` (FluentValidation, свой), `RequireActivationBehavior` (свой),
|
||||
|
||||
Reference in New Issue
Block a user