# Architecture Overview The JDE Scoping Tool is a manufacturing/ERP search application that caches data from JDE (Oracle) and CMS (Oracle) enterprise systems into SQL Server, allowing users to create complex searches and export results to Excel. ## Key Decisions | Decision | Choice | Rationale | |----------|--------|-----------| | Target framework | .NET 10 | Modern LTS, consolidation from .NET Framework 4.8 | | Deployment | Self-hosted Kestrel as Windows Service | Simple, no IIS dependency | | UI | Blazor WebAssembly + Radzen | Modern SPA, free component library | | Database access | Dapper | Preserve existing queries, minimal changes | | Oracle driver | Oracle.ManagedDataAccess.Core | Both JDE and CMS now on Oracle | | Data sources | Interface + prod/dev implementations | Development uses file exports, production uses Oracle | | Authentication | Interface + prod/dev implementations | Development uses fake auth, production uses LDAP | | Real-time | ASP.NET Core SignalR | Push search status updates | | Excel | ClosedXML | Free MIT license (replaces EPPlus) | | Testing | xUnit + Shouldly + NSubstitute | Free, readable assertions | | Config | appsettings.json + env vars | Standard, secrets via environment | | Database migrations | DbUp | Schema defined in application, versioned SQL scripts | ## High-Level Architecture ``` ┌─────────────────────────────────────────────────────────────┐ │ Windows Service Host │ │ ┌───────────────┐ ┌───────────────┐ ┌─────────────────┐ │ │ │ Blazor WASM │ │ REST API │ │ SignalR Hub │ │ │ │ Client │ │ Controllers │ │ (StatusHub) │ │ │ └───────────────┘ └───────────────┘ └─────────────────┘ │ │ ┌───────────────────────────────────────────────────────┐ │ │ │ Background Services │ │ │ │ ┌─────────────────┐ ┌─────────────────────────┐ │ │ │ │ │ SearchProcessor │ │ DataSyncService │ │ │ │ │ └─────────────────┘ └─────────────────────────┘ │ │ │ └───────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────┘ │ ┌─────────────────────┼─────────────────────┐ ▼ ▼ ▼ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ SQL Server │ │ JDE Oracle │ │ CMS Oracle │ │ (Local Cache)│ │ (Enterprise) │ │ (Enterprise) │ └───────────────┘ └───────────────┘ └───────────────┘ ``` ## Related Documentation - [Solution Structure](./SolutionStructure.md) - [Host Project](./HostProject.md) - [Blazor Client](./BlazorClient.md) - [Core Project](./CoreProject.md) - [Database](./Database.md) - [Data Flow](./DataFlow.md) - [Configuration](./Configuration.md) - [Testing](./Testing.md) - [Dependencies](./Dependencies.md)