SoftwareExtravaganza.Whizbang.Generators
0.9.4
dotnet add package SoftwareExtravaganza.Whizbang.Generators --version 0.9.4
NuGet\Install-Package SoftwareExtravaganza.Whizbang.Generators -Version 0.9.4
<PackageReference Include="SoftwareExtravaganza.Whizbang.Generators" Version="0.9.4"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="SoftwareExtravaganza.Whizbang.Generators" Version="0.9.4" />
<PackageReference Include="SoftwareExtravaganza.Whizbang.Generators"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add SoftwareExtravaganza.Whizbang.Generators --version 0.9.4
#r "nuget: SoftwareExtravaganza.Whizbang.Generators, 0.9.4"
#:package SoftwareExtravaganza.Whizbang.Generators@0.9.4
#addin nuget:?package=SoftwareExtravaganza.Whizbang.Generators&version=0.9.4
#tool nuget:?package=SoftwareExtravaganza.Whizbang.Generators&version=0.9.4
Whizbang
A comprehensive .NET library for building event-driven, CQRS, and event-sourced applications with zero reflection and AOT compatibility.
Version 0.1.0 - Foundation Release
This is the foundation release establishing all core components with in-memory implementations. The focus is on breadth over depth, ensuring every component exists and works together from day one.
Project Structure
whizbang/
├── src/
│ ├── Whizbang.Core/ # Core interfaces and types
│ ├── Whizbang.Generators/ # Source generators (future)
│ └── Whizbang.Testing/ # Testing utilities
└── tests/
├── Whizbang.Core.Tests/ # Unit tests
└── Whizbang.Documentation.Tests/ # Documentation example tests
Core Components (v0.1.0)
Receptors
Stateless message handlers that receive commands and produce events. Type-safe with flexible response types (single, tuple, array, Result<T>).
Dispatcher
Message routing and orchestration engine. Routes messages to appropriate handlers with context tracking (correlation/causation IDs).
Value Objects (Vogen)
Type-safe IDs using source-generation:
MessageId- Unique message identifierCorrelationId- Logical workflow identifierCausationId- Causal chain identifier
Technology Stack
- .NET 10.0 - Target framework (LTS)
- Vogen - Source-generated value objects
- TUnit 1.5+ - Modern source-generation test framework
- TUnit.Assertions - Native fluent assertions
- Rocks 9.3+ - Source-generation mocking for AOT compatibility
- Bogus - Test data generation
- EF Core 10 - Database access with compiled models
- Dapper - High-performance SQL queries
- PostgreSQL - Primary database with JsonB and UUIDv7 support
Getting Started
Build
dotnet build
Run Tests
dotnet test
Current Status
All tests are currently failing by design. This is TDD - tests define the behavior, implementation comes next.
Philosophy
- Zero Reflection - Everything via source generators
- AOT Compatible - Native AOT from day one
- Type Safe - Compile-time safety everywhere
- Test Driven - Comprehensive test coverage
Documentation
See the whizbang-lib.github.io repository for comprehensive documentation of all features and design decisions.
Release Workflow
Three-Phase Release Process
Whizbang uses a three-phase release process:
- Alpha - Internal testing and validation
- Beta - Limited public testing with early adopters
- GA - General availability for public use
Release Checklist
The complete release checklist is maintained in .github/RELEASE.md.
Using the /release Command
Claude Code can guide you through the release process:
/release alpha # Start alpha release
/release beta # Start beta release
/release ga # Start GA release
Manual Release Process
If not using Claude Code, follow these steps:
Alpha Release
- Follow all items in
.github/RELEASE.mdAlpha Phase section - Verify all exit criteria are met
- Tag version:
git tag -a v0.1.0-alpha.1 -m "Alpha 1" - Push tag:
git push origin v0.1.0-alpha.1 - GitHub Actions will automatically publish to NuGet
Beta Release
- Complete Alpha phase
- Address feedback from alpha testing
- Follow all items in
.github/RELEASE.mdBeta Phase section - Tag version:
git tag -a v0.1.0-beta.1 -m "Beta 1" - Push tag:
git push origin v0.1.0-beta.1
GA Release
- Complete Beta phase
- Address feedback from beta testing
- Follow all items in
.github/RELEASE.mdGA Phase section - Tag version:
git tag -a v0.1.0 -m "Release v0.1.0" - Push tag:
git push origin v0.1.0 - Announce to community
Version Numbering
See GitVersion section for automatic version calculation.
Next Steps
- ✅ Foundation skeleton (DONE)
- ⏳ Implement Receptors to pass tests
- ⏳ Implement Dispatcher to pass tests
- ⏳ Add source generators for handler discovery
- ⏳ Add remaining components (Perspectives, Lenses, etc.)
Contributing
This is v0.1.0 - the foundation. Follow the TDD approach:
- Tests define behavior (already written)
- Implement to make tests pass (green)
- Refactor for quality (refactor)
See CONTRIBUTING.md for full guidelines.
Learn more about Target Frameworks and .NET Standard.
This package has 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.9.4 | 44 | 3/10/2026 |
| 0.9.3 | 156 | 3/7/2026 |
| 0.9.2-alpha.1 | 66 | 3/7/2026 |
| 0.9.1-alpha.2 | 37 | 3/7/2026 |
| 0.9.0-alpha.119 | 36 | 3/4/2026 |
| 0.5.1-alpha.1 | 49 | 2/8/2026 |
| 0.5.0-alpha.1 | 51 | 2/7/2026 |
| 0.4.0-alpha.4 | 49 | 2/7/2026 |
| 0.4.0-alpha.1 | 49 | 2/7/2026 |
| 0.3.0-alpha.26 | 54 | 1/31/2026 |
| 0.1.1 | 96 | 1/19/2026 |
| 0.1.0 | 94 | 1/19/2026 |