πΊοΈ Roadmap
π Current statusβ
| Phase | Description | Status |
|---|---|---|
| 1 | ποΈ Foundation β InjectableAttribute, source generator, unit tests | β Done |
| 2 | π Attribute model, Microsoft DI integration, ordering, lifetimes | β Done |
| 3 | π NativeAOT / trimming validation | β Done |
| 4 | π Benchmarks, Docusaurus website, CI hardening | β Done |
| 5 | π¦ NuGet publication and announcement | β Done |
| 6 | π Developer experience, ecosystem expansion | π§ In progress |
For the full phase-by-phase checklist, see ROADMAP.md in the repository.
π Phase 6 highlights β what's comingβ
π¬ Source-generator qualityβ
GenDI.Analyzerscompanion package β IDE warnings for misconfigured[Injectable]/[Inject]usage- Code-fix provider: convert constructor injection to GenDI property injection automatically
- Incremental generator optimization to reduce rebuild cost on partial changes
ποΈ Registration modelβ
- β
[InjectOptional]β optional property injection (skips unregistered services gracefully) - β
[ConditionalInjectable(environmentName)]β environment-conditional registration - β
[DecoratorFor<TService>]β decorator pattern auto-wiring - β
Indirect injection via
[Inject]with closed-generic-only implementation scanning - β
[Inject]lifetime override precedence (Inject > Injectable > ServiceInjection > Transient) and tie-break - β
Thread-isolation registration policy configurable via
Injectable/ServiceInjection - β Dependency scanning across referenced libraries for centralized registration
- β Closed-generic indirect inference for inferable concrete implementations
- β
Explicit registration policy control via
RegistrationMultiplicityandRegistrationEmissionStrategy(Single/Multiple,Add/TryAdd) - β
OptionConfigAttributeevolution: optional key fallback to type name + eligible-type constraints +AddOptions<T>().BindConfiguration(section)fast-path - β
Static factory registration with
[InjectableFactory] - β
Module-based grouping with
[InjectableModule]
Detailed notes for delivered RM-01..RM-12:
π Platform supportβ
- β ASP.NET Core Minimal API example and docs
- β Blazor WebAssembly validated property injection
- β Worker Service and hosted service integration examples
- β MAUI / mobile AOT manual validation guidance for Android and iOS publish
- β F# attribute support exploration with current limitation documented
π§ͺ Testingβ
- β
GenDI.Testingcompanion package withServiceBuilderhelper for unit tests using property injection - β
Integration with
Microsoft.Extensions.DependencyInjection.Abstractionsdescriptor helpers - β
Real-world xUnit suite example using GenDI services and
ServiceBuilder
π οΈ Tooling and IDEβ
- Visual Studio item-template: "GenDI Service" scaffold
dotnet newtemplate:gendi-service- Rider live template
π‘ Observabilityβ
[ObservableService]β auto-generated OpenTelemetry spans around service method calls- Startup registration summary log at
Debuglevel
Want to help make any of these real? See Contributing to get started.
Canonical status matrixβ
The canonical source-of-truth matrix is maintained in repository docs: