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

4.2 KiB

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) │
└───────────────┘    └───────────────┘    └───────────────┘