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 |
|---|---|---|---|
LogManagerXNET → Descor.Infrastructure.LogManager (C#) |
✅ | ✅ | generata (in api/) |
DataManagerXNET → Descor.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), frontendRequestCenterWeb(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 rinumerare04-api(superficie SOAP/WCF già pubblicata e linkata), il layer codice vive in16-code-reference/- estensioni a
03-developer-guides/e15-indices/.
- estensioni a
coverage.csvesistente conservato; la copertura dev-doc usacoverage-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, iBusinesshosts). - 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).