Files
jdescopingtool/DOCUMENTATION/Architecture/Overview.md
T
Joseph Doherty 26ff8d9b4f Initial commit: JDE Scoping Tool migration project
Set up repository with legacy .NET Framework 4.8 source (OLD/),
new .NET 10 Blazor solution (NEW/), OpenSpec specifications,
documentation, and project configuration.
2026-01-02 07:43:29 -05:00

58 lines
4.2 KiB
Markdown

# 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)