ForgeFusion.Core.Data.Common
1.1.3-beta
dotnet add package ForgeFusion.Core.Data.Common --version 1.1.3-beta
NuGet\Install-Package ForgeFusion.Core.Data.Common -Version 1.1.3-beta
<PackageReference Include="ForgeFusion.Core.Data.Common" Version="1.1.3-beta" />
<PackageVersion Include="ForgeFusion.Core.Data.Common" Version="1.1.3-beta" />
<PackageReference Include="ForgeFusion.Core.Data.Common" />
paket add ForgeFusion.Core.Data.Common --version 1.1.3-beta
#r "nuget: ForgeFusion.Core.Data.Common, 1.1.3-beta"
#:package ForgeFusion.Core.Data.Common@1.1.3-beta
#addin nuget:?package=ForgeFusion.Core.Data.Common&version=1.1.3-beta&prerelease
#tool nuget:?package=ForgeFusion.Core.Data.Common&version=1.1.3-beta&prerelease
ForgeFusion Data Layer
Solution Structure (vNext)
The ForgeFusion solution is now modularized into several NuGet-ready libraries, grouped into three main categories:
- Core: The foundational libraries for business logic, data access, and extensibility.
- Accounts: Libraries focused on user, tenant, and identity management.
- Common: Shared utilities, base models, and cross-cutting concerns.
- Datastores: Specialized libraries for financials, products, inventory, transactions, and more.
This modular approach enables better separation of concerns, easier maintenance, and more flexible deployment.
Library Breakdown
1. Core Libraries
ForgeFusion.Core.Data.Common
- Purpose: Provides base models, interfaces, enums, and shared abstractions for all other libraries.
- Key Features:
- Base entity classes (e.g.,
BaseModel
,NomenclatureModel
) - Common interfaces (e.g.,
ISoftDelete
,IActiveToggle
) - Shared enums and constants
- Utility extensions
- Base entity classes (e.g.,
- Consumers: All other ForgeFusion libraries.
ForgeFusion.Core.Data.Extensions
- Purpose: Contains extension methods and helpers for EF Core, LINQ, and general .NET usage.
- Key Features:
- Expression and ModelBuilder extensions
- Query filter helpers
- Reflection utilities
- Consumers: Used by data, storage, and repository libraries.
ForgeFusion.Core.Data.Repositories
- Purpose: Implements repository and unit-of-work patterns for data access.
- Key Features:
- Generic repositories
- Query and command abstractions
- Integration with EF Core
- Consumers: Used by storage, financials, products, and other data libraries.
ForgeFusion.Core.Data.Storage
- Purpose: Provides the main EF Core DbContext and handles multi-tenancy, caching, and configuration.
- Key Features:
- RootDbContext and tenant-aware context logic
- Caching and configuration integration
- Logging and diagnostics
- Consumers: Used by repositories, financials, products, and other data libraries.
2. Accounts Libraries
ForgeFusion.Entities.Core.Account
- Purpose: Defines entities and logic for user, tenant, and account management.
- Key Features:
- Tenant, user, and role models
- Account configuration and relationships
- Identity and permission management
- Consumers: Used by storage, repositories, and other domain libraries.
3. Datastores Libraries
ForgeFusion.Core.Data.Financials
- Purpose: Models and logic for financial transactions, loans, and repayments.
- Key Features:
- Loan, repayment, and invoice entities
- Financial transaction logic
- Consumers: Used by storage, repositories, and reporting.
ForgeFusion.Core.Data.FinServices
- Purpose: Models for financial service providers, accounts, and listings.
- Key Features:
- Service provider and account entities
- Financial service listing logic
- Consumers: Used by financials, storage, and repositories.
ForgeFusion.Core.Data.Inventory
- Purpose: Inventory and stock management models.
- Key Features:
- Product, stock, and inventory entities
- Inventory transaction logic
- Consumers: Used by storage, repositories, and products.
ForgeFusion.Core.Data.Products
- Purpose: Product catalog, variants, and offer models.
- Key Features:
- Product, variant, and offer entities
- Discount and pricing logic
- Consumers: Used by inventory, storage, and repositories.
ForgeFusion.Core.Data.Trackers
- Purpose: Tracking and audit models for business processes.
- Key Features:
- Change tracking
- Audit trail entities
- Consumers: Used by storage and repositories.
ForgeFusion.Core.Data.Transactions
- Purpose: Transactional models for payments, logs, and business events.
- Key Features:
- Payment, Mpesa log, and transaction entities
- Transaction processing logic
- Consumers: Used by financials, storage, and repositories.
ForgeFusion.Core.Data.Entities.Traders
- Purpose: Models for trader entities (buyers, sellers, clusters, etc.).
- Key Features:
- Buyer, seller, and cluster entities
- Trader relationships and logic
- Consumers: Used by products, financials, and storage.
Dependency Diagram
graph TD
%% Core
subgraph Core
Repositories["ForgeFusion.Core.Data.Repositories"]
Storage["ForgeFusion.Core.Data.Storage"]
end
%% Accounts
subgraph Accounts
Accounts["ForgeFusion.Entities.Core.Account"]
end
%% Datastores
subgraph Datastores
Financials["ForgeFusion.Core.Data.Financials"]
FinServices["ForgeFusion.Core.Data.FinServices"]
Inventory["ForgeFusion.Core.Data.Inventory"]
Products["ForgeFusion.Core.Data.Products"]
Trackers["ForgeFusion.Core.Data.Trackers"]
Transactions["ForgeFusion.Core.Data.Transactions"]
Traders["ForgeFusion.Core.Data.Entities.Traders"]
end
%% Shared Components
Common["ForgeFusion.Core.Data.Common"]
Extensions["ForgeFusion.Core.Data.Extensions"]
%% Relationships
Common --> Extensions
Extensions --> Repositories
Extensions --> Storage
Common --> Repositories
Common --> Storage
Common --> Accounts
Common --> Financials
Common --> FinServices
Common --> Inventory
Common --> Products
Common --> Trackers
Common --> Transactions
Common --> Traders
Accounts --> Storage
Accounts --> Repositories
Accounts --> Financials
Accounts --> Products
Accounts --> Transactions
Storage --> Repositories
Storage --> Financials
Storage --> FinServices
Storage --> Inventory
Storage --> Products
Storage --> Trackers
Storage --> Transactions
Storage --> Traders
Repositories --> Financials
Repositories --> FinServices
Repositories --> Inventory
Repositories --> Products
Repositories --> Trackers
Repositories --> Transactions
Repositories --> Traders
Financials --> FinServices
Financials --> Traders
Financials --> Products
FinServices --> Traders
Inventory --> Products
Inventory --> Traders
Products --> Traders
Transactions --> Financials
Transactions --> Traders
Summary Table
Library | Purpose/Domain | Depends On |
---|---|---|
ForgeFusion.Core.Data.Common | Base models, interfaces | - |
ForgeFusion.Core.Data.Extensions | Extension methods, helpers | Common |
ForgeFusion.Core.Data.Repositories | Repository pattern | Common, Extensions |
ForgeFusion.Core.Data.Storage | DbContext, multi-tenancy | Common, Extensions, Repositories, Accounts |
ForgeFusion.Entities.Core.Account | User, tenant, identity | Common |
ForgeFusion.Core.Data.Financials | Loans, repayments, invoices | Common, Accounts, Storage, Repositories |
ForgeFusion.Core.Data.FinServices | Service providers, accounts | Common, Storage, Repositories |
ForgeFusion.Core.Data.Inventory | Inventory, stock | Common, Storage, Repositories, Products |
ForgeFusion.Core.Data.Products | Products, variants, offers | Common, Storage, Repositories, Traders |
ForgeFusion.Core.Data.Trackers | Audit, tracking | Common, Storage, Repositories |
ForgeFusion.Core.Data.Transactions | Payments, logs, events | Common, Storage, Repositories, Financials |
ForgeFusion.Core.Data.Entities.Traders | Buyers, sellers, clusters | Common, Storage, Repositories |
Guidance for Contributors
- Add new domain logic in the appropriate Datastore library.
- Use Common and Extensions for all shared logic and base types.
- Register new entities in Storage and Repositories as needed.
- Follow the dependency flow: Common → Extensions → Core → Datastores.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- Newtonsoft.Json (>= 13.0.3)
- Shared.Common (>= 1.3.6)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on ForgeFusion.Core.Data.Common:
Package | Downloads |
---|---|
ForgeFusion.Entities.Core.Account
Provides a robust and secure data abstraction layer for .NET applications. Part of the ForgeFusion Community app framework. |
|
ForgeFusion.Core.Data.Extensions
Provides a robust and secure data abstraction layer for .NET applications. Part of the ForgeFusion Community app framework. |
|
ForgeFusion.Core.Data.Entities.Traders
Provides a robust and secure data abstraction layer for .NET applications. Part of the ForgeFusion Community app framework. |
|
ForgeFusion.Core.Data.Products
Provides a robust and secure data abstraction layer for .NET applications. Part of the ForgeFusion Community app framework. |
|
ForgeFusion.Core.Data.Transactions
Provides a robust and secure data abstraction layer for .NET applications. Part of the ForgeFusion Community app framework. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.1.3-beta | 147 | 6/29/2025 |
1.1.2-beta | 101 | 6/28/2025 |
1.1.1-beta | 92 | 6/27/2025 |
1.1.0-beta | 252 | 4/21/2025 |
0.1.0-beta | 143 | 4/21/2025 |