BaseSystem.BuildingBlocks.Mapping.Mapster 1.0.0

BaseSystem.BuildingBlocks

.NET License

Ú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: ProblemDetailsErrorOr/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.Mapping.Mapster.

Version Downloads Last updated
1.0.0 0 05/18/2026