# Setup Solution Foundation ## Summary Set up the .NET 10 solution infrastructure including dependency injection configuration, options pattern for configuration binding, and modular service registration extension methods. This establishes the architectural foundation for all subsequent migration phases. ## Scope ### In Scope - Program.cs with DI container configuration - appsettings.json structure with sections for each module - Service registration extension methods (AddDataAccess, AddDataSync, AddAuth, AddExcelExport) - Options classes for IOptions configuration binding - Project references and NuGet package dependencies ### Out of Scope - Actual service implementations (deferred to domain-specific phases) - Database connection testing (covered by migrate-database-schema) - Authentication implementation details (deferred to auth phase) - Background service scheduling (deferred to data-sync phase) ## Motivation A well-structured DI configuration provides: - Modular, testable architecture with clear separation of concerns - Strongly-typed configuration binding via IOptions pattern - Extension methods that encapsulate module-specific registration logic - Clear dependency graph visible in Program.cs ## Acceptance Criteria 1. Solution builds successfully with `dotnet build` 2. All Options classes bind correctly from appsettings.json 3. Extension methods register services with appropriate lifetimes: - Scoped: Database services, repositories - Singleton: Configuration, HTTP clients - Transient: Short-lived processors 4. Program.cs clearly shows module registration order 5. `openspec validate setup-solution-foundation --strict` passes ## Dependencies - migrate-database-schema (provides JdeScoping.Database project) ## Risks | Risk | Mitigation | |------|------------| | Circular dependencies | Extension methods register only their module's services | | Configuration drift | Options classes map 1:1 with appsettings sections | | Missing services at runtime | Startup validation via GetRequiredService checks | ## Related Specs - `infrastructure` - DI registration and configuration binding patterns