HorsesForCourses 0.0.3-preview
dotnet add package HorsesForCourses --version 0.0.3-preview
NuGet\Install-Package HorsesForCourses -Version 0.0.3-preview
<PackageReference Include="HorsesForCourses" Version="0.0.3-preview"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="HorsesForCourses" Version="0.0.3-preview" />
<PackageReference Include="HorsesForCourses"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add HorsesForCourses --version 0.0.3-preview
#r "nuget: HorsesForCourses, 0.0.3-preview"
#:package HorsesForCourses@0.0.3-preview
#addin nuget:?package=HorsesForCourses&version=0.0.3-preview&prerelease
#tool nuget:?package=HorsesForCourses&version=0.0.3-preview&prerelease
HorsesForCourses
It's Only a Model
HorsesForCourses is a tiny, opinionated DDD reference domain you can use as a SUT for examples, demos, tests, and documentation.
- Ships as a binary package (DLL)
- Marked development-only
- Not for production use
Why
Spinning up a real DDD domain for every demo is busywork. Trivial Person/OrderLine examples are too anemic to be interesting. This package gives you a "good enough" domain with value objects, aggregates, and generic identities so you can focus on the thing you're actually building or explaining.
The model looks small, but it hides just enough complexity to stay interesting.
See also: Domain Requirements.
Its most deceptively simple rule: 'a coach can only be assigned if they're available', quickly becomes tricky once you imagine thousands of coaches and courses. How do you efficiently ask, "Who's free next Thursday at 10?", without scanning the whole database?
It also contains a tiny inconsistency you might not notice at first glance.
A missing guard that lets something slip through the cracks.
Can you spot it?
Installation
Reference the pre-release package from your test or examples project:
<ItemGroup>
<PackageReference Include="HorsesForCourses" Version="0.0.1-preview" PrivateAssets="all" />
</ItemGroup>
PrivateAssets=allkeeps the reference local to your project and prevents transitively exposing it if you pack your project.
License
This project is licensed under the MIT License.
Disclaimer
This package is for development and educational purposes only. Do not ship it to production. It's only a model.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. 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. |
-
net8.0
- No dependencies.
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 |
|---|---|---|
| 0.0.3-preview | 91 | 3/10/2026 |
| 0.0.1-preview | 347 | 11/3/2025 |