FaimlyT.DDD.NetFramework.DataAccess.Cosmos 3.0.0

dotnet add package FaimlyT.DDD.NetFramework.DataAccess.Cosmos --version 3.0.0
                    
NuGet\Install-Package FaimlyT.DDD.NetFramework.DataAccess.Cosmos -Version 3.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FaimlyT.DDD.NetFramework.DataAccess.Cosmos" Version="3.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FaimlyT.DDD.NetFramework.DataAccess.Cosmos" Version="3.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FaimlyT.DDD.NetFramework.DataAccess.Cosmos" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FaimlyT.DDD.NetFramework.DataAccess.Cosmos --version 3.0.0
                    
#r "nuget: FaimlyT.DDD.NetFramework.DataAccess.Cosmos, 3.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FaimlyT.DDD.NetFramework.DataAccess.Cosmos@3.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FaimlyT.DDD.NetFramework.DataAccess.Cosmos&version=3.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FaimlyT.DDD.NetFramework.DataAccess.Cosmos&version=3.0.0
                    
Install as a Cake Tool

FaimlyT.DDD

The Faimly-T DDD tactical framework, published as public NuGet packages on nuget.org (ADR-050). This repo owns the framework source, its tests, and the release pipeline; consuming applications (e.g. tmpl-backend-client-dotnet) reference the packages — never this source directly.

Package What's inside
FaimlyT.DDD.NetFramework Entity / Aggregate / ValueObject base objects, EventStream journal (state-persisted + event journal, ADR-001), typed domain events + publisher/subscriber contracts, Repository & Specification abstractions (QueryConstraint), State pattern, DomainException catalog, the self-describing use-case dispatcher (Validate → Authorize → Handle) with FluentValidation
FaimlyT.DDD.NetFramework.DataAccess.Cosmos Azure Cosmos DB (SQL API) persistence: DTO anti-corruption layer, collection repositories (etag concurrency, paging), parameterized QueryConstraint → QueryDefinition bridge, durable event-journal store. Depends on the core package

Both target net10.0.

Consuming the packages

The packages are public on nuget.org — no authentication, no credentials, no setup. A consumer repo's nuget.config declares the single anonymous source https://api.nuget.org/v3/index.json (see the template repo for the canonical example); a clean machine and CI both restore with zero secrets.

Older versions (≤ 3.0.0) also exist on the retired Faimly-T GitHub Packages feed; nothing references that feed anymore, and it must not be reintroduced (ADR-050).

Releasing a new version

  1. Merge to main (CI builds, tests, and pack-smokes every push/PR).

  2. Tag and push:

    git tag v3.0.1 && git push origin v3.0.1
    

    release.yml builds, tests, packs with Version=3.0.1 (from the tag), and pushes both packages to nuget.org via Trusted Publishing — the workflow's OIDC identity is exchanged for a short-lived push key (NuGet/login), so no publish secret is stored anywhere. The authorizing policy lives on nuget.org (Package Owner MaxRodriguez, repo Faimly-T/DDD-Template-Nuget, workflow release.yml). The workflow can also be run manually (Actions → release → Run workflow) with an explicit version, e.g. to publish a version whose tag already exists.

Versioning is SemVer by hand: major for any breaking change to the public API (renames included — consumers fossilize names), minor for additive API, patch for fixes. nuget.org versions are immutable (unlist, never delete) — a botched release means a new patch tag.

Developing against the template

The template repo has a UseLocalDdd switch that flips its FaimlyT.DDD.* PackageReferences to ProjectReferences into a local checkout of this repo:

dotnet build -p:UseLocalDdd=true   # in the template repo, with this repo checked out locally

Iterate here with live source debugging, and only tag a release when the change is done. CI in the template never uses the switch, so the real package path is always what's validated.

Layout

src/FaimlyT.DDD.NetFramework/                      Core tactical framework
src/FaimlyT.DDD.NetFramework.DataAccess.Cosmos/    Cosmos SQL persistence
test/FaimlyT.DDD.Tests/                            xUnit suite (in-memory, no infra needed)
docs/                                              ADR-001 + the pre-publish quality review

Framework tests that depend on the template's sample domain (ExampleReferenceDDD) intentionally stayed in the template repo (test/Test.UseCases/TestDDDFramework/).

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0 305 8/13/2026
2.2.1 313 7/23/2024
2.2.0 182 7/19/2024
2.1.1 252 6/24/2024
2.1.0 228 6/24/2024
2.0.0 183 6/23/2024
1.0.0 211 6/23/2024