SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators
0.1.0
See the version list below for details.
dotnet add package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators --version 0.1.0
NuGet\Install-Package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators -Version 0.1.0
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators" Version="0.1.0" />
<PackageVersion Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators" Version="0.1.0" />
<PackageReference Include="SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators" />
paket add SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators --version 0.1.0
#r "nuget: SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators, 0.1.0"
#:package SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators@0.1.0
#addin nuget:?package=SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators&version=0.1.0
#tool nuget:?package=SoftwareExtravaganza.Whizbang.Data.EFCore.Postgres.Generators&version=0.1.0
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.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.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.9.6-alpha.52 | 0 | 3/13/2026 |
| 0.9.6-alpha.49 | 40 | 3/13/2026 |
| 0.9.6-alpha.46 | 38 | 3/12/2026 |
| 0.9.6-alpha.16 | 32 | 3/12/2026 |
| 0.9.6-alpha.13 | 73 | 3/12/2026 |
| 0.9.6-alpha.4 | 40 | 3/12/2026 |
| 0.9.4 | 110 | 3/10/2026 |
| 0.9.3 | 197 | 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 | 39 | 3/4/2026 |
| 0.5.1-alpha.1 | 54 | 2/8/2026 |
| 0.5.0-alpha.1 | 49 | 2/7/2026 |
| 0.4.0-alpha.4 | 49 | 2/7/2026 |
| 0.4.0-alpha.1 | 50 | 2/7/2026 |
| 0.3.0-alpha.26 | 52 | 1/31/2026 |
| 0.1.1 | 96 | 1/19/2026 |
| 0.1.0 | 100 | 1/19/2026 |