Table of Contents

Gap analysis — documentazione per sviluppatori (Fase A)

Audit dello stato del portale rispetto alla spec Infocad Extensive Developer Code Documentation (criteri di accettazione §37). Snapshot 2026-07-22. Questa è l'analisi di partenza (Phase A) del layer developer/code; è distinta dalla gap-analysis del recupero architetturale.

Cosa esiste già (baseline)

  • Portale DocFX 0/0, ~2870 documenti, ricerca full-text; 22 flussi, 489 regole, DB reference 2628/2628 (INFOCAD) + RC/DEM, superficie API SOAP/WCF completa (81 endpoint).
  • Landing di repository (02) — orientate all'architettura, non allo sviluppatore.
  • 03-developer-guides: solo build/contribuzione/ripresa (sottile).
  • Reference API generata: solo Descor.Infrastructure.LogManager (10 tipi, C#).
  • docs/_templates/: vuota → ora popolata (project / module-namespace / class-interface / method-block).

Lacune vs. criteri di accettazione (§37)

Criterio Stato Gap
Percorso di onboarding verificato ❌ assente creare (§8)
Pagina developer per ogni progetto significativo ❌ 0 / ~283 avvio DEV-1 (verticale RequestCenter)
Pagina concettuale per ogni modulo importante ❌ assente template pronto; avvio DEV-1
Reference generata per ogni API pubblica 🟡 parziale solo LogManager (vincoli sotto)
Componenti business interni documentati 🟡 parziale esistono flussi/regole, non a livello simbolo
Metodi importanti documentati ❌ assente blocchi metodo (§13) in DEV-1
Commenti sorgente su contratti/vincoli ❌ 0% su RequestDAL.vb/Request.vb rinviato (scelta batch: portal-only)
Navigazione codice → flussi/DB e ritorno 🟡 parziale flussi hanno file:line; manca il verso simbolo→tutto
Task di sviluppo con guide verificate ❌ assente §23 in DEV-1 (seed)
Build/run/test/debug documentati 🟡 parziale build sì; run/debug/test scarsi
Autenticazione/autorizzazione (livello dev) 🟡 parziale §19 seed in DEV-1
Configurazione indicizzata 🟡 parziale configuration-index.json esiste; manca reference dev
Copertura test visibile 0 test automatici (verificato)
Aree rischiose / debito visibili 🟡 14 sì, non a livello classe/simbolo
Reference generata integrata con concettuale 🟡 parziale cross-link in DEV-1
Build da checkout pulito ✅ portale / ❌ API .NET API .NET richiede Windows
Metriche copertura gen/concept/verified distinte introdotte ora: coverage-devdoc.csv

Vincoli di generazione API (verificati in questo batch, read-only build)

Target dotnet build (net8, headless) docfx metadata Esito
LogManagerXNETDescor.Infrastructure.LogManager (C#) generata (in api/)
DataManagerXNETDescor.DataManager (VB) 0/0 (Assembly/net8.0/DataManagerXNET.dll) BC30002 (IsolationLevel/DbParameter/DbCommand non risolti) build ok, metadata rinviato; pagina concettuale
RequestCenter.DAL.OracleODPXNET, RequestCenterXNET (VB) chiusura dipendenze → assembly 4.8 solo-Windows (Descor.Stock.*, *.Controllers); Assembly/ da popolare su Windows
Bulk .NET Framework 4.8 (~283 prog.) Windows + Oracle Client

Conseguenza: la reference generata headless resta limitata; la spec (§27) la vuole complementare alle pagine concettuali, quindi il valore developer non dipende da essa. Ricetta Windows in docs-site/scripts/gen-api-metadata.sh + 16-code-reference.

Piano a batch prioritari (spec Phase E)

  • DEV-1 (in corso): verticale RequestCenter / Service Desk (priorità #1 critical business flows, flusso pilota FLOW-REQ-001). Include: onboarding, landing dev per repo, pagine di progetto (RequestCenter BL, RequestCenter.DAL.OracleODP, i due *XNET, DataManager), pagine namespace/modulo, pagine classe/interfaccia (Ticket.Request, IRequestDAL, RequestDAL, GlobalDataManager, RequestCenter.Transaction), frontend RequestCenterWeb (makeTicket), guida database-development, guide trasversali (auth/errori/test/debug/task/esempi/convenzioni/debito) seed, diagrammi focalizzati, indici dev, traceability, validazione indipendente. Portal-only (nessun edit sorgente).
  • DEV-2…N: Property · Booking · Energy · ECM · Maintenance · Stock · Accounting · BIM · Census · QC · IEM · … (allineati ai 22 flussi) + librerie condivise ad alta dipendenza (Descor.Common, Descor.Infrastructure.*) + backend InfocadServer (§16). Ogni batch è bounded e validato.

Note di adattamento

  • La spec §7 propone 04-code-reference/; per non rinumerare 04-api (superficie SOAP/WCF già pubblicata e linkata), il layer codice vive in 16-code-reference/
    • estensioni a 03-developer-guides/ e 15-indices/.
  • coverage.csv esistente conservato; la copertura dev-doc usa coverage-devdoc.csv (schema esteso §32: +project, +namespace, path_or_symbol), distinguendo copertura generata / concettuale / verificata.

Aggiornamento 2026-07-23 — Sweep domini COMPLETO (DEV-1…7)

20 domini funzionali documentati, ~104 pagine code-reference sotto 16-code-reference/, portale 0/0, 0 link rotti, 0 artefatti.

Batch Domini Pagine
DEV-1 RequestCenter/Service Desk (+ DataManager, guide, indici) 30
DEV-2 Property · Booking · Energy 15
DEV-3 ECM/Documentale · Maintenance · Stock 16
DEV-4 Accounting · BIM · Census 15
DEV-5 QualityCheck · IEM · Cde 14
DEV-6 Report · Project · WorkerKit 13
DEV-7 Global · Check · BulkLoader · ExportService 17

Trasversale confermato: il hop controller → BL è .NET Remoting in tutti i domini server-side (pattern Activator.GetObject('…_BL.rem') + registrazione RegisterWellKnownServiceType in Business/Start*.vb); unica eccezione senza Oracle = Cde (connettore esterno Autodesk ACC). Reference API generata invariata (solo Descor.Infrastructure.LogManager; il resto resta Windows-deferred).

Residuo (opzionale, non bloccante):

  • Librerie condivise (Descor.Common, Descor.Infrastructure.*, ArchiveManager) e host di backend (JobScheduler, i Business hosts).
  • OQ-DEVDOC-1: riconciliare le pagine FLOW-* che descrivono il hop controller→BL come in-process (è .NET Remoting).
  • OQ-DEVDOC-2: ri-eseguire il QA adversariale a 2 worker su DEV-6 (fallito per limite di sessione; sostituito da QA-lite in main loop).
  • Reference API .NET completa (richiede build su Windows + Oracle Client).