BaseSystem.BuildingBlocks.Testing 1.0.0
BaseSystem.BuildingBlocks
Újrahasznosítható .NET építőkockák DDD/CQRS-alapú alkalmazásokhoz.
A csomagok szétválasztják az absztrakciókat az implementációktól, így csak azt húzod be, amire tényleg szükséged van.
Miért ilyen lebontás?
| Előny | Leírás |
|---|---|
| Laza csatolás | A domain mag (DDD) nem függ EF-től, webtől vagy üzenetküldőtől |
| Opcionális modulok | EF, mediator, ASP.NET Core, MassTransit, Mapster és testing külön csomagokban |
| Könnyű cserélhetőség | Bármely réteg lecserélhető (pl. más ORM vagy bus) |
| Tiszta rétegek | A domain szabályok nem „szivárognak" át az infrastrukturába |
Csomagok
1) BaseSystem.BuildingBlocks.DDD.Abstractions
Mi ez?
DDD-primitívek és absztrakciók: Entity, AggregateRoot, ValueObject, IDomainEvent,
IRepository<TAggregate, TId>, IUnitOfWork, soft delete/audit interfészek.
Mikor használd?
Mindig – ez a domain mag.
2) BaseSystem.BuildingBlocks.Data.EFCore
Mi ez?
EF Core integrációk: DbContextBase, BaseEntityConfiguration<T>, Specification → EF adapter,
audit/soft-delete hookok, globális query filter minták.
Mikor használd?
Ha EF Core a perzisztencia.
3) BaseSystem.BuildingBlocks.CQRS.MediatR
Mi ez?
CQRS segédletek TimeWarp.Mediatorhoz, a MediatR API nyílt forkjához: ICommand<T>, IQuery<T>,
UnitOfWorkBehavior, ValidationBehavior, ITransactionalRequest marker,
valamint mediator-független IDomainEventHandler<TDomainEvent> regisztráció.
Mikor használd?
Ha parancs/lekérdezés mintával és pipeline-okkal dolgozol.
4) BaseSystem.BuildingBlocks.Web.AspNetCore
Mi ez?
ASP.NET Core kiegészítők: ProblemDetails ↔ ErrorOr/hibák map, exception/validation middleware-ek,
Minimal API/Controller helper metódusok, X-TraceId response header.
Mikor használd?
Ha web API-t építesz és egységes hibakezelést szeretnél.
5) BaseSystem.BuildingBlocks.Messaging.MassTransit
Mi ez?
MassTransit bekötés minták: EF Outbox használat, publisher/consumer idempotencia tippek,
alap konfigurációs segéd, integration event publisher és üzenet metaadatok.
Mikor használd?
Ha megbízható (Outbox-os) integrációs eseményeket küldesz/fogadsz.
6) BaseSystem.BuildingBlocks.Mapping.Mapster
Mi ez?
Mapster DI és assembly scan helper-ek.
Mikor használd?
Ha Mapsterrel szeretnél DTO/domain mappinget regisztrálni.
7) BaseSystem.BuildingBlocks.Testing.EFCore
Mi ez?
Testcontainers/PostgreSQL alapú EF Core integrációs fixture-ek.
Mikor használd?
Ha valós PostgreSQL-lel futtatnál repository vagy DbContext teszteket.
8) BaseSystem.BuildingBlocks.Testing
Mi ez?
Általános tesztelési segédek, például FakeCurrentUserProvider.
Mikor használd?
Ha domain vagy application tesztekben building-block kompatibilis fake szolgáltatásokra van szükséged.
Tipikus függőségi irány
DDD.Abstractions
├─ Data.EFCore
├─ CQRS.MediatR
├─ Web.AspNetCore
├─ Messaging.MassTransit
└─ Testing
Mapping.Mapster
Testing.EFCore
A domainhez kötődő modulok a DDD.Abstractions-ra épülnek, egymástól függetlenül. A Mapping.Mapster és Testing.EFCore csomagok önálló, technológiai segédek.
Gyors kezdés
Telepítés
# Domain primitívek (kötelező)
dotnet add package BaseSystem.BuildingBlocks.DDD.Abstractions
# EF Core integráció
dotnet add package BaseSystem.BuildingBlocks.Data.EFCore
# CQRS / mediator
dotnet add package BaseSystem.BuildingBlocks.CQRS.MediatR
# Web API
dotnet add package BaseSystem.BuildingBlocks.Web.AspNetCore
# MassTransit messaging
dotnet add package BaseSystem.BuildingBlocks.Messaging.MassTransit
# Mapping
dotnet add package BaseSystem.BuildingBlocks.Mapping.Mapster
# EF Core testing
dotnet add package BaseSystem.BuildingBlocks.Testing.EFCore
# Általános teszt helper-ek
dotnet add package BaseSystem.BuildingBlocks.Testing
Szolgáltatások regisztrálása
// Program.cs
services.AddCqrsCore(opts =>
{
opts.Assemblies.Add(typeof(MyCommand).Assembly);
});
services.AddDbContext<MyDbContext>(...);
services.AddEFCore<MyDbContext>();
services.AddMassTransitWithRabbitMqAndEfOutbox<MyDbContext>(configuration);
services.AddBuildingBlocksWeb();
Csomag README
A NuGet csomagok jelenleg ezt a top-szintű README-t csomagolják. A csomagspecifikus részleteket a fenti modul-lista foglalja össze.
Fejlesztés
# Build
dotnet build
# Tesztek futtatása
dotnet test
# NuGet csomagok készítése
dotnet pack -c Release -o ./artifacts
Licenc
No packages depend on BaseSystem.BuildingBlocks.Testing.
.NET 10.0
- BaseSystem.BuildingBlocks.DDD.Abstractions (>= 1.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.3)
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.0 | 0 | 05/18/2026 |