# Mango.Nop Libraries > For library domain rules see: `.github/copilot-instructions.md` > For detailed docs see: `docs/` Shared nopCommerce extension libraries providing domain entities, DTOs, data access, and service base classes. All target **net9.0** (nopCommerce 4.80.9 requirement). ## Projects | Project | Purpose | Key Types | |---|---|---| | `Mango.Nop.Core` | Domain entities, DTOs, interfaces, nopCommerce entity mirrors (zero nopCommerce runtime dep) | `MgEntityBase`, `ModelDtoBase`, `MgOrderDto<,>`, `MgOrderItemDto<>`, `MgProductDto`, `CustomerDto`, `MgGenericAttributeDto`, `MgStockTaking<>`, `GenericAttributeExtensions` | | `Mango.Nop.Data` | Data access layer — repository base classes, DB context, transactions | `MgDbTableBase`, `MgDtoDbTableBase<,>`, `MgDbContextBase`, `MgDalBase` | | `Mango.Nop.Services` | Service base classes — background services, session, events, locking, logging | `MgBackgroundServiceBase`, `MgSessionServiceBase`, `MgEventConsumerBase`, `MgLockServiceBase`, `NopLogWriter` | ## Dependency Graph See `docs/ARCHITECTURE.md` for full dependency graph, project roles, DTO mapping strategies, and transaction patterns. ``` AyCode.Core (DLL references) ↑ Mango.Nop.Core (net9.0, zero nopCommerce runtime dependency) ↑ Mango.Nop.Data (net9.0) → Nop.Core, Nop.Data ↑ Mango.Nop.Services (net9.0) → Nop.Core, Nop.Data, Nop.Services, Nop.Web.Framework ``` ## Reference Modes - **Full stack** (ProjectReference, all 3 libraries) — for nopCommerce plugins that need entity access, data layer, and services. - **Types only** (DLL reference, `Mango.Nop.Core` only) — for projects that only need DTOs, entities, and interfaces without the nopCommerce runtime dependency. ## Documentation Map | File | Purpose | |---|---| | `.github/copilot-instructions.md` | **Domain rules** — single source of truth for all conventions | | `docs/ARCHITECTURE.md` | Dependency graph, project roles, DTO strategies, transaction patterns, logging architecture | | `docs/CONVENTIONS.md` | Naming, patterns, project boundaries, AyCode integration points | | `docs/GLOSSARY.md` | Term definitions — entity/DTO system, data access, services, AyCode types | | `Mango.Nop.Core/README.md` | Core project overview — entity hierarchy, loggers, extensions, models | | `Mango.Nop.Core/docs/DTOS.md` | DTO system — two mapping strategies, all DTO types, GenericAttribute access | | `Mango.Nop.Core/docs/NOP_DEPENDENCIES.md` | NopDependencies pattern — mirror copies, namespace rules, file list | | `Mango.Nop.Data/README.md` | Data project overview — repository and context hierarchy, interfaces | | `Mango.Nop.Data/docs/REPOSITORIES.md` | MgDbTableBase, MgDtoDbTableBase — CRUD hooks, timestamps, delete rules | | `Mango.Nop.Data/docs/TRANSACTIONS.md` | MgDbContextBase — 4 transaction methods, lock strategy, callback contract | | `Mango.Nop.Services/README.md` | Services project overview | | `Mango.Nop.Services/docs/SERVICES.md` | MgBackgroundServiceBase, MgSessionServiceBase, MgEventConsumerBase, MgLockServiceBase | | `Mango.Nop.Services/docs/LOGGING/README.md` | NopLogWriter — AyCode-to-nopCommerce log bridge |