Table of Contents

InfocadWeb

Il tier di presentazione e di integrazione. Contiene tutte le interfacce utente (ASP.NET Web Forms), tutta la superficie SOAP verso l'esterno, e tutte le personalizzazioni per cliente. Gira sotto IIS (le app web) e come eseguibili/servizi (l'integrazione).

Snapshot: commit 9bc7b074e90a2ab2424c1bb4bd4ef82c9f13ba24 (branch develop). Evidenza: TASK-WEB-001, docs/_generated/inventory-web.json.

Confini di responsabilità

Fa Non fa
UI utente: pagine .aspx e controlli .ascx Logica di dominio server-side (sta in InfocadServer)
Autenticazione dell'utente finale (InfocadAuthenticationModule + SSO) Autorizzazione oltre il confine Remoting (non ri-verificata → TD-008)
Tutta la superficie SOAP/WCF: 46 .asmx + 35 .svc Ospitare le BL di dominio (girano nel Windows Service)
Import/export e integrazioni per-cliente (loader, EntityLayer, job) Definire lo schema Oracle
Personalizzazioni per cliente (49 librerie di reporting, SSO, ECM)

Come è organizzato: quattro famiglie

flowchart TB
    subgraph UI["1 · Applicazioni Web Forms (IIS)"]
      CAS["CASSANDRA<br/>shell dominante"]
      SUB["sub-web per dominio<br/>PropertyCenterWeb, GlobalWeb…"]
      APP["app autonome<br/>ECM · IEM · RequestCenter · DEM"]
    end
    subgraph SVC["2 · Integrazione"]
      IWS["InfocadIntegrationWS<br/>host ASMX/SVC"]
      TRI["triadi Process/Queue/<br/>Scheduler · Quartz"]
      LOAD["EXELoaders<br/>import ticket"]
    end
    subgraph CUS["3 · Customizations"]
      REP["Reporting.TENANT<br/>49 librerie"]
      EXT["ExternalAuth ·<br/>ExternalDocSave"]
    end
    subgraph BL["4 · Business locale"]
      RC["RequestCenter BL<br/>+ 3 varianti DAL"]
    end
Famiglia Solution Contenuto
Applicazioni web WebMachine.sln (72 progetti) 29 app Web Forms + 1 website; Global.asax in CASSANDRA, ECM, IEM, InfocadIntegrationWS
Integrazione InfocadIntegration.sln (89) InfocadIntegrationWS (host ASMX), triadi Process/Queue/Scheduler, EXELoaders, EntityLayer<X>, ServiceJob.<X>
Customizations Customizations.sln (71) Reporting.<TENANT> (49), ExternalAuth.*, ExternalDocSave.*, CustomAuth.*
Moduli standalone ECM.sln, IEM.sln build isolata dei due moduli

CASSANDRA è la shell dominante: 615 .aspx / 1862 .ascx sui ~650/~1900 totali. Le altre app per .aspx: PropertyCenterWeb 100 · GlobalWeb 76 · ScheduleCenterWeb 65 · CommonWeb 47 · RequestCenterWeb 40 (ma 684 .ascx) · ServiceCentoWeb 32 · BookCenterWeb 29 · AccountingWeb 28 · DocCenterWeb 26.

Note

Il lavoro di UI è a componenti: la maggior parte della logica di pagina sta nei .ascx, non negli .aspx. Cercare una funzionalità partendo dalla pagina è spesso la strada sbagliata — vedi Reference del codice.

RequestCenter: l'eccezione che accede a Oracle da qui

È l'unica business layer significativa che vive nel repo web (il resto della BL è in InfocadServer). Consumata dai sub-web CASSANDRA e da tutte le Reporting.*. Ha tre DAL Oracle:

Progetto Target Stato
RequestCenter.DAL.Oracle VB legacy (ToolsVersion 3.5, solo System.Data) probabilmente morto (INFERRED)
RequestCenter.DAL.OracleODP v4.8, Oracle.DataAccess unmanaged sorgente canonico dei *DAL.vb
RequestCenter.DAL.OracleODPXNET net8 SDK-style ricollega gli stessi .vb (<Compile Include=…\RequestCenter.DAL.OracleODP\*.vb Link=…>), Oracle.ManagedDataAccess.Core 23.4.0

Come parla con il resto del sistema

  1. Verso InfocadServer — referenzia 1841 volte le DLL prodotte da InfocadServer nella cartella condivisa Assembly/ (123 progetti su 149). A runtime carica i *Controllers in-process e quelli aprono il canale .NET Remoting verso il Windows Service.
  2. Verso Oracle — direttamente per RequestCenter (RequestCenterConnection), i provider Membership/Role (OracleProvidersDB) e i loader di integrazione.
  3. Verso l'esterno — è il perimetro del sistema: SSO SAML/OAuth2, ECM esterni (Alfresco, OpenText), import ticket (OTRS e sistemi cliente), ERP/anagrafiche (SAP).

Dettaglio completo: Interazioni tra i componenti · Integrazioni · API / Servizi.

Autenticazione (tier web)

CASSANDRA/Web.config non dichiara <membership>/<roleManager>: il web autentica con InfocadAuthenticationModule (httpModule custom) e delega l'SSO a un IAuthManager per-cliente (ExternalAuth.<Cliente>) o al flusso SAML. I provider Oracle ASP.NET vivono nei config server-side e nei loader di integrazione. Vedi Guide per sviluppatori → sicurezza.

Warning

SEC-001CASSANDRA/Web.config committa credenziali Oracle in chiaro (mai riportate in questa documentazione). Vedi Debito tecnico.

Numeri (VERIFIED, conteggio meccanico)

  • 149 progetti53 C# / 96 VB.NET (il VB.NET è la maggioranza netta).
  • Target: v4.8 = 144, net8.0 = 3, netstandard2.0 = 1, 1 progetto VB legacy (ToolsVersion 3.5).
  • 7 solution: WebMachine.sln (72), Customizations.sln (71), InfocadIntegration.sln (89), ECM.sln (1), IEM.sln (1), ExternalAuth.Interface.sln (1), TESTIWS.sln (Web Site senza projfile).
  • OutputType: 127 Library · 9 Exe · 9 WinExe. 29 applicazioni Web Forms + 1 website.
  • Superficie UI: ~650 .aspx · ~1900 .ascx. Superficie servizi: 46 .asmx + 35 .svc (CASSANDRA ~67%, InfocadIntegrationWS ~31%).
  • Famiglie per-cliente: Reporting.<TENANT> 49 · EntityLayer<X> 16 · EXELoaders 8 · ServiceJob.<X> 6.

Build e vincoli

  • Completa: Windows + Visual Studio 2022 / msbuild + Oracle Client.
  • Prerequisito: Assembly/ già popolata da un build di InfocadServer — altrimenti le 1841 reference binarie non risolvono e nulla compila. I due repo devono stare affiancati sotto la stessa cartella padre.
  • Solution focalizzate: WebMachine.sln (principale), ECM.sln, IEM.sln, Customizations.sln.
  • Slice net8: dotnet build su RequestCenterXNET, DataManagerXNET, RequestCenter.DAL.OracleODPXNET.
  • Nessun test automatico, nessuna CI.

Aggiungere un cliente (pattern, non fork)

Il prodotto si personalizza con progetti paralleli, mai con rami o flag: EntityLayer<Cliente>, ServiceJob.<Cliente>, TicketLoader<Cliente>, ExternalAuth.<Cliente>, Reporting.<TENANT>. Tutti raggruppati in Customizations.sln. Vedi Task di sviluppo comuni.

Dove approfondire