Table of Contents

Decisioni di architettura (ADR / RDR)

  • ADR — decisioni correnti/future del programma di documentazione.
  • RDRReconstructed Decision Record: ricostruzione plausibile di scelte storiche (con evidenza e confidenza).
  • Known Constraint — vincolo verificato di origine ignota.

ADR-001 — Portale con DocFX (VERIFIED)

Il portale usa DocFX perché il sistema è a prevalenza .NET (integrazione futura della reference API .NET dai .sln). La reference DB è generata da script custom a partire dai metadati Oracle (DocFX non modella Oracle nativamente).

ADR-002 — Backend trattato come Oracle, non SQL Server (VERIFIED)

Correzione della specifica (che assumeva SQL Server). Tutta l'analisi DB usa viste di catalogo Oracle; le 4 "database" sono schemi. Vedi AS-001.

RDR-001 — Migrazione net8 side-by-side tramite progetti *XNET (INFERRED)

  • Comportamento osservato: 23 progetti *XNET (net8) che ricollegano il sorgente legacy (<Compile Include=..\legacy\*.vb Link=…>) invece di duplicarlo, con Oracle.ManagedDataAccess.Core.
  • Razionale probabile: migrazione incrementale a basso rischio, partendo da Common/BIM/IEM/Property e dalla slice RequestCenter, mantenendo un'unica fonte del sorgente.
  • Evidenza: inventory-server.json, inventory-web.json, RequestCenter.DAL.OracleODPXNET.vbproj:18.
  • Confidenza: INFERRED. Conferma richiesta al team (OQ-8).

Known Constraint KC-001 — Build completa solo su Windows (VERIFIED)

ODP.NET unmanaged (Oracle.DataAccess) + Web Forms + Windows Services richiedono Windows + Visual Studio + Oracle Client. Cross-platform solo la slice net8 *XNET e il portale.

ADR-003 — Struttura del portale: quattro documenti high-level + "Altro" (2026-07-24)

  • Decisione: il livello superiore del portale espone quattro documenti high-levelInfocadServer, InfocadWeb, Database, Interazioni — più la Panoramica. Tutto il resto (flussi, regole, reference del codice, API, operations, debito, indici) resta invariato ma raggiungibile dal menu Altro.
  • Una documentazione per repository, non una unica: i due repo hanno responsabilità, runtime e vincoli di build diversi; il loro accoppiamento è documentato a parte (pagina Interazioni), perché è il punto in cui gli errori di comprensione costano di più.
  • Razionale: il livello superiore precedente esponeva 7 gruppi / 16 voci di approfondimento; chi arrivava per la prima volta non trovava un percorso di lettura. Richiesta esplicita in revisione (24/07/2026).
  • Costo: nessuna pagina eliminata, nessuna URL cambiata — solo navigazione e pagine di ingresso.

RDR-002 — Accoppiamento fra i repo tramite cartella di binari condivisa (SUPPORTED)

  • Comportamento osservato: 137 progetti InfocadServer con <OutputPath>..\..\Assembly\</OutputPath> e 123 progetti InfocadWeb con 1841 HintPath verso la stessa cartella Assembly/, posta nella directory padre dei due repository (le DLL sono versionate 3.8.0.0, SpecificVersion=False).
  • Razionale probabile: disaccoppiare le due solution mantenendo un'unica versione dei binari condivisi, senza riferimenti di progetto cross-repo (che sono uno solo) e senza pacchetti NuGet interni.
  • Conseguenze: checkout affiancato obbligatorio, ordine di build Server → Web, e nessuna garanzia di coerenza a compile time se Assembly/ contiene binari di un build precedente.
  • Confidenza: SUPPORTED (misurato sui file di progetto). Conferma richiesta al team. Dettaglio: Interazioni.

Conflitti aperti

Vedi il registro conflicts.md — attualmente CONF-001 (superficie WCF/SOAP).